根據變數作用域(能使用的範圍)的不同將變數分為:全域性變數和區域性變數
1. 全域性變數
沒有定義在函式裡面或者類裡面的變數都是全域性變數、全域性變數的作用域是從定義開始到程式結束
全域性變數可以在函式裡直接用
2.區域性變數
定義在函式裡面的變數就是區域性變數。區域性變數的作用域是從定義開始到函式結束
形參也是區域性變數
# 全域性變數示例1
a =20
iftrue
:print
(f'if語句中:'
)for _ in
range(3
):print
(f'迴圈中:'
)# 全域性變數示例2
for _ in
range(3
):b =
100# 全域性變數
print
(f'函式外面b:'
)def
func3
(m, n)
: s = m + n
d =100#區域性
print
(m, n, d)
3.global
global和return都是只能在函式體中使用的關鍵字
如果直接在函式內部修改全域性變數的值,它會在函式內部建立乙個對應的區域性變數,導致修改失敗
age =
19def
func4()
:global age
age =
30print
(f'函式內部的年齡:'
)func4(
)# 不呼叫是沒得結果的!
print
(f'函式外部的年齡:'
)
1. 什麼是返回值
凡是產生新的資料,就return
從函式內部傳遞到函式外部的資料就是函式返回值
放在函式裡面的資料在呼叫以後會自動銷毀
2. 什麼時候函式需要返回值
如果實現函式的功能產生了新的資料,那麼這個函式就需要通過返回值把新產生的資料返回
3.怎麼將資料返回
1)怎麼確定函式返回值
返回值就是return關鍵字後面的值
沒有returb,預設返回none
2)怎麼獲取函式返回值
函式呼叫表示式的值就是函式返回值
4. 怎麼使用函式返回值
返回值能做的,函式呼叫表示式都可以做
5.return的使用
1)需要將函式中產生的資料返回的時候,使用return,return返回的資料
2)提前結束函式(執行函式體的如果遇到renturn,就結束函式):一般在if語句中
# 求兩個數的和
defsum1
(a, b)
:return a + b
# 練習:寫乙個函式,如果這個數是偶數就計算這個數的階乘,否則就計算這個數的立方
deffun1
(n):
if n &1:
return n **
3else
: factrial =
1for x in
range(1
, n +1)
: factrial *= x
return factrial
print
(fun1(9)
)
1. 什麼是匿名函式
匿名函式還是函式
定義匿名函式的語法:
函式名=lambda 引數列表:返回值
匿名函式可以看成是函式體只有一條語句的函式的簡單方式
func1 =
lambda x: x *
2func2 =
lambda x, y=
10: x + y
print
(func1(10)
)print
(func1(x=
100)
)print
(func2(2)
)# 練習 :寫乙個匿名函式判斷指定的年是否是閏年
years =
lambda x: x %4==
0and x %
100!=
0or x %
400==
0print
(years(
2500
))
python中定義函式其實就是乙個型別是function的變數
普通變數能做的,函式都可以做
1. 高階函式
1)實參高階函式 -如果乙個函式的某個引數是函式,那麼這樣的函式就是實參函式
2)返回值高階函式 -如果乙個函式的返回值是函式,那麼這個函式就是返回值高階函式
# 檢視變數型別
print
(type
(x))
# print
(type
(func1))#
# 查id位址
# 用乙個變數給另外乙個變數賦值
deffunc2()
:return
100z = func1z()
list1=
[func2,func2(),
100]
print
(list1[0]
())#100
print
(list1)
#[, 100, '函式']
2.系統實參高階函式
max、min、sorted、map、reduce
1. max、min、sorted
引數key要求傳乙個函式,可以通過這個函式來確定比較大小的時候的比較標準
key的要求:
a.是乙個函式
b.這個函式必須有且只有乙個引數,這個引數就相當於序列中每個元素
c.這個函式需要乙個返回值(返回值就是比較標準)
# 求個位上數字最大的元素
nums =[78
,67,55
,18,29
]result=
max(nums,key=
lambda item:item%10)
print
(result)
# 求各個位上的數字和最大的元素
nums =
[128,88
,90,71
]def
fun(item)
: s =
0for x in
str(item)
: s +=
int(x)
return s
result=
max(nums,key=fun)
print
(result)
# 獲取nums數值最大的元素
nums=
[123
,'78',89
,'345'
]result =
max(nums,key=
lambda item:
int(item)
)print
(result)
#345 返回符合標準的元素,返回的是字串
# 對nums按照個位數的大小從小到大排序:[55,67,78,18,29]
nums=[78
,67,55
,18,29
]new_nums =
sorted
(nums,key=
lambda item: item%10)
print
(new_nums)
students =[,
,,,]
# 獲取students年齡最小的學生
result=
min(students,key=
lambda item:item[
'age'])
print
(result)
# 按照分數對students從大到小排序
result=
sorted
(students,key=
lambda item:item[
'score'
],reverse=
true
)print
(result)
day11函式的高階
1 什麼是返回值 從函式內容傳遞到函式外部的資料就是函式的返回值 2 什麼時候函式需要返回值 新手 如果實現函式的功能產生了新的資料,那麼這個函式就需要通過返回值把新產生的資料返回 3 怎麼將資料返回 def sum1 a,b return a b s sum1 10,20 print s 30 d...
Python練習 高階函式 day11
1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 1.1.作業1,寫函式,傳入n個數,返回字典 例如 min max 2,5,7,8,4 返回 此題用到max min 內建函式 2,寫函式,傳入乙個引數n,返回n的階乘 例如 cal ...
day11 高階函式和裝飾器
引數是函式的函式就是實參高階函式 def func4 f f func1 print f 10,20 2 print func1 10,20 2 def func1 nums return 1,2 func4 func1 系統實參高階函式的應用 普通用法 max min 序列 求序列中元素的最大 小...