1. 程式人生 > >Python(七)函數

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(七)函數