日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数、装饰器、迭代器、内置方法总练习题

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数、装饰器、迭代器、内置方法总练习题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數基礎:

1.寫函數,計算傳入數字參數的和。(動態傳參):用不固定參數的*args不限定輸入的參數,然后用for循環把每個元素加到一起,函數里的args不用加*

def sum1(*args):
j = 0
for i in args: # 不固定參數輸入元祖后,調用不需要加*
j = j + i
print(j)

sum1(1,2,3,4,5,6)
?

2.寫函數,用戶傳入修改的文件名,與要修改的內容,執行函數,完成整個文件的批量修改操作:原來打算打開文件后,遍歷每行數據,每行數據為字符串S--》每行數據用,分割成元素為字符串的列表A--》判斷是否需要修改--》修改后賦值給原來的列表A--》再把列表A用',’.join(list)轉成也就是原來的字符串S--》再用seek,truncate寫回原來文件。

也就是說不用弄一個空列表就能實現修改信息寫回文件,然而寫的時候發現問題出在--》修改后賦值給原來的列表A? 這里,要賦值就要再用一次循環,然后用到枚舉enumerae來定位索引值,而枚舉列表的元素類型為str,剛好原來列表A的元素也是字符串,字符串是不可變的元素,不能通過枚舉索引修改元素,所以還是得弄一個空列表l,把修改后的信息加到空列表l里--》做完后感覺用字典的話應該不用像列表一樣做這么多for循環,因為字典索引是用key,賦值不用index索引去找

用到的東西:str.split(','),list.append(str),文件寫入方法(for i in list ,f.write('\n),seek(0),truncate()),for index,i in enuerate(list) -->if correction-->list[index] = i

def file_change(filename,newinfo,oldinfo):
f = open(filename,'r+')
d = f.readlines() # 信息變成列表,元素是一個一個的字符串,一個字符串就是一行
l = []
n = 0
for i in d:
for i1, e in enumerate(i): # di是每行信息字符串的列表i
e = i.split(',') # 把每行信息字符串變成以,隔開的列表e
# print(i)
for index2,j in enumerate(e):
if j == oldinfo:
j = newinfo # 每個小的字符串檢查,如果有符合的替換掉
e[index2] = j # 通過索引方式把修改后的值賦值回遍歷的列表e
n += 1 # 加一個功能,計算修改的次數
e2 = ','.join(e) # 把列表e用,重新組成字符串e2
l.append(e2) # e2加到空列表l
# print(l)
f.seek(0)
f.truncate() # 清空文件內容
f = open(filename, 'w')
for k in l:
f.write('{}\n'.format(k)) # i信息重新寫入
f.close()
file_change('D:test.txt','AAA','BBB')

3.寫函數,檢查用戶傳入的對象(字符串、列表、元組)的每一個元素是否含有空內容。:all(),any()只能判斷可迭代對象

def check(n):
print('沒有空內容') if all(n) else print('有空內容')

check(None)
TypeError: 'NoneType' object is not iterable


4.寫函數,檢查傳入字典的每一個value的長度,如果大于2,那么僅保留前兩個長度的內容,并將新內容返回給調用者。

用到:dict.keys(),dict.values(),dict.items()--K,V

dic = {"k1": "v1v1", "k2": [11,22,33,44]} PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def check(i):
for k,v in i.items():
if len(v) > 2:
i[k] = v[:2]
print(i)

check(dic)

答案用的return i和else continue有什么作用?不用輸出也是一樣

?

解釋閉包的概念

不懂,回去再看一遍

?

寫函數,返回一個撲克牌列表,里面有52項,每一項是一個元組

例如:[(‘紅心’,2),(‘草花’,2), …(‘黑桃A’)]

def poke():
color = ['紅心','草花','紅桃','黑桃']
n = 1
l = []
while n < 14:
for i in color:
l.append((i, n))
  n += 1
print(l)

poke()

然后再加上if對i的判斷
def poke():
i =[]
color = ['紅心','草花','紅桃','黑桃']
num = [i for i in range(2,11)]
num_big = ['J','Q','K','A']
num.extend(num_big) # 1-13數字集合到一起
k = []
for i in num:
for l in color:
k.append((l,i)) # 實際和99乘法一樣
print(k)


poke()


這種就沒事 ?

2寫函數,傳入n個數,返回字典{‘max’:最大值,’min’:最小值}

例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}

3寫函數,專門計算圖形的面積

其中嵌套函數,計算圓的面積,正方形的面積和長方形的面積

調用函數area(‘圓形’,圓半徑) 返回圓的面積

調用函數area(‘正方形’,邊長) 返回正方形的面積

調用函數area(‘長方形’,長,寬) 返回長方形的面積

def area(): def 計算長方形面積(): pass def 計算正方形面積(): pass def 計算圓形面積(): pass

def area(typ, *args):
def recangle(x,y):
num = x*y
return num
def square(x):
num = x*x
return num
def circular(x):
num = x
return num
if typ == '長方形':
return recangle(*args)
elif typ == '正方形':
return square(*args)
elif typ == '圓形':
return circular(*args)



print(area('長方形',5,6))

return函數的應用,return是指返回函數的執行結果。 import math ,pi表示3.14

寫函數,傳入一個參數n,返回n的階乘(用for循環,不斷相乘)

例如:cal(7) 計算7*6*5*4*3*2*1

def cal1(x):
if x > 0:
return x*cal1(x-1)

print(cal1(2))
報錯
TypeError: unsupported operand type(s) for *: 'int' and 'NoneType'

為什么cal1(x-1)沒有識別到類型?

編寫裝飾器,為多個函數加上認證的功能(用戶的賬號密碼來源于文件),要求登錄成功一次,后續的函數都無需再輸入用戶名和密碼

寫過,不寫了,用2層函數返回內存地址,最里面執行原來函數和判斷。知識:為什么要做2層返回?怎么把文件里的賬號密碼轉出來進行判斷?

?

1生成器和迭代器的區別?

生成器gennerater有2種生成方式1.列表生成式2.函數yield,一邊循環一邊計算的機制

迭代器iterator--可以被next()函數調用,

生成器有幾種方式獲取value?

1.列表生成式2.函數yield3.()

通過生成器寫一個日志調用方法, 支持以下功能

根據指令向屏幕輸出日志

根據指令向文件輸出日志

根據指令同時向文件&屏幕輸出日志

以上日志格式如下

2017-10-19 22:07:38 [1] test log db backup 3 2017-10-19 22:07:40 [2] user alex login success #注意:其中[1],[2]是指自日志方法第幾次調用,每調用一次輸出一條日志

代碼結構如下

def logger(filename,channel='file'):"""日志方法:param filename: log filename:param channel: 輸出的目的地,屏幕(terminal),文件(file),屏幕+文件(both):return:"""...your code...#調用log_obj = logger(filename="web.log",channel='both')log_obj.__next__()log_obj.send('user alex login success')
def log_obj():
print('log')
yield x

def log_obj2():
info = 'log'
f = open('file','a', encoding='UTF-8')
f.write('\n{}'.format(info))
f.close()

def log obj3()
def log obj():
def log_obj2()
log_obj1(x)
log_obj2(x)

最后一題不明白什么意思,同時輸出的話,把函數寫到里面執行不就可以了?

內置函數

用map來處理字符串列表,把列表中所有人都變成sb,比方alex_sb

name=['alex','wupeiqi','yuanhao','nezha']

name=['alex','wupeiqi','yuanhao','nezha']

name = map(lambda x:x+'_SB',name)

print(list(name))

用filter函數處理數字列表,將列表中所有的偶數篩選出來

num = [1,3,5,6,7,8]

num = [1,3,5,6,7,8]
def judge(n):
return n % 2 == 0
new_num = filter(judge,num)
print(list(new_num))

如下,每個小字典的name對應股票名字,shares對應多少股,price對應股票的價格

portfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1}, {'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'FB', 'shares': 200, 'price': 21.09}, {'name': 'HPQ', 'shares': 35, 'price': 31.75}, {'name': 'YHOO', 'shares': 45, 'price': 16.35}, {'name': 'ACME', 'shares': 75, 'price': 115.65} ]

計算購買每支股票的總價

用filter過濾出,單價大于100的股票有哪些

?def ss(n):
sum1 = n['price']
return sum1 > 100
newlis = filter(ss,p)
for i in newlis:
print(i['name'])

轉載于:https://www.cnblogs.com/jackfree/p/9640631.html

總結

以上是生活随笔為你收集整理的函数、装饰器、迭代器、内置方法总练习题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女性生殖扒开酷刑vk | 亚洲AV午夜福利精品一级无码 | 青青草原成人网 | 在线免费观看黄视频 | 精品人伦一区二区三区蜜桃网站 | www.亚洲激情| 亚洲男人天堂影院 | 中文字幕亚洲欧美 | 亚洲特黄视频 | 日韩一级黄色录像 | 国产99视频在线观看 | 亚洲欧美日韩国产一区 | 久久久久国产精品一区 | 日本a区 | 黄色成人av | 黄色小说在线视频 | 我们的2018中文免费看 | 国产伦精品一区二区 | 亚洲天堂8 | 日韩精品――中文字幕 | 欧美三个黑人玩3p | 国产怡红院 | 色爽爽一区二区三区 | 欧美成人看片黄a免费看 | 麻豆传媒网站入口 | 午夜av影院 | 国产成人久久精品77777综合 | 国产第一亚洲 | 污网站免费在线观看 | 天堂二区| 嫩草影院在线免费观看 | 国产成人福利 | 少妇熟女高潮流白浆 | 久久精品久久久 | 精品黑人一区二区三区久久 | 五月天婷婷在线观看 | 91网站免费入口 | 9久精品| 亚洲精品av中文字幕在线在线 | 亚洲女人被黑人巨大进入 | 欧美福利在线观看 | 亚洲午夜无码久久久久 | 成人性生交大片免费看vrv66 | 国产经典一区二区三区 | av在线.com | 国产午夜无码精品免费看奶水 | 四虎影视库| 久久国产99| www黄色大片 | 国产主播精品 | 欧美,日韩,国产在线 | 日韩免费观看 | av成人精品 | 欧洲女性下面有没有毛发 | 一区二区亚洲视频 | 亚洲欧美日本一区二区三区 | 欧美少妇xxx | 色综合久久久久 | 欧美一区二区三区视频在线观看 | 国产黑丝精品 | 777米奇影视第四色 五月丁香久久婷婷 | 91视频久久久久 | 免费jizz | 狠狠爱成人 | 肉体粗喘娇吟国产91 | 国产精品美女一区 | 欧美综合图区 | 日本一本在线 | 久久精品国产亚洲AV成人雅虎 | av观看网站 | 国产精品欧美久久久久天天影视 | 日本三级久久久 | 性爱视频在线免费 | 欧美国产一区二区 | 精品亚洲aⅴ无码一区二区三区 | 国产精品成人久久 | 成人黄色片免费 | 日韩bbw | 国产精品日韩一区二区三区 | 国产精品久久一 | 理论片琪琪午夜电影 | 在线观看亚洲av每日更新 | 免费人妻精品一区二区三区 | 日韩视频一区二区三区在线播放免费观看 | 日韩精品一区二区在线观看 | 欧美成人做爰猛烈床戏 | 91老师国产黑色丝袜在线 | 99热这里只有精品7 青青草社区 | 国产精品永久免费观看 | 一区二区欧美在线观看 | 国产日韩精品一区二区三区 | 19禁大尺度做爰无遮挡电影 | 波多野结衣一区二区三区高清 | 久久久久性 | 日本japanese极品少妇 | 男人天堂v | 日本一二三区在线视频 | 综合狠狠开心 | 麻豆changesxxx国产 |