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函數內起作用