python基礎03-循環結構及函數基礎
阿新 • • 發佈:2019-01-23
特殊用法 block [] 可選 app end range 函數基礎 ber
循環結構及函數基礎
循環結構(for-in)
-
說明:也是循環結構的一種,經常用於遍歷字符串、列表,元組,字典等
-
格式:
for x in y: 循環體
執行流程:x依次表示y中的一個元素,遍歷完所有元素循環結束
-
示例1:遍歷字符串
s = ‘I love you more than i can say‘ for i in s: print(i)
-
示例2:遍歷列表
l = [‘鵝鵝鵝‘, ‘曲項向天歌‘, ‘鋤禾日當午‘, ‘春種一粒粟‘] for i in l: print(i) # 可以獲取下表,enumerate每次循環可以得到下表及元素 for
-
示例3:遍歷字典
d = {‘a‘:‘apple‘, ‘b‘:‘banana‘, ‘c‘:‘car‘, ‘d‘: ‘desk‘} for key in d: # 遍歷字典時遍歷的是鍵 print(key, d.get(key)) # for key, value in d.items(): # 上下兩種方式等價 d.items() <=> dict.items(d) for key, value in dict.items(d): print(key, value)
-
列表生成式
- 可叠代對象:列表、元組、字典等都是可叠代對象,就是可以遍歷的對象
- range,用法如下:
print(range(10)) # 可以生成從0開始到10的連續整數的叠代對象 print(range(0, 10)) # 可以遍歷 for i in range(10): print(i) # 強制轉換為列表 print(list(range(1, 11)))
- 列表生成式:快速生成具有特定規律的列表
# 列表生成式 print([i for i in range(1, 11)]) print([i*2 for i in range(1, 11)]) print([i*i for i in range(1
-
多重循環:就是循環中嵌套循環
- 示例1:從終端輸入一個整數,打印如下圖形:
n = int(input(‘請輸入一個整數:‘)) ‘‘‘ 1 1 2 1 2 3 1 2 3 4 ... 1 2 3 4 ... n ‘‘‘ ‘‘‘ j = 1 while j <= n: i = 1 while i <= j: print(i, end=‘ ‘) i += 1 print() j += 1 ‘‘‘ for i in range(1, n+1): for j in range(1, i+1): print(j, end=‘ ‘) print()
- 示例2:打印九九乘法表
for i in range(1, 10): for j in range(1, i+1): print(‘{}x{}={}‘.format(j, i, j*i), end=‘ ‘) print()
- 示例3:列表排序(選擇法)
l = [1, 9, 4, 2, 0, 8, 3, 7] # 獲取長度 n = len(l) # 外層循環用來控制循環的圈數,每一圈可以確定一個元素的位置 # 確定n個元素起始只需要n-1圈即可 for i in range(n-1): # 內層循環用來比較大小交換元素,一圈確定一個元素 for j in range(i+1, n): # 如果不合適 if l[i] > l[j]: # 交換兩個變量 l[i], l[j] = l[j], l[i] print(l)
函數
-
定義:具有特定功能的一段代碼
-
優點:
- 解決代碼的重復書寫問題
- 可以將功能的實現者和使用者分開,提高開發效率
- 增加的代碼的可移植性
-
分類:
- 庫函數:print、input、abs等
- 自定義:用戶自己封裝的函數
-
格式:
def 函數名([參數列表]): 函數體
[]表示可選,參數可以沒有,也可以有多個。
-
函數名:
- 遵循標識符的命名規範(與變量命名相同)
-
函數調用:
- 函數定以後不會執行,需要調用才執行
- 調用:函數名([參數])
-
示例:
# 無參無返回值 def print_hello(): print(‘Hello‘) # print_hello() # 帶參無返回值 def print_n_hello(n): for i in range(n): print(‘Hello‘) # print_n_hello(5) # 帶參有返回值 def add(a, b): c = a + b # 返回結果 return c print(add(3, 5))
-
函數參數
- 形參:形式參數,函數定義處的參數
- 實參:實際參數,函數調用處的參數
- 必傳參數:也叫位置參數,前面定義的函數中使用的都是必傳參數,調用時的形式必須要與定義的一致。
- 默認參數:就是有默認值的參數,必須放在最後
- 可變長度參數:函數調用時傳遞必定義時的參數要多,多出來的參數會保存在args和kwargs中
def show(a, b=‘默認值‘): # a就是必傳參數 print(a) # b就是默認參數,就是有默認值的參數,必須放在最後 print(b) # show(1, 2) # 關鍵字參數,傳遞參數的時候指定了名字,順序就無所謂了 # show(b=456, a=123) def var_len_args(a, b, name=‘默認名稱‘, *args, **kwargs): print(a) print(b) print(name) # args是一個元組,用來存放所有的多出來的位置參數 print(args) # kwargs是一個字典,用來存放所有的多出來的默認參數 print(kwargs) var_len_args(1, 2, 3, 4, age=18)
- *的特殊用法
def show(a, b):
print(a, b)
l = [1, 2]
# 略顯啰嗦
# show(l[0], l[1])
# 精簡方法
show(*l)
def show2(a=‘aa‘, b=‘bb‘):
print(a, b)
d = {‘a‘:‘apple‘, ‘b‘:‘banana‘}
# show2(a=d[‘a‘], b=d[‘b‘])
# 上面方式的簡單書寫方法
show2(**d)
python基礎03-循環結構及函數基礎