-
def?func(param): ????if?isinstance(param,?list): ????????result?=?0 ????????for?item?in?param: ????????????if?isinstance(item,?int)?or?isinstance(item,?float): ????????????????result?+=?item ????????return?result ????elif?isinstance(param,?tuple): ????????result?=?1 ????????for?item?in?param: ????????????if?isinstance(item,?int)?or?isinstance(item,?float): ????????????????result?*=?item ????????return?result ????return?None
查看全部 -
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
查看全部 -
i = 0
sumn = 0
while i<=100:
? ? sumn+=i
? ? i+=1
print(sumn)
def fact(n):
? ? if n==1:
? ? ? ? return 1
? ? return n+fact(n-1)
print(fact(100))
查看全部 -
遞歸函數的優點是定義簡單,邏輯清晰。理論上,所有的遞歸函數都可以寫成循環的方式,但循環的邏輯不如遞歸清晰。
使用遞歸函數需要注意防止棧溢出。查看全部 -
%? 表示取模
查看全部 -
二進制? ?0b
十六進制? ? 0x
0用None代替
查看全部 -
轉義字符:
查看全部 -
還可以在多行字符串前面添加
r
,把這個多行字符串也變成一個raw字符串:r'''Python?is?created?by?"Guido". It?is?free?and?easy?to?learn. Let's?start?learn?Python?in?imooc!'''
查看全部 -
1、Python中 0、空字符串和None? 值為 False???其他數值和非空字符串都看成True
2、True and 0? #==> 0
3、False?and 0? #==> False
4、0 or 99? #==>99
5、0 and 99??#==>0
5、not 計算優先級高于 and 和 or
查看全部 -
在函數內部調用其他函數,是非常常見的,通過合理拆分邏輯,可以降低程序的復雜度。如果在一個函數內部調用其自身,這個函數就是遞歸函數。
查看全部 -
# coding=utf-8
def sub_sum(L):
? ? index = 0
? ? sum1 = 0
? ? sum2 = 0
? ? for item in L:
? ? ? ? if index % 2 == 0:
? ? ? ? ? ? sum1 += item
? ? ? ? else:
? ? ? ? ? ? sum2 += item
? ? ? ? index += 1
? ? return sum1, sum2
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = sub_sum(L)
print('奇數項的和 = {}'.format(result[0]))
print('偶數項的和 = {}'.format(result[1]))
查看全部 -
tuple和list一樣,可以包含 0 個、1個和任意多個元素。
包含多個元素的 tuple,前面我們已經創建過了。包含 0 個元素的 tuple,也就是空tuple,直接用
()
表示:T?=?() print(T)?#?==>?()
接著,我們創建包含一個元素的tuple。
T?=?(1) print(T)?#?==>?1
這和我們期望的輸出有些差異,為什么包含一個元素的元組打印出來之后沒有小括號,而是只有一個數字1呢?
回顧一下前面數字的四則運算。result?=?3?*?4?-?2 print(result)?#?==>?10 #?改變優先級,先運算減法 result?=?3?*?(4?-?2) print(result)?#?==>?6
可以看到,改變優先級我們是通過
()
來實現的,這和元組的定義有沖突,這就解釋了前面只有一個元素的元組,為什么打印出來卻得到一個數字的結果了。
因為()
既可以表示tuple,又可以作為括號表示運算時的優先級,結果(1)
被Python解釋器計算出結果 1,導致我們得到的不是tuple,而是整數 1。
因此,要定義只有一個元素的tuple,需要在元素后面添加一個逗號,
。T?=?(1,?) print(T)?#?==>?(1,?)
而對于多個元素的tuple,則加和不加這個逗號,效果是一樣的。
>>>?T?=?(1,?2,?3,) >>>?print(T)?#?==>?(1,?2,?3)
查看全部 -
短路計算
在計算
a and b
時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。在計算
a or b
時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果。
任務
請運行如下代碼,并解釋打印的結果:
a?=?'python' print('hello,',?a?or?'world') b?=?'' print('hello,',?b?or?'world')
查看全部 -
def square_of_sum(L):
? ? result =0
? ? for num in L:
? ? ? ? result =result+ num**2
? ? return result
L = [1,2,3]
result = square_of_sum(L)
print(result)
查看全部 -
除了使用Python內置的函數以外,在編程過程中,我們也經常需要自己定義函數。
在Python中,定義一個函數要使用 def 語句,依次寫出函數名、括號()、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用 return 語句返回。請注意,return表示返回的意思,函數體內部的語句在執行時,一旦執行到return時,函數就執行完畢,并將結果返回。因此,函數內部通過條件判斷和循環可以實現非常復雜的邏輯。
這樣子我們就定義了一個sum_list()的函數,注意,在最后return,我們把求和的結果result返回了,這樣就可以在外部調用函數后獲得result。查看全部
舉報