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

      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):

Screenshot from 2017-12-27 06:02:41.png

#可以看到調用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看一下,發現是字典數類型

Screenshot from 2017-12-27 06:26:19.png

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

Screenshot from 2017-12-27 06:23:09.png

總結:在定義函數時,一般幾種參數會混合使用,

          混合使用參數的順序:必選參數,默認參數,可變參數,關鍵字參數

函數中變量的作用域

全局變量:除非變量名被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函數內起作用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章