Python_基础_6
生活随笔
收集整理的這篇文章主要介紹了
Python_基础_6
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1函數基礎
def sel_func():print('顯示余額')print('存款')print('取款')print('恭喜您登錄成功') sel_func() print('您的余額是9.99') sel_func() print('取了0.99元') sel_func() def add_num(a, b):return a + bresult = add_num(1, 2) print(result) # 函數體內 return下方的函數不會執行 # 函數的說明文檔 # help() 查看函數的說明文檔 help(help) # 說明文檔只能寫在第一行 def sum_num(a, b):"""求和函數"""return a + bhelp(sum_num)# 高級使用 在注釋內敲回車def sum_num1(a, b):"""求和函數1:param a:參數1:param b:參數2:return: 返回值"""return a + bhelp(sum_num1) # 函數嵌套調用 def testB():print('這里是testB')def testA():print('這里是testA')testB()testA() # 函數嵌套應用 # 1.1打印一條橫線 def print_line():print('-' * 20)print_line()# 1.2打印多條橫線 def print_lines(num):i = 0while i < num:print_line()i += 1print_lines(3) print()# 2.1求三個數之和 def sum_num(a, b, c):return a + b + cresult = sum_num(1, 2, 3) print(result)# 2.2 求三個數的平均值 def average_num(a, b, c):sumResult = sum_num(a, b, c)return sumResult / 3result1 = average_num(1, 2, 3) print(result)2函數進階
2.1函數的作用域
指的是變量生效的范圍,主要分為兩類:局部變量和全局變量
2.1.1 局部變量
局部變量 定義在函數體內部的變量,只在函數體內部生效
局部變量的作用:在函數體內部,臨時保存數據,即當函數調用完成后,則銷毀局部變量。
#定義在函數內部的變量,在函數外部訪問則立即報錯
2.1.2全局變量
指的是在函數體內、外都能生效的變量
# 修改全局變量 a = 100def testA():print(a)def testB():a = 200print(a)testA() # 100 testB() # 200 print(f'全局變量{a}') # 100# 在函數體內部修改全局變量 def testB1():global aa = 200testB1() print(f'全局變量a={a}') # 2002.2多函數程序執行流程
glo_num = 0def test1():global glo_numglo_num = 100def test2():print(glo_num)print(glo_num) # 0 還沒有調用函數1 test1() test2() # 100 先調用了函數1 print(glo_num) # 1002.3返回值作為參數傳遞
def test1():return 50def test2(num):print(num)result = test1() test2(result) # test2(test1())2.4函數的返回值
# 有多個返回值的寫法def return_num1():return 1return 2print(return_num1()) # 1# 正確寫法def return_num2():# return 1, 2 # 返回的是元組 (1, 2)# return 后面可以直接書寫 元組 列表 字典 返回多個值# return [100, 200] # [100, 200]return {'name': 'whh', 'age': 2}print(return_num2())2.5函數的參數
# 1位置參數 # 傳遞和定義參數的順序和個數必須一致 def user_info(name, age, gender):print(f'名字{name},年齡{age},性別是{gender}')user_info('tom', 20, 'man') # 2關鍵字參數 # 函數調用通過“鍵=值”形式加以指定。消除了參數的順序的要求 # 函數調用是,如果有位置參數時,位置參數必須在關鍵字參數的前面, # 但關鍵字之間不存在先后順序 def user_info(name, age, gender):print(f'名字{name},年齡{age},性別是{gender}')user_info('tom', gender='man', age=20) # 3缺省參數 # 缺省參數也叫做默認參數,用于定義函數,為函數提供默認值, # 調用函數時可不傳該默認參數的值 # 注意:所有位置參數必須出現在默認參數前,包括函數的定義和調用 # 函數調用時,如果為缺省函數傳值則修改默認參數值;否則使用這個默認值def user_info(name, age, gender='男'):print(f'名字{name},年齡{age},性別是{gender}')user_info('tom', 20) user_info('rr', 23, '女')不定長此參數也叫做可變參數
用于不確定嗲用的時候會傳遞多少個參數(不穿參也可以)。
可用(packing)位置參數,或者包裹關鍵字參數,來進行參數傳遞
2.6拆包和交換變量值
2.6.1拆包
# 拆包:元組 def return_num():return 100, 200num1, num2 = return_num() print(num1) print(num2)# 拆包:字典 dict1 = {'name': 'Tom', 'age': 18} a, b = dict1print(a) print(dict1[a]) print(b) print(dict1[b])2.6.2交換變量值
# 需要交換a = 10和b = 20的值 # 1 借助第三個變量 a, b, c = 10, 20, 0 c = a a = b b = c print(f'a={a},b=') # a=20,b=10# 2 a, b = 1, 2 a, b = b, a print(f'a={a},b=') # a=2,b=12.7引用
在python中,值都是靠引用來傳遞的
可以使用id()來判斷兩個變量是否為同一個值的引用。
可以將id值理解為那塊內存的地址標識
2.7.1引用之不可變類型
# int a = 1 b = a print(b) # 1 print(id(a)) # 140713135498064 print(id(b)) # 140713135498064a = 2 print(b) # 1,說明int為不可變類型 print(id(a)) # 140713135498096 print(id(b)) # 1407131354980642.7.2引用之可變類型
# 列表 aa = [10, 20] bb = aaprint(id(aa)) # 1471838577288 print(id(bb)) # 1471838577288aa.append(30) print(bb) # [10, 20, 30] 列表為可變類型print(id(aa)) # 1471838577288 print(id(bb)) # 14718385772882.7.3引用當作實參
def test1(a):print(a)print(id(a))a += aprint(a)print(id(a))# int: 計算前后id值不相同 b = 100 test1(b) # 列表:計算前后id值相同 c = [11, 22] test1(c)2.8可變和不可變類型
數據能夠直接進行修改的就是可變類型
2.8.1可變類型
列表、字典和集合
2.8.2不可變類型
整型、浮點型、字符串、元組
總結
以上是生活随笔為你收集整理的Python_基础_6的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python_基础_5
- 下一篇: 递归实现指数型枚举