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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python函数16道入门练习题

發(fā)布時(shí)間:2025/3/20 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python函数16道入门练习题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.寫函數(shù),將傳入的列表或元祖對(duì)象的奇數(shù)位索引對(duì)應(yīng)的元素,
eg:13位置,作為新列表返回給調(diào)用者

def func(lst):# 要封裝一個(gè)list()函數(shù),因?yàn)轭}目要求返回一個(gè)列表return list(lst[1::2]) print(func([1,2,3,4,5,6,7,8,9,]))

2.寫函數(shù),判斷用戶傳入的對(duì)象(string,list,tuple)長(zhǎng)度是否大于5

重點(diǎn):如何減少代碼量

def func(s):# return可以返回一個(gè)功能性語句,return len(s) > 5 print(func("123456"))

3.寫函數(shù),計(jì)算傳入的string中,數(shù)字,字母,空格以及其它內(nèi)容的個(gè)數(shù),并返回結(jié)果

重點(diǎn):復(fù)習(xí)isdigit(),isalpha(),isspace(判斷是否是空白字符,\n,\t,空格等)

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def func(s=''):num=0alpha=0space=0others=0for c in s:if c.isdigit():num += 1elif c.isalpha():alpha +=1elif c == ' ':space += 1else:others += 1return {'num':num,'alpha':alpha,'space':space,'others':others} print(func(" 23 4 jjjsds32 /.,;[ e3e3e32e23e3dj9"))

4.寫函數(shù),接收兩個(gè)數(shù)字參數(shù),返回較大的那個(gè)數(shù)字

重點(diǎn):三目運(yùn)算,學(xué)會(huì)把簡(jiǎn)單的功能代碼放到return后面

def func(a,b):return a if a > b else b print(func(10,15))

5.寫函數(shù),函數(shù)接收的4個(gè)參數(shù)分別是:姓名,性別(默認(rèn)為男),年齡,學(xué)歷

用戶通過input輸入這4個(gè)內(nèi)容(支持持續(xù)輸入,Q或q退出),并傳遞給函數(shù)

函數(shù)接收到這些內(nèi)容,將其追加到student_msg文件中

重點(diǎn):復(fù)習(xí)文件操作

def func(name,age,edu,gender='男'):f = open('student_msg',mode='a',encoding='utf-8')f.write(name+'_'+gender+'_'+age+'_'+edu+'\n')f.flush()f.close() while 1:NAME=input("請(qǐng)輸入你的名字:")GENDER=input("請(qǐng)輸入你的性別:")AGE=input("請(qǐng)輸入你的年齡:")EDU=input("請(qǐng)輸入你的學(xué)歷:")if GENDER == '':func(NAME,AGE,EDU)else:func(NAME,AGE,EDU,GENDER)content = input("錄入完畢,是否還要繼續(xù)輸入(輸入q就退出):")if content.upper() == 'Q':break

6.寫函數(shù),用戶傳入要修改的文件名,與要修改的內(nèi)容.執(zhí)行函數(shù),完成文件的批量修改操作

重點(diǎn):復(fù)習(xí)文件的修改

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' import os def modify_file(fileName,oldContent,newContent):with open(fileName,mode="r+",encoding="utf-8") as f1,\open(fileName+"_副本",mode="w+",encoding="utf-8") as f2:for line in f1:line = line.replace(oldContent,newContent)f2.write(line)os.remove(fileName)os.rename(fileName+"_副本",fileName) modify_file("student_msg","1","a")

7.(難),寫函數(shù),具備注冊(cè)(要有去重的功能),與3次登錄的功能

重點(diǎn):先寫注冊(cè),把內(nèi)容寫到文件中去,核心是寫去重.再寫登錄,可采用賬號(hào)加密碼雙重驗(yàn)證的格式

# 先寫注冊(cè)函數(shù) def regist():uname=input("請(qǐng)輸入用戶名:")f = open("userInfo",mode="r",encoding="utf-8")# 核心就是去重,去重肯定是一行一行去匹配的for line in f:un = line.strip().split("_")[0]if uname == un:print("用戶名已存在,請(qǐng)重新輸入")return# 易錯(cuò)點(diǎn),else應(yīng)該與for平級(jí),因?yàn)槭钱?dāng)for執(zhí)行完了,還沒找到重名,才去執(zhí)行else的else:print("用戶名可用!")upwd=input("請(qǐng)輸入密碼:")f = open("userInfo",mode="a",encoding="utf-8")f.write(uname+"_"+upwd+"\n")f.flush()f.close()# 再寫登錄函數(shù) def login():count = 1while count <= 3:uname = input(f"請(qǐng)輸入登錄的用戶名(還有{4-count}次機(jī)會(huì)):")upwd = input("請(qǐng)輸入登錄的密碼:")f = open("userInfo",mode="r",encoding="utf-8")for line in f:name, pwd = line.strip().split("_")# if有多重方式可寫,最好的還是同時(shí)驗(yàn)證賬號(hào)和密碼if uname == name and upwd == pwd:print("登錄成功")return True # 對(duì)于正常的操作,可以返回True,方便后面調(diào)用,eg: if login(): ...else:print("登錄失敗,用戶名或密碼錯(cuò)誤")count += 1print("次數(shù)已用完")return False# regist() # regist() # regist() login()

8.寫函數(shù),接收n個(gè)數(shù)字,返回這些數(shù)字的和(動(dòng)態(tài)傳參)

重點(diǎn):學(xué)會(huì)用*args來接收n個(gè)位置參數(shù)

def func(*args):sum = 0for el in args:sum += elreturn sum print(func(1,2,3,4,5,6,4,4,3))

9.理解打印出來的a,b,c分別是什么,為什么?

重點(diǎn):理解return的默認(rèn)返回值None,理解函數(shù)里面收到的a,b是沒有用上的

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' a,b = 10,20 def func(a,b):a, b = 3,5print(a,b) c=func(b,a) print(c) print(a,b)

10.在實(shí)參中傳入多個(gè)可迭代對(duì)象(要有string,list,tuple,set,dict),將每個(gè)對(duì)象的每個(gè)元素都加到args或kwargs里

重點(diǎn):利用實(shí)參中的*和**來進(jìn)行打散,**用于dict

def func(*args,**kwargs):print(args,kwargs) s="hello" func(*[1,2,3],*(3,3,),*{"name","height"},**{"name":"jiang","age":18})

11.寫函數(shù),把傳過來的列表中的每一個(gè)元素都用"_"拼接,并返回

例如,傳過來[1,“哈哈”,2,“哦”],返回"1_哈哈_2_哦"

重點(diǎn):join()只能處理字符串,所以要結(jié)合for循環(huán)才行

def func(lst):sum=""for el in lst:sum += str(el)+"_"return sum[:-1] # 要去掉最后一個(gè)_下劃線 print(func([1,"哈哈",2,"哦"]))

12.寫函數(shù),傳入一個(gè)數(shù)字,返回這個(gè)數(shù)的階乘

重點(diǎn):累乘,學(xué)會(huì)李永range函數(shù)的步長(zhǎng)

def func(num):sum=1for i in range(num,0,-1):sum *= ireturn sum print(func(10))

13.寫函數(shù),返回一個(gè)撲克牌列表,里面有52項(xiàng),每一項(xiàng)都是一個(gè)tuple

例如:[(“紅心”,“2”),(“梅花”,“2”)…(“方塊”,“A”)]

重點(diǎn):笛卡爾積的代碼要記一記

def func():lst=[]style = ["紅心","梅花","方塊","黑桃"]number = ["A","1","2","3","4","5","6","7","8","9","10","j","q","k"]for i in style:for j in number:lst.append((i,j))return lst print(func())

14.使用2中以上的方法,讓inner函數(shù)運(yùn)行

重點(diǎn):return是可以返回函數(shù),或變量,也就是內(nèi)存地址的

# 第1種方法 def func():def inner():print("666")inner() func() # 第2種方法 def func():def inner():print("666")print("in",inner) # 與下面的out對(duì)比,可發(fā)現(xiàn),地址是一樣的,說明內(nèi)存空間是可以返回的return inner i = func() i() print("out",i) # 第3種方法 def func():def inner():print("666")return inner func()()

15.用代碼寫一個(gè)99乘法表

重點(diǎn):笛卡爾積,確定外層循環(huán),再確定內(nèi)層循環(huán),最后去掉換行符

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' for i in range(1,10):for j in range(1,i+1):print("%s * %s = %s" %(i,j,i*j),end="\t")print()

16.解釋為什么list1和list3結(jié)果是一樣

重點(diǎn):因?yàn)楹瘮?shù)執(zhí)行在最前面,意味著形參里面的list在最開始就創(chuàng)建了

而當(dāng)再次執(zhí)行函數(shù)的時(shí)候,并不會(huì)重新開辟內(nèi)存,仍然會(huì)使用上次開辟的那一塊

def fn(val,list=[]):print(id(list))list.append(val)return list list1=fn(3) list2=fn(10,list=[]) list3=fn("a") print(list1) # [3, 'a'] print(list2) # [10] print(list3) # [3, 'a'] print(id(list1)) #list1,list3,以及函數(shù)里面的list的id是一樣的 print(id(list2)) print(id(list3))

總結(jié)

以上是生活随笔為你收集整理的Python函数16道入门练习题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。