-
0b二進制 0x十六進制查看全部
-
合法的變量名規則:
變量名由大小寫英文字母、數字和下劃線_組成
變量不能用數字開頭
變量盡量不要和Python關鍵字重合(比如前面學習過的:and、or、not,否則可能導致Python原有關鍵字發揮不出作用)
查看全部 -
和 for 循環不同的另一種循環是 while 循環,while循環可以繼續進行下去的條件更加簡單,只需要判斷while循環的條件是否為True即可,當條件為True時,即繼續運行下去
查看全部 -
Python函數提供可變關鍵字參數,對于可變關鍵字參數,可以通過關鍵字的名字key找到對應的參數值。
Python會把可變關鍵字參數當作dict去處理;對于可變關鍵字參數,一般使用**kwargs來表示。
def info(**kwargs):
? ?print('name: {}, gender: {}, age: {}'.format(kwargs.get('name'), kwargs.get('gender'), kwargs.get('age')))
info(name = 'Alice', gender = 'girl', age = 16)對于一個擁有必需參數,默認參數,可變參數,可變關鍵字參數的函數,定義順序是這樣的:
def func(param1, param2, param3 = None, *args, **kwargs):
? ?print(param1)
? ?print(param2)
? ?print(param3)
? ?print(args)
? ?print(kwargs)
func(100, 200, 300, 400, 500, name = 'Alice', score = 100)
# ==> 100
# ==> 200
# ==> 300
# ==> (400, 500)
# ==> {'name': 'Alice', 'score': 100}
查看全部 -
Python函數還接收一種參數叫做可變參數,可變參數即任意個參數的意思,可變參數通常使用*args來表示。
def func(*args):
? ?print('args length = {}, args = {}'.format(len(args), args))
func('a') # ==> args length = 1, args = ('a',)
func('a', 'b') # ==> args length = 2, args = ('a', 'b')
func('a', 'b', 'c') # ==> args length = 3, args = ('a', 'b', 'c')注意,在使用上,Python會把可變參數定義為一個tuple,所以在函數內部,把可變參數當作tuple來使用就可以了,比如可以通過位置下標取出對應的元素等。
因為可變參數的長度可能是0,當長度為0的時候,就會出現除0錯誤。因此需要添加保護的邏輯。
查看全部 -
def greet(name='world'):
? ?print ('Hello, ' + name + '.')
greet()
greet('Alice')查看全部 -
int()函數的第二個參數是轉換進制base,如果不傳,默認是十進制 (base=10),如果傳了,就用傳入的參數。
int('123', 8) # ==> 83
需要注意的是,由于函數的參數按從左到右的順序匹配,所以默認參數只能定義在必需參數的后面,否則將會出現錯誤。
查看全部 -
list可以放入數字、字符串等數據類型,list不對放入其中的類型進行判斷,也就是說,list可以同時放入任意類型的數據,這是Python這門語言決定的,因為Python是動態語言。
查看全部 -
isinstance()函數,可以判斷參數類型,它接收兩個參數,第一個是需要判斷的參數,第二個是類型。
isinstance(100, int) # ==> True
isinstance(100.0, int) # ==> False
isinstance('3.1415926', str) # ==> True優化my_abs函數,不在里面運行出錯了。
def my_abs(x):
? ?if not isinstance(x, int) or not isinstance(x, float):
? ? ? ?print('param type error.')
? ? ? ?return None
? ?if x >= 0:
? ? ? ?return x
? ?else:
? ? ? ?return -x
查看全部 -
# 遞歸
def my_sumB(n):
? ?sum = 0
? ?if n == 1:
? ? ? ?sum = n
? ?else:
? ? ? ?sum = n + my_sumB(n - 1)
? ?return sum查看全部 -
fact(n)用遞歸的方式寫出來就是:
def fact(n):
? ? ?if n==1:
? ? ? ???? return 1
? ? ? return n * fact(n - 1)遞歸函數的優點是定義簡單,邏輯清晰。
使用遞歸函數需要注意防止棧溢出。在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀。由于棧的大小不是無限的,所以,遞歸調用的次數過多,會導致棧溢出。
查看全部 -
不通過return返回結果,函數是沒有返回結果的,這個時候從函數獲取到的是一個空值None。
return
因為在函數內部,把結果打印出來了,但是沒有把結果返回。
result =list_sum(l) # 調用定義的sum_list函數并獲得return返回的結果
print(result) # ==> None函數也可以返回多個值,在函數中,如果需要返回多個值,多個值之間使用逗號分隔即可,但是需要注意順序。
return C, S
C, S = data_of_square(16)
print('周長 = {}'.format(C)) # ==> 周長 = 64
print('面積 = {}'.format(S)) # ==> 面積 = 256也可以使用一個值存儲函數返回的多值結果。
result = data_of_square(16)
print(result) # ==> (64, 256)
注意打印的result,其實它是tuple類型,如果我們需要取出結果中的周長或者面積,使用對應位置的下標就可以獲得對應的結果。C = result[0]
S = result[1]
查看全部 -
可變關鍵字參數,具體輸入法啥關鍵字,其實也在方法內寫明了(如names,gender等,只不過沒有輸入參數中寫明)。
查看全部
舉報