補充
資料型別中的方法到底有沒有返回值?
僅有返回值:
v = 「alex」
result = v.split(『l』)
v =
result1 = v.get('k1')
result2 = v.keys()
有返回+修改資料
v = [11,22,33]
result = v.pop()
常用需要記住
list
insert,無
pop,返回要刪除的資料
remove,無
find/index,返回索引的位置。
dict
函式內部的資料是否會混亂。
內容詳細
函式中高階
1.1 函式可以做返回值
def func():
print(123)
def bar():
return func
v = bar()
v()name = 'oldboy'
def func():
print(name)
def bar():
return func
v = bar()
v()def bar():
def inner():
print(123)
return inner
v = bar()
v()name = 'oldboy'
def bar():
name = 'alex'
def inner():
print(name)
return inner
v = bar()
v()name = 'oldboy'
def bar(name):
def inner():
print(name)
return inner
v1 = bar('alex') # # 閉包,為函式建立一塊區域(內部變數供自己使用),為他以後執行提供資料。
v2 = bar('eric') #
v1()
v2()
練習題
# 第一題
name = 'alex'
def base():
print(name)
def func():
name = 'eric'
base()
func() #
# 第二題
name = 'alex'
def func():
name = 'eric'
def base():
print(name)
base()
func()
# 第三題
name = 'alex'
def func():
name = 'eric'
def base():
print(name)
return base
base = func()
base()
注意:函式在何時被誰建立?
面試題
info =
def func():
print(item)
for item in range(10):
info[0]()
info =
def func(i):
def inner():
print(i)
return inner
for item in range(10):
info[0]()
info[1]()
info[4]()
1.2 閉包
def func(name):
def inner():
print(name)
return inner
v1 = func('alex')
v1()
v2 = func('eric')
v2()
1.3 高階函式
注意:對函式進行賦值
1.4 總結
內建函式
高階一點的內建函式
面試題:
模組 將指定的 「字串」 進行加密。
import hashlib
def get_md5(data):
obj = hashlib.md5()
obj.update(data.encode('utf-8'))
result = obj.hexdigest()
return result
val = get_md5('123')
print(val)
加鹽
import hashlib
def get_md5(data):
obj = hashlib.md5("sidrsicxwersdfsaersdfsdfresdy54436jgfdsjdxff123ad".encode('utf-8'))
obj.update(data.encode('utf-8'))
result = obj.hexdigest()
return result
val = get_md5('123')
print(val)
應用:
import hashlib
user_list =
def get_md5(data):
obj = hashlib.md5("12:;idrsicxwersdfsaersdfsdfresdy54436jgfdsjdxff123ad".encode('utf-8'))
obj.update(data.encode('utf-8'))
result = obj.hexdigest()
return result
def register():
print('**************使用者註冊**************')
while true:
user = input('請輸入使用者名稱:')
if user == 'n':
return
pwd = input('請輸入密碼:')
temp =
def login():
print('**************使用者登陸**************')
user = input('請輸入使用者名稱:')
pwd = input('請輸入密碼:')
for item in user_list:
if item['username'] == user and item['password'] == get_md5(pwd):
return true
register()
result = login()
if result:
print('登陸成功')
else:
print('登陸失敗')
贈送:密碼不顯示(只能在終端執行)
import getpass
pwd = getpass.getpass('請輸入密碼:')
if pwd == '123':
print('輸入正確')
numpy模組中高階統計函式
1 計算沿指定軸的元素個數的第q個百分位數,求觀察值n 函式percentile a,q,axis none a為需要統計的集合物件,q為要計算的百分位數或百分位數序列 q的取值區間為 0,100 返回q 範圍內的觀察值 import numpy as np a1 np.array 10,0,9 8...
python中高階函式
一等公民 高階函式 高階函式 high order function def counter base def inc step 1 nonlocal base base step return base return inc 上面的counter是高階函式,因為return inc,即返回函式 內...
vue,js中高階函式的使用
在用vue.js開發過程中為了使 不那麼複雜化,我們常常需要記住一些js中高階函式的用法,這裡推薦3中高階函式的用法 filter,map,reduce 這裡用乙個小栗子來記錄一下 const nums 12,23,22,18,100,67,48,88 需求1 對陣列進行遍歷篩選小於50的數字,如果...