python第二天

一、局部變量:

小結:
1、就是在函數內部定義的變量
2、作用範圍就是在這個函數內部,函數之外不能使用
3、作用是存儲臨時保存的數據

二、全局變量

1、如果一個變量既能在一個函數中使用也能在別的函數使用這個變量就是全局變量
(在函數外邊定義的變量叫做 全局變量)

舉例:
定義全局變量
a = 100
def test1():
a = 666
print(a) # 雖然沒有定義變量a但是依然可以獲取其數據
def test2():
print(a) # 雖然沒有定義變量a但是依然可以獲取其數據
調用函數
test1()
test2()

運行結果:
666
100
發現:
當函數內出現局部變量和全局變量相同名字時,函數內部中的 變量名 = 數據 此時理解爲定
義了一個局部變量,而不是修改全局變量的值,那麼問題來了怎麼在函數中修改成員變量的值呢?在函數中加 global
舉例:
定義全局變量
a = 100
def test1():
global a
a = 666
print(a) # 雖然沒有定義變量a但是依然可以獲取其數據
def test2():
print(a) # 雖然沒有定義變量a但是依然可以獲取其數據
調用函數
test1()
test2()

運行結果
666
666

發現:
如果在函數中出現 global 全局變量的名字 那麼這個函數中即使出現和全局變量名相同的 變量
名 = 數據 也理解爲對全局變量進行修改,而不是定義局部變量

三、如果函數中如何有多個return值?

在python中我們怎樣返回多個值?
def create_nums():
print("—1---")
return 1 # 函數中下面的代碼不會被執行,因爲return除了能夠將數據返回之外,還有一個隱藏的
功能:結束函數
print("—2---")
return 2
print("—3---")
總結1:
一個函數中可以有多個return語句,但是只要有一個return語句被執行到,那麼這個函數就會
結束了,因此後面的return沒有什麼用處
如果程序設計爲如下,是可以的因爲不同的場景下執行不同的return

1、if else
2、 return(a,b)

四、注意事項:

1、缺省參數
在形參中默認有值的參數,稱之爲缺省參數
注意:帶有默認值的參數一定要位於參數列表的最後面

def printinfo(name, age=35, sex):
… print name

File “”, line 1
SyntaxError: non-default argument follows default argument

. 缺省參數在*args後面
def sum_nums_3(a, *args, b=22, c=33, kwargs):
print(a)
print(b)
print©
print(args)
print(kwargs)
sum_nums_3(100, 200, 300, 400, 500, 600, 700, b=1, c=2, mm=800, nn=900)
說明:
如果很多個值都是不定長參數,那麼這種情況下,可以將缺省參數放到 *args的後面, 但如果有
kwargs的話,**kwargs必須是最後的

2、對返回數據直接拆包:

拆包、交換變量的值
<1> 對返回的數據直接拆包
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age

result = get_my_info()
print(result)

my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
總結:
拆包時要注意,需要拆的數據的個數要與變量的個數相同,否則程序會異常
除了對元組拆包之外,還可以對列表、字典等拆包

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