函式的變數和返回值

2021-08-14 07:47:51 字數 3881 閱讀 8629

一、函式的變數

1.函式變數分為區域性變數和全域性變數

區域性變數:在python中的任何變數都有特定的作用域,在函式中定義的變數一般只能在該函式內部使用,這些只能在程式的特定部分使用的變數我們稱之為區域性變數

全域性變數:在乙個檔案頂部定義的變數可以供檔案中的任何函式呼叫,這些可以為整個程式所使用的變數稱為全域性變數。

2.看個例子,來了解一下區域性變數和全域性變數

說明:x 在函式內部,他就是乙個內部變數,只在函式內部生效,當結束了函式,x變數就無效了。作用域在函式內部。

說明:全域性變數定義在檔案頂部,即使函式內部也可以使用全域性變數。但是不能對他進行修改。

說明:這樣寫會報錯,提示乙個異常,區域性變數x 參考之前定義的變數。不能修改全域性變數。

如果要對全域性變數進行修改,可以用global 來宣告。

說明:global 宣告區域性變數x為全域性變數,所以我們可以對全域性變數x進行修改操作。並在全域性生效。

說明:在函式內部定義了變數y 通過global宣告後,外部也能列印出y的值,如果函式沒有呼叫,函式內部定義的x和y 變數都不會生效。

2.locals()方法

locals() 函式會以字典型別返回當前位置的全部區域性變數

x = 100

def fun():

x = 1

y = 1

print locals()

fun()

會列印出函式內部裡的所有變數和對應的值,返回字典形式,這是在內部執行的locals。在外部也可以執行locals

x = 100

def fun():

x = 1

y = 1

print locals()

fun()

print locals()

下面的這個字典是,列印的是指令碼執行的時候,有哪些變數執行。

二、函式的返回值。

1.在前面的練習當中,我們有寫過很多的print,在真實情況下,一般都是使用return。

2.什麼是函式返回值?

函式被呼叫後會返回乙個指定的值。如果沒有定義返回值得話缺省會返回乙個none。

用法是:return "返回值"

返回值可以是任意型別,字典 序列等等都可以。

當return執行後,函式終止。return後面的**都不會再執行了。

3.看幾個小例子

(1)def fun():

print("hello world")

print fun()

可以看到print fun函式以後 還出現了乙個none 這就是函式的返回值,因為我們沒有定義返回值,預設就是返回none

def fun():

print("hello world")

return true

print fun()

結果還是出現2個。沒有出現3個。這是因為函式在遇上了return後就會終止,結束了。後面的**就不會再執行了。

(2)把上次寫的判斷數字指令碼優化一下。

思路: 如果定義的s引數不是數字就返回乙個false。如果是數字就返回return

然後對第二個的for迴圈做判斷,如果返回的結果的真,那麼就列印出來。

函式做返回值,就是利用這個返回值來做一些事情,比如可以做判斷。

在把**進行簡化一下:

輸出結果還是一樣的。但是這樣更簡單了、

這裡用到的乙個字串方法:isdigit()判斷該字串是否是數字,如果不是返回false.如果是就返回trun。

練習:1. 設計乙個程式,從終端接收10個數字,並使用自己編寫的排序函式,對10個數字排序後輸出

list1 =   #新建乙個空列表

for i in range(1,11): #輸入10個數

num = raw_input("please input number: ".format(i)) #提示輸入10個數

if num.isdigit(): //判斷是否是數字

def sortnumber():

count = len(list1) #定義長度

for i in range(0,count): #定義第乙個數的迴圈範圍,也是次數

for j in range(i+1,count): #取第二個數比較的範微,也是次數

if int(list1[i]) > int(list1[j]): #判斷第乙個數是否比第二個數大

list1[i],list1[j] = list1[j],list1[i] #如果大於,就調換位置。重新賦值。

2. 設計乙個函式,接收乙個英文單詞,從檔案中查詢該單詞的漢語意思並返回

0703 函式的變數和返回值

函式的變數 1.區域性變數 函式內部使用 2.全域性變數 函式頂部定義,可以供任何函式使用 x global var def fun x 100 print x fun print x 無定義 x 100 def fun global x x x 1 print x 返回值return 返回值 re...

函式的變數 函式的返回值

區域性變數 在函式中定義的變數一般只能在該函式內部使用,這種變數稱為區域性變數 全域性變數 在乙個檔案頂部定義的變數可以供檔案中的任何函式呼叫,這種變數稱為全域性變數 注意,函式只能對全域性變數做 print 操作,如果要做其他操作要用 global 宣告是全域性變數,同理,如果要在函式外部使用函式...

有返回值和無返回值函式

前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...