Python(七)函數
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
#!/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的簡潔、優雅
調用函數
一、調用方式:
函數名稱()
二、傳遞參數:
- 必選參數: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這部分可以是自己定義的任何字典:
總結:在定義函數時,一般幾種參數會混合使用,
混合使用參數的順序:必選參數,默認參數,可變參數,關鍵字參數
python中函數可以返回多個值
函數中變量的作用域
全局變量:除非變量名被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函數內起作用
Python(七)函數