從函式內部傳遞到外部的資料就是返回值
沒有return則預設返回none
def
example
(a):
if a &1:
total =
1for x in
range(1
, a +1)
: total *= x
return total
else
:return a **
3print
(example(11)
)
根據變數的作用域,將變數分為全域性變數和區域性變數
沒有定義在函式或者類內的變數都是全域性變數,全域性變數的作用域是從定義開始到程式結束
區域性變數
定義在函式中的變數就是區域性變數,區域性變數的作用與是從定義開始到函式結束
def
func()
:global age
age =
20print
(age)
func(
)print
(age)
函式名 = lambda 引數列表:返回值
def
func1
(x):
return x *
2func2 =
lambda x: x *
2a = func2(2)
print
(a)func3 =
lambda x:
(x %4==
0and x %
100!=0)
or x %
400==
0print
(func3(
1900
))
python定義函式就是定義乙個function型變數,函式名就是變數名
a =
lambda x: x **
2b =
10list1 =
[a, b]
c = list1[0]
(list1[1]
)
實參高階函式 函式的某個引數是函式,那麼這個函式就是實參高階函式
返回值高階函式 如果乙個函式的返回值是函式,那麼這個函式就是返回值高階函式
def
func1
(x):
print
(x()+10
)def
cal(n)
:if n >1:
return cal(n -1)
+ n else
:return
1print
(cal(10)
)
系統實參高階函式
max、min、sorted、map、reduce
max、min、sorted
引數key要求傳乙個函式,這個函式決定比較大小的標準
key的要求:
是乙個函式
該函式只有乙個引數(引數相當於序列中的元素)
函式有返回值(返回值就是比較標準)
num =[12
,34,54
,623
,100,45
]result =
max(num, key=
lambda x: x %10)
print
(result)
result =
min(num, key=
lambda x: x //10)
print
(result)
result =
max(num, key=
lambda x:
sum(
int(y)
for y in
str(x)))
print
(result)
nums =
[123
,'78',89
,'345'
]# 獲取nums數值最大的元素
print
(max
(nums, key=
lambda x:
int(x)))
result =
sorted
(num, key=
lambda x:
sum(
int(y)
for y in
str(x)))
print
(result)
result =
sorted
(num, key=
lambda x:
-sum
(int
(y)for y in
str(x)))
print
(result)
students =[,
,,,]
# 1)獲取students年齡最小的學生(用min)
# 2)按照分數對students從大到小排序
print
(min
(students, key=
lambda x: x[
'age'])
,'\n'
, end=
'***************===\n'
)print
(sorted
(students, key=
lambda x:
- x[
'score'])
)
學習日誌2 2
1.復合算數賦值?答 等符號的應用是同道理的 即把左邊的移過右邊運算 右邊用括號包住,表示先運算 結果再給左邊 注意左邊只能是變數,不可為表示式 a b 等價於a a b b可以是值或表示式,這裡的 仍是賦值號哦,b打括號是因為它可以是表示式 如 x 1 x x 1 x 1 2 3 x x 1 2 ...
學習日誌 5月22日
今天看了itemcf的 有很多看不懂的地方,改天留著請教其他人 coding utf 8 import random import time import math from operator import itemgetter class itembasedcf 初始化引數 definit sel...
日誌11月22日
今天學習客戶端網路程式設計 usr bin python coding utf 8 檔名 client.py import socket 匯入 socket 模組 s socket.socket 建立 socket 物件 host socket.gethostname 獲取本地主機名 port 12...