Python 數字聯盟 面試題

2021-10-01 14:12:54 字數 2516 閱讀 2836

# 1. 寫出輸出結果

class myclass:

class_name = "xiaobai"

def __init__(self,*args):

if args:

self.class_name = args[0]

def print_name(self):

print("this class name: {}".format(self.class_name))

@staticmethod

def print_name_stc():

print("this class name:{}".format(myclass.class_name))

@classmethod

def print_name_cls(cls):

print("this class name:{}".format(cls.class_name))

my_class = myclass("xiaohei")

my_class.print_name() # xiaohei

my_class.print_name_cls() # xiaobai

my_class.print_name_stc() # xiaobai

myclass.print_name_cls() # xiaobai

myclass.print_name_stc() # xiaobai

# myclass.print_name() # typeerror: print_name() missing 1 required positional argument: 'self'

# 2.寫出輸出

class a:

x = 5

s = "aaa"

def __init__(self):

self.x = 8

class b(a):

def __init__(self):

self.s = "bbb"

a = a()

a.x = 9

b = b()

print(a.x, a.s)

print(b.x, b.s)

# 9 aaa

# 5 bbb

# b是b的物件,例項,b繼承於a,b.x在b類裡沒有這個屬性,往上找, 去父類a裡面找

# 3.

x=1y=2

c=3n=0

print(x and y and c)

print(x or y or c)

print(n and x and y and c)

print(n or x or y or c)

# answer:

print(x and y and c)

>>> 1 and 2 and 3

3print(x or y or c)

>>> 1 or 2 or 3

1print(n and x and y and c)

>>> 0 and 1 and 2 and 3

0print(n or x or y or c)

>>> 0 or 1 or 2 or 3

1# 拓展

>>> 0 or 0 or 1 or 2

1# 變數非0為true 0為false

# or中, 至少有乙個非0時,返回第乙個非0

# and中含0,返回0; 均為非0 true時,返回後乙個值

my_class .print_name()的結果 xiaohei

my_class 是myclass的例項物件 在建立類物件時就會呼叫init方法進行初始化

xiaohei 通過初始化方法傳入 *args 

if *agrs: 如果存在

self.class_name=agr[0] 索引去第乙個元素 xiaohei

my_class .print_name_cls() 結果: xiaobai

例項物件 呼叫的類方法(cls) cls是類本身 類裡面的class_name = xiaobai

my_class .print_name_stc() 類的class_name 屬性 xiaobai

myclass .print_name_cls() xiaobai 類 呼叫 類方法

myclass .print_name_stc() xiaobai 類 呼叫靜態方法

myclass .print_name() xiaobai 類 訪問 類屬性

例項方法、靜態方法和類方法

方法包括:例項方法、靜態方法和類方法,三種方法在記憶體中都歸屬於類,區別在於呼叫方式不同。

例項方法:由物件呼叫;至少乙個self引數;執行例項方法時,自動將呼叫該方法的物件賦值給self;

類方法:由類呼叫; 至少乙個cls引數;執行類方法時,自動將呼叫該方法的類賦值給cls;

靜態方法:由類呼叫;無缺省引數;

對比相同點:對於所有的方法而言,均屬於類,所以 在記憶體中也只儲存乙份

不同點:方法呼叫者不同、呼叫方法時自動傳入的引數不同。

python語法面試題 python面試題

1.去重,集合 集合的乙個重要特點是 自動去除重複的值 li 1,2,3,1,1,2,2,3,3 去除重複的元素 set set li 轉換為集合,因為集合會自動去重。print set li list set 將集合轉換為列表print li 2.生成器 規則 生成器函式,或者生成器表示式,在呼叫...

面試題 找單獨數字

陣列a中,除了某乙個數字x之外,其他數字都出現了 三次,而x出現了 一次。請給出最快的方法,找到x。這道題是 陣列中除了乙個數字外,其他數字都出現了兩次這道題的公升級版,在其他數字都是兩個的陣列中找出單獨的數字,由於兩個相同的數字經過異或運算後為0,所以我們只要讓陣列中的每乙個數字相互異或就能找到那...

面試題 消失的數字

題目是 陣列nums包含從0到n的所有整數,但其中缺了乙個。請編寫 找出那個缺失的整數。要求時間複雜度為o n 這道題我首先想到的是將這個陣列從小到大排序 時間複雜度為o n 的排序演算法 然後用乙個初始化為0的變數j跟著陣列的下標走,當變數的值與陣列的對應下標位置的值不相等時,此時變數j的值即為 ...