Python(七)函數
- 2020 年 1 月 14 日
- 筆記
使用技巧:
In [1]: num1,oper,num2 = raw_input().split() 1 + 2 In [2]: print num1,oper,num2 1 + 2 #表示將用戶的輸入,以空格為分隔符,依次賦值給變量num1,oper,num2
定義函數
def 函數名稱():
函數需要執行的代碼塊
return 函數返回值
註:函數中如果沒有寫return,默認return返回的是None
python中函數可以返回多個值,多個返回值實質是一個元組
#!/usr/bin/env python # coding:utf-8 def myadd(): num1=input("輸入第一個數字:") num2=input("輸入第二個數字:") print num1+num2 myadd()
#!/usr/bin/env python # coding:utf-8 def myadd(): num1=input("輸入第一個數字:") num2=input("輸入第二個數字:") return num1+num2 print myadd()
這兩種方式都是可以的,第二種方式將結果賦值給了返回值,然後在調用函數的時候輸出返回值,和第一個腳本功能是一樣的。第二中方式更符合python的簡潔、優雅。
調用函數
一、調用方式:
1.函數名稱()
2.print 函數名稱() #打印該函數的返回值,如果有返回值的話
3.var = 函數名稱() #如果函數有返回值,可以賦值給一個變量
二、傳遞參數:
– 必選參數:def myadd(x,y):
myadd(x,y): #x,y是形參,不是真實的參數,使用任意字母代替都行 x+y num1=() num2=() myadd(num1,num2) #調用函數,num1和num2就是實參,將真實的num1和num2數據傳給函數
– 默認參數:def myadd(x=10,y=10):

#可以看到調用myadd函數結果是20,這是因為myadd函數的默認參數是兩個10,相加結果自然是20
– 可變參數:def add(*num):
#!/usr/bin/env python # coding:utf-8
def add(*num): #*num可以將函數傳入的多個值作為一個整體,最終num是一個元組,包含用戶輸入的多個值 sum = 0 for i in num: sum += i print sum add(1,2,3,4,5)
– 關鍵字參數:def info(name,password,gender,**other):
先輸出**other看一下,發現是字典數類型

**other這部分可以是自己定義的任何字典:

總結:在定義函數時,一般幾種參數會混合使用,
混合使用參數的順序:必選參數,默認參數,可變參數,關鍵字參數
函數中變量的作用域
全局變量:除非變量名被del,否則在整個程序中一直生效
局部變量:只在函數的語句範圍生效
註:在python中想要局部變量全局生效,需要global關鍵字
#!/usr/bin/env python # coding:utf-8 num = 10 #全局變量 def fun(): global num num = 3 #局部變量 fun() print num
#上面這個腳本的輸出是3而不是10,因為有global,這個局部變量就不僅僅只在fun函數內起作用了
#!/usr/bin/env python # coding:utf-8 num = 10 def fun(): # global num num = 3 fun() print num
#這個腳本的輸出結果是10,因為局部變量只在fun函數內起作用