函式的中高階和高階,插入點模組

2021-09-18 07:01:24 字數 3763 閱讀 8686

補充

資料型別中的方法到底有沒有返回值?

僅有返回值:

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的數字,如果...