跟着太白老师学python 09day 初识函数
函數的最主要的目的:封裝一個功能
函數的優點:
減少代碼的復用率, 增加代碼的閱讀性
def my_len(arvg): # arvg 形參 my_len函數名,應該具有代表性,讓你一看就明白# 函數體count = 0for i in arvg:count += 1return count print(my_len(s)) # s實參return 特點:遇到return結束程序, 返回一些信息
如果當只有一個返回值時,返回是什么就是什么類型的
如果當有多個返回值時,將返回一個元組,元組里是需要返回的值
def fun1():a = 1b = 2c = a + bd = 'alex'return c, d print(fun1())>>>(3, 'alex')
函數傳參:
? ? ? ? ? ?#實參 ? ?函數執行者實際的參數
? ? ? ? ? ? ? ? ? ? ? ? ?1.位置參數
? ? ? ? ? ? ? ? ? ? ? ? ?2.關鍵字參數
? ? ? ? ? ? ? ? ? ? ? ? ?3. 混合參數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1.位置參數:按照位置一一對應
def fun2(a, b, c):print(a, b, c)fun2(1, 2, 3)>>> 1 2 3
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2 關鍵字參數: 按照所給參數一一對應
def func3(x, y):return x, y print(func3(y=1, x=2))>>>>(2, 1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3. 混合參數 由位置參數和關鍵字參數組成, 關鍵字參數一定要在位置參數的后面
def func4(x, y, z):return x, y, z print(func4(1, z=2, y=3))? ? ? ? ? ? ? ?形參
? ? ? ? ? ? ? ? ? ? ? ? ?1.位置參數
? ? ? ? ? ? ? ? ? ? ? ? ?2.默認參數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 位置參數: 按照位置一一對應
def func5(x, y):return x + yprint(func5(1, 2))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 默認參數,如果不傳,就默認使用,函數里的默認值,如果傳就使用傳入的值,默認值設置一般考慮使用量比較多的情況
def login(name, sex='男'):f = open('a1.txt', encoding='utf-8', mode='a') #打開文件寫入f.write('{}|{}\n'.format(name,sex))f.close()while True:content = input('請輸入姓名和性別,默認為Q,按,分隔, 按Q退出')name, sex = content.strip().split(',')if name.upper() == 'Q':breakif sex: #如果有值,就傳入 login(name, sex)else: #沒有值,就默認使用sex='男'login(name)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?默認參數的注意事項,這里有坑
? ?
def func6(x, l1=[]):l1.append(x)return l1 tag_1 = func6(1) print(tag_1, id(tag_1)) tag_2 = func6(2) print(tag_2, id(tag_2))>>>>
[1] 4612744
[1, 2] 4612744
我們可以發現兩次執行時的l1可變參數,指向的是同一個內存地址,因此1和2都被添加到同一個l1中,所以在使用默認參數的時候,最好不要使用可變數字類型,不可變數字類型包括數字,字母,布爾值,元組,一般都使用前3個來設置默認參數.
如果非要是使用,我們需要使用 l = [],重新復制,更換 l 的地址
?
def func6(x, l=[]):l = []l.append(x)return l tag_1 = func6(1) print(tag_1, id(tag_1)) tag_2 = func6(2) print(tag_2, id(tag_2))?三元運算 是一種判斷的簡便寫法
def func7(x, y):return x if x > y else yprint(func7(1, 2))?
?
?
?
?
? ? ? ? ? ? ? ? ? ? ? ? ? ?
轉載于:https://www.cnblogs.com/my-love-is-python/p/9481895.html
總結
以上是生活随笔為你收集整理的跟着太白老师学python 09day 初识函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Python]程序结构与控制流
- 下一篇: [算法总结] 二分查找