版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1122(封面)技工院校服務(wù)機(jī)器人應(yīng)用與維護(hù)專業(yè)教材(中/高級(jí)技能層級(jí))Python程序設(shè)計(jì)習(xí)題冊(cè)答案中國(guó)勞動(dòng)社會(huì)保障出版社(扉頁(yè))技工院校服務(wù)機(jī)器人應(yīng)用與維護(hù)專業(yè)教材(中/高級(jí)技能層級(jí))Python程序設(shè)計(jì)習(xí)題冊(cè)答案人力資源和社會(huì)保障部教材辦公室組織編寫中國(guó)勞動(dòng)社會(huì)保障出版社項(xiàng)目一Python基礎(chǔ)知識(shí)及環(huán)境搭建任務(wù)1認(rèn)識(shí)Python一、填空題二、判斷題1.√2.×3.√4.×5.×三、名詞解釋1.機(jī)器語(yǔ)言是使用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集2.四、簡(jiǎn)答題Python2.3.pythonpythonC/C五、綜合應(yīng)用題1.pythonpythonpythonpython任務(wù)2安裝與配置Python開發(fā)環(huán)境一、填空題pipIDEPipinstallNumpy二、判斷題1.×2.√3.×4.√5.√三、名詞解釋1.代碼編輯器是程序員用于編寫計(jì)算機(jī)程序的文本編輯器,可以被看作是程序員和計(jì)PAGEPAGE11PAGEPAGE10的一2.PythonIDEPyCharmVisualStudioCodeJupyterNotebookIDE四、簡(jiǎn)答題IDE2.可以使用以下命令來(lái)使用pip安裝Python包:pipinstallpackage_name,其中package_name是要安裝的包的名稱。3.IDE五、綜合應(yīng)用題Windowspython”(),python>>>Python環(huán)境變PythonpythonPython任務(wù)3安裝與使用代碼編輯器(VSCode)一、填空題.exe編輯調(diào)試一鍵注釋拼寫檢查縮進(jìn)檢查二、判斷題1.√2.×3.×4.√5.×三、名詞解釋VSCode四、簡(jiǎn)答題VSCode2.VSCode(。3.常用的PythonIDE包括PyCharm、VisualStudioCode、和JupyterNotebook等。五、綜合應(yīng)用題WindowsLinuxVSCode(VisualStudioCode)LinuxLinux3LinuxWindows不區(qū)分;4、LinuxWindowsIDEVSCode、Sublime、。任務(wù)4運(yùn)行第一個(gè)Python程序一、填空題.py二、判斷題1.×2.×3.×4.√5.×三、名詞解釋PythonPythonPythonPythonPythonPython四、簡(jiǎn)答題1.在Python中,您可以通過(guò)指定變量名并使用等號(hào)(=)來(lái)聲明一個(gè)變量。例如,my_variable=42將創(chuàng)建一個(gè)名為my_variable的變量,其值為42。Python在交互式運(yùn)行方式下,程序會(huì)對(duì)每條輸入語(yǔ)句進(jìn)行即時(shí)的運(yùn)行。該運(yùn)行方式的優(yōu).py.py五、綜合應(yīng)用題1.Pythonpython.pyPython2.可以使用print()函數(shù)來(lái)輸出文本到屏幕。例如,print("Hello,World!")將在屏幕上顯示"Hello,World!"。項(xiàng)目二基本數(shù)據(jù)類型1Python一、填空題數(shù)據(jù)賦值下畫線不同二、判斷題1.×2.×3.×4.√三、名詞解釋變量是用于存儲(chǔ)數(shù)據(jù)的容器,可以存儲(chǔ)不同類型的數(shù)據(jù),如整數(shù)、字符串、列表等。在Python中,變量的類型是動(dòng)態(tài)的,這意味著變量可以根據(jù)賦給它的值自動(dòng)確定其類型。四、簡(jiǎn)答題1.((3.PythonPython五、綜合應(yīng)用題1.a=5b=10sum_ab=a+bprint(sum_ab)2.x=7y=13#交換變量的值temp=xx=yy=tempprint("x=",x)print("y=",y)2Python一、填空題Input控制臺(tái) 終端輸入 二、判斷題1.×2.×3.√4.√5.√三、名詞解釋Python中的交互功能主要指的是程序能夠與用戶進(jìn)行互動(dòng)的能力。這通常通過(guò)輸入(Input)和輸出(Output)操作來(lái)實(shí)現(xiàn)。。四、簡(jiǎn)答題input()name=input("請(qǐng)輸入您的名字:")print("您的名字是:"+name)print()函數(shù)用于將文本或數(shù)據(jù)輸出到控制臺(tái)。例如,以下是輸出一條簡(jiǎn)單的問(wèn)候語(yǔ)print("Hello,World!")PythonPythoninput()(Pythonprint()五、綜合應(yīng)用題1.m=int(input("請(qǐng)輸入第一個(gè)整數(shù):"))n=int(input("請(qǐng)輸入第二個(gè)整數(shù):"))result=m+nprint("兩數(shù)求和的值為:",result)2.text=input("請(qǐng)輸入一個(gè)字符串:")length=len(text)print("字符串的長(zhǎng)度為:",length)3Python一、填空題'aabb'splitfind4. 'a,b,c'二、判斷題1.√2.×3.√4.×三、名詞解釋1.Python2.Pythonjoin()World!"。四、簡(jiǎn)答題split()Python(%)format()方如%s%d等f(wàn)ormat()五、綜合應(yīng)用題#str1=input("請(qǐng)輸入第一個(gè)字符串:")#獲取用戶輸入的第二個(gè)字符串str2=input("請(qǐng)輸入第二個(gè)字符串:")#拼接兩個(gè)字符串result=str1+str2#輸出拼接后的字符串print("拼接后的字符串為:",result)#defprocess_string(input_str):#截取長(zhǎng)度為5的子串substring=input_str[:5]print(f"子串:{substring}")#分割子串split_substrings=substring.split(',')print(f"子串分割后:{split_substrings}")#統(tǒng)計(jì)字母和數(shù)字的數(shù)量letters_count=sum(1forcharinsplit_substringsifchar.isalpha())digits_count=sum(1forcharinsplit_substringsifchar.isdigit())print(f"字母數(shù)量:{letters_count}")print(f"數(shù)字?jǐn)?shù)量:{digits_count}")#測(cè)試函數(shù)input_str="abcdefghijklmnop"process_string(input_str)項(xiàng)目三表達(dá)式與運(yùn)算符任務(wù)運(yùn)算符綜合應(yīng)用一、填空題1. //2. **3. ==4. 10賦值二、判斷題1.×2.√3.√4.×5.×三、名詞解釋1.Python中,andor和notand2.Python算符包括左移和>>(四、簡(jiǎn)答題and用于在多個(gè)條件都為真時(shí)整個(gè)表達(dá)式為真。例如,x>5andy<10表示只有x5y10or用于在多個(gè)條件中至少有一個(gè)為真時(shí)整個(gè)表達(dá)式為真。例如,x<0orx>10表示只要x小于0或者大于10,整個(gè)條件為真。notnot(x5)x5時(shí)條>>右移位運(yùn)算符將一個(gè)數(shù)的二進(jìn)制表示向右移動(dòng)指定的位數(shù),左側(cè)空出的位用原(。五、綜合應(yīng)用題1.a=5b=10a+=b#aa+ba15,b#b=bab20,a#aaba5,bba #bbab10,a2.#獲取用戶輸入的兩個(gè)整數(shù)num1=int(input("請(qǐng)輸入第一個(gè)整數(shù):"))num2=int(input("請(qǐng)輸入第二個(gè)整數(shù):"))#使用復(fù)合賦值運(yùn)算符“+=”將兩個(gè)數(shù)相加,并將結(jié)果賦值給變量sumsum=num1+num2#輸出結(jié)果print("兩個(gè)數(shù)的和為:",sum)項(xiàng)目四組合數(shù)據(jù)類型任務(wù)1序列的使用一、填空題列表、元組、字典、集合、字符串、字節(jié)數(shù)據(jù)字典訪問(wèn)序列中的元素檢查某元素是否為序列的成員len、max、min二、判斷題1.×2.√3.√三、名詞解釋python切片操作是訪問(wèn)序列元素的一種方法,它可以訪問(wèn)一定范圍內(nèi)的元素,通過(guò)切片四、簡(jiǎn)答題1.通過(guò)索引、切片操作可以訪問(wèn)序列中的元素。2.Python[start:stop:step]startstop),step3.通過(guò)內(nèi)置函數(shù)sun()能夠計(jì)算序列中的元素和;通過(guò)內(nèi)置函數(shù)sorted()能夠?qū)π蛄羞M(jìn)行排序。五、綜合應(yīng)用題1.Str1="python"Str2="編程語(yǔ)言"Str3=Str1*3+Str2print(Str3)2.Str1="python"Str2=Str1[1:5:1]print(Str2)print('p'inStr2)任務(wù)2列表的使用一、填空題有序元組appendlist二、判斷題1.×2.√3.×4.×三、名詞解釋delpython四、簡(jiǎn)答題extend()delpop()(list)remove()(list)clear()五、綜合應(yīng)用題1.list1=["HELLO"]print(list1)list1.append("WORLD")print(list1)list1.append(list1[0]+list1[1])print(list1)2.list1=[2**(x+1)forxinrange(10)]print(list1)任務(wù)3元組的使用一、填空題不可變索引 切片逗號(hào)二、判斷題1.×2.√3.√4.×三、名詞解釋不可變性指的是元組一旦創(chuàng)建就不能被修改,包括不能添加、刪除或修改元素的值。四、簡(jiǎn)答題1.元組適用于表示不可變的數(shù)據(jù)集合,如坐標(biāo)點(diǎn)(x,y)、RGB顏色(r,g,b)等。列表是一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。在創(chuàng)建一個(gè)列表后,用戶可以訪問(wèn)、修改、添加或刪除列表中的項(xiàng)目,即列表是可變的數(shù)據(jù)類型。2.python提供了兩種創(chuàng)建元組的方法,1.使用小括號(hào)“()”創(chuàng)建元組;2.使用tuple()函數(shù)創(chuàng)建元組。3.使用索引進(jìn)行切片,例如subset=my_tuple[1:4]獲取索引1到3的子元組。五、綜合應(yīng)用題1.tup1=(3,1,2,6,5,4) tup2=[] fornumintup1: ifnum%2==0: tup2.append(num) print(tup2)2.#創(chuàng)建一個(gè)名為“學(xué)生”的元組,其中包含學(xué)生的姓名、年齡、性別和成績(jī)等信息students=("張三",18,"男",90),("李四",20,"女",85),("王五",19,"男",92)#向“學(xué)生”元組中添加新的學(xué)生信息students=students+(("趙六",21,"女",88),("錢七",17,"男",95))#遍歷“學(xué)生”元組,并輸出每個(gè)學(xué)生的姓名、年齡、性別和成績(jī)forstudentinstudents:name,age,gender,score=studentprint(f"姓名:{name},年齡:{age},性別:{gender},成績(jī):{score}")#根據(jù)指定的姓名,訪問(wèn)并輸出對(duì)應(yīng)學(xué)生的成績(jī)name="李四"forstudentinstudents:ifstudent[0]==name:print(f"{name}的成績(jī)是:{student[3]}")break任務(wù)4字典的使用一、填空題鍵索引getpop不可變二、判斷題1.×2.√3.×三、名詞解釋1.字典是一種無(wú)序的數(shù)據(jù)集合,以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù),通過(guò)鍵來(lái)訪問(wèn)值。2.在字典中,鍵是唯一的、不可變的,用于標(biāo)識(shí)值的標(biāo)簽;值是與鍵相關(guān)聯(lián)的數(shù)據(jù)。四、簡(jiǎn)答題1.2ny'iny_ct3.在python中,可以使用字典類型提供的fromkeys()方法創(chuàng)建帶有默認(rèn)值的字典。五、綜合應(yīng)用題1.#創(chuàng)建字典students={'小明':85,'小紅':90,'小剛':78}#輸出每個(gè)學(xué)生的信息forname,numinstudents.items():print(f"{name}:{num}")#添加一個(gè)學(xué)生信息students['小華']=92#修改一個(gè)學(xué)生的信息students['小明']=90#students.items():print(f"{name}:{num}")2.library={'書1':{'作者':'張三','借閱狀態(tài)':'在庫(kù)'},'書2':{'作者':'李四','借閱狀態(tài)':'在庫(kù)'},'書3':{'作者':'王五','借閱狀態(tài)':'已借出'}}forbook,numinlibrary.items():print(f"書名:{book},作者:{num['作者']},借閱狀態(tài):{num['借閱狀態(tài)']}")library['書4']={'作者':'趙六','借閱狀態(tài)':'在庫(kù)'}library['書2']['借閱狀態(tài)']='已借出'dellibrary['書3']if'書3'inlibrary:print(f"被刪除的書的書名是:書3,作者是:{library['書3']['作者']}")else:
print("沒有找到被刪除的圖書")forbook,numinlibrary.items():print(f"書名:{book},作者:{num['作者']},借閱狀態(tài):{num['借閱狀態(tài)']}")任務(wù)5集合的使用一、填空題唯一的add列表remove二、判斷題1.×2.×3.√4.√5.×三、名詞解釋1.2.交集是指兩個(gè)集合中共同存在的元素組成的集合,可以使用intersection()方法得到。四、簡(jiǎn)答題1.2.使用大括號(hào)“{}”創(chuàng)建集合、使用set函數(shù)創(chuàng)建集合。五、綜合應(yīng)用題1.#步驟1:創(chuàng)建集合AA={1,2,3,4,5}print(f"集合A:{A}")#2A6A.add(6)print(f"添加元素6后的集合A:{A}")#3A4A.remove(4)print(f"刪除元素4后的集合A:{A}")#步驟4:找出集合A與集合[2,3,5,6]的交集intersection=A&set([2,3,5,6])print(f"集合A與集合[2,3,5,6]的交集:{intersection}")#步驟5:計(jì)算集合A與集合[2,3,5,6]的并集union=A|set([2,3,5,6])print(f"集合A與集合[2,3,5,6]的并集:{union}")2.#驟1:創(chuàng)集合A集合BA=set() #績(jī)格生集合Bset() #forstudentin['生1','生2',學(xué)生3','生4',生5',學(xué)生6']: #假些是生名字score=int(input(f"入學(xué){student}分:")) #入生分?jǐn)?shù)ifscore>=60:add(student) #Aelse:add(student) #Bprint(f"集合A(及格學(xué)生):{A}")print(f"集合B(不及格學(xué)生):{B}")#驟2:建合C集合DC=set() #秀學(xué)合Dset() #forstudentinA:score=int(input(f"新輸學(xué){student}數(shù):")) #新入的分?jǐn)?shù)ifscore>=80:add(student) #Celif70<=score80:add(student) #Dprint(f"集合C(優(yōu)秀學(xué)生):{C}")print(f"集合D(良好學(xué)生):{D}")#步驟3:計(jì)算集合C和集合D的對(duì)稱差集,找出兩個(gè)小組都不包括的學(xué)生symmetric_difference=C^D #print(f"集合C和集合D的對(duì)稱差集(兩個(gè)小組都不包括的學(xué)生):{symmetric_difference}")。項(xiàng)目五Python流程控制任務(wù)1使用if…else語(yǔ)句實(shí)現(xiàn)模擬用戶登錄一、填空題input()if-elsebreak語(yǔ)句4. ==字典continue某條件二、判斷題1.√2.×3.√4×三、名詞解釋if-elseifelse2pass是python中的關(guān)鍵字,用來(lái)讓解釋器跳過(guò)此處,什么都不做。四、簡(jiǎn)答題1.if-elsepythonassertif判斷某個(gè)表達(dá)式的值,如果值為真,則程序可以繼續(xù)往下執(zhí)行;反之python解釋器會(huì)報(bào)AssertionError五、綜合應(yīng)用題#apple_price=6banana_price=4milk_price=8orange_price=5cola_price=3bread_price=10#小明和小華所購(gòu)商品的數(shù)量num_apple=2num_banana=1num_milk=2num_orange=3num_cola=2num_bread=1#計(jì)算總價(jià)total_price=num_apple*apple_price+num_banana*banana_price+num_milk*milk_price+num_orange*orange_price+num_cola*cola_price+num_bread*bread_price#根據(jù)總價(jià)輸出不同的提示iftotal_price>100:print("您的總價(jià)超過(guò)了100元,請(qǐng)注意控制花費(fèi)。")eliftotal_price>=50:print("您的總價(jià)在50-100元之間,購(gòu)物比較經(jīng)濟(jì)。")eliftotal_price>0:print("您的總價(jià)在0-50元之間,購(gòu)物比較節(jié)約。")else:
print("您的購(gòu)物車是空的,請(qǐng)?zhí)砑右恍┥唐贰?)2.defrecommend_tour(tourist_needs):iftourist_needs=="參觀著名景點(diǎn)和享受當(dāng)?shù)孛朗?:return"線路A","參觀著名景點(diǎn)和享受當(dāng)?shù)孛朗?eliftourist_needs=="體驗(yàn)當(dāng)?shù)匚幕团c當(dāng)?shù)厝私涣?:return"線路B","體驗(yàn)當(dāng)?shù)匚幕团c當(dāng)?shù)厝私涣?eliftourist_needs=="自由行和探險(xiǎn)":return"線路C","自由行和探險(xiǎn)"eliftourist_needs":return"AB","人交流"eliftourist_needs=="對(duì)價(jià)格敏感":return"線路C","價(jià)格最便宜"eliftourist_needs=="不確定自己的需求":else:
return"線路B或線路C","不確定需求"return"無(wú)法推薦","無(wú)法識(shí)別游客需求"#測(cè)試代碼print(recommend_tour("觀著景和受地食")) #輸:('路A',參觀名點(diǎn)和享當(dāng)美食')print(recommend_tour("驗(yàn)當(dāng)文和當(dāng)人流")) #輸:('路B',體驗(yàn)地化和與地交流')print(recommend_tour("由行探險(xiǎn)")) #輸:('線路C','自行探險(xiǎn)')print(recommend_tour("參觀著名景點(diǎn)、享受當(dāng)?shù)孛朗?、體驗(yàn)當(dāng)?shù)匚幕团c當(dāng)?shù)厝私涣?))#出:('路A或路B','參觀名點(diǎn)享當(dāng)美食體當(dāng)文和當(dāng)?shù)亟涣?)print(recommend_tour("價(jià)格感")) #:('路C','格便宜')print(recommend_tour("確定己需求")) #出:('路B或路C','確定求')print(recommend_tour("他需求")) #輸:('無(wú)推薦','法別客求')。任務(wù)2使用while循環(huán)語(yǔ)句實(shí)現(xiàn)數(shù)值的累加一、填空題1. +=break某條件二、判斷題1.√ 2.×3.√4.√三、名詞解釋while2.四、簡(jiǎn)答題1.在使用while循環(huán)時(shí),循環(huán)條件用于覺得循環(huán)是否結(jié)束跳出,當(dāng)循環(huán)條件為真時(shí)while循環(huán)持續(xù)運(yùn)行,當(dāng)循環(huán)條件為假時(shí)程序跳出循環(huán)結(jié)構(gòu)。2.break語(yǔ)句3.pythonwhileifwhile五、綜合應(yīng)用題1.n=int(input("輸一正數(shù)n:"))sum=0 #始累為0i=1 #1whilei<=n:sumi #i1 #1print("1到{}之間所有整數(shù)的和為:{}".format(n,sum))2.n=int(input("輸一正數(shù)n:"))sum=0 #始累為0i=1 #1whilei<=n:sumi #i1 #1ifn%20: #nquotient=n//2 #計(jì)算商remainder=n2 #print("1到{}之間所有數(shù)字的總和為:{}".format(n,sum))print("{}除以2的商為:{},余數(shù)為:{}".format(n,quotient,remainder))else:
print("1到{}之間所有數(shù)字的總和為:{}".format(n,sum))任務(wù)3使用for循環(huán)語(yǔ)句實(shí)現(xiàn)列表的生成一、填空題二、判斷題1.√2.√3.×4.√三、名詞解釋1.創(chuàng)建的列表的名稱。2.列表內(nèi)元素的表達(dá)式,通常是對(duì)原序列中的元素進(jìn)行某些操作的表達(dá)式。四、簡(jiǎn)答題listname=[f(var)variniterableifcondition]varifcondition3.使用next()的代碼示例如下。a=(xforxinrange(5))print(next(a),next(a),next(a),next(a),next(a))五、綜合應(yīng)用題#獲取用戶輸入的字符串input_string=input("請(qǐng)輸入一個(gè)字符串:")#創(chuàng)建一個(gè)字典來(lái)存儲(chǔ)每個(gè)字符及其出現(xiàn)次數(shù)char_count={}#使用for循環(huán)遍歷字符串中的每個(gè)字符forcharininput_string:#如果字符已經(jīng)在字典中,則增加其出現(xiàn)次數(shù)ifcharinchar_count:char_count[char]+=1#如果字符不在字典中,則將其添加到字典中并設(shè)置出現(xiàn)次數(shù)為1else:char_count[char]=1#按照ASCII碼值從小到大排序輸出結(jié)果forcharinsorted(char_count.keys()):ascii_valueord(char) #ASCII碼值countchar_count[char] #print("ASCII碼值:{},字符:{},出現(xiàn)次數(shù):{}".format(ascii_value,char,count))項(xiàng)目六函數(shù)和lambda表達(dá)式任務(wù)1認(rèn)識(shí)Python函數(shù)一、填空題del引用(地址)傳遞值傳遞空值NoneType二、判斷題1.× 2.×3.×三、名詞解釋1.函數(shù)是一段可重復(fù)使用的代碼塊,接受輸入?yún)?shù)并返回結(jié)果。2.函數(shù)參數(shù)值傳遞是指將實(shí)際參數(shù)值的副本(復(fù)制品)傳入函數(shù)。四、簡(jiǎn)答題(([]=([])。五、綜合應(yīng)用題1.defsquare_elements(input_list):#判斷輸入列表是否為空ifnotinput_list:return[]#初始化結(jié)果列表result=[]#使用循環(huán)處理輸入列表中的每個(gè)元素fornumininput_list:#將元素平方并添加到結(jié)果列表中result.append(num**2)returnresultlist1=[]print(square_elements(list1))2.defsquare_root_values(input_list):#判斷輸入列表是否為空ifnotinput_list:return[]#初始化結(jié)果列表result=[]#使用循環(huán)處理輸入列表中的每個(gè)元素fornumininput_list:#將元素平方根化并添加到結(jié)果列表中result.append(num**0.5)returnresultlist1=[1,4,9]print(square_root_values(list1))任務(wù)2應(yīng)用Python內(nèi)置函數(shù)一、填空題1.62.73.84.a5.5.68二、判斷題1.√2.×3.√4.×5.√三、名詞解釋所謂“壓縮”,其實(shí)就是將這些序列中對(duì)應(yīng)位置的元素重新組合,生成一個(gè)個(gè)新的元組。四、簡(jiǎn)答題1.))。2.`sorted`函數(shù)用于對(duì)可迭代對(duì)象進(jìn)行排序,而`sort`方法用于在原地對(duì)列表進(jìn)行排序。3.`enumerate`函數(shù)用于同時(shí)遍歷索引和元素。五、綜合應(yīng)用題1.defzip_lists(list1,list2):#使用zip()函數(shù)將兩個(gè)列表組合成一個(gè)zip對(duì)象zipped=zip(list1,list2)#將zip對(duì)象轉(zhuǎn)換為列表形式并返回結(jié)果returnlist(zipped)#測(cè)試函數(shù)list1=[1,2,3,4]list2=['a','b','c']result=zip_lists(list1,list2)print(result) #1,a2,'b3c')]2.defreverse_string(input_string):#判斷輸入字符串是否為空ifnotinput_string:return""#使用reversed()函數(shù)反轉(zhuǎn)字符串中的字符reversed_string="".join(reversed(input_string))returnreversed_stringstr1='abc'print(reverse_string(str1))3Python一、填空題二、判斷題1.×2.√3.√4.√5.√三、名詞解釋位置參數(shù)也稱為必備參數(shù),是指在調(diào)用函數(shù)時(shí)必須按照正確的順序?qū)?shí)際參數(shù)傳四、簡(jiǎn)答題1.`*args`用于傳遞可變數(shù)量的非關(guān)鍵字參數(shù)。麻煩,使函數(shù)的調(diào)用和參數(shù)傳遞更加靈活、方便。通過(guò)關(guān)鍵字參數(shù),可以更加靈活地調(diào)用函數(shù)并傳遞參數(shù),而不必?fù)?dān)心參數(shù)的位置問(wèn)題2.關(guān)鍵字參數(shù)在函數(shù)調(diào)用中的優(yōu)點(diǎn)是可以避免位置參數(shù)需要牢記參數(shù)位置的麻煩,使函數(shù)的調(diào)用和參數(shù)傳遞更加靈活、方便。通過(guò)關(guān)鍵字參數(shù),可以更加靈活地調(diào)用函數(shù)并傳遞參數(shù),而不必?fù)?dān)心參數(shù)的位置問(wèn)題。3.可變參數(shù)是指在函數(shù)定義中可以接受可變數(shù)量的參數(shù)。在3.可變參數(shù)是指在函數(shù)定義中可以接受可變數(shù)量的參數(shù)。在Python中,有兩種類型的可變參數(shù):可變位置參數(shù)和可變關(guān)鍵字參數(shù)??勺兾恢脜?shù)使用星號(hào)(*)作為前綴,例如:defadd_all(*args):returnsum(args)五、綜合應(yīng)用題1.defcalculate_area(width,height,perimeter=None,area_previously_calculated=None):#計(jì)算矩形的面積area=width*height#驗(yàn)證周長(zhǎng)是否正確ifperimeterisnotNone:ifperimeter!=2*(width+height):raiseValueError("給定的周長(zhǎng)不正確!")#驗(yàn)證預(yù)先計(jì)算的面積是否正確ifarea_previously_calculatedisnotNone:ifarea_previously_calculated!=area:raiseValueError("給定的預(yù)先計(jì)算的面積不正確!")returnarea#給定長(zhǎng)度、寬度print(calculate_area(10,5))#給定長(zhǎng)度、寬度、周長(zhǎng)print(calculate_area(10,5,30))#給定長(zhǎng)度、寬度、周長(zhǎng)、面積print(calculate_area(10,5,30,50))#給定長(zhǎng)度、寬度、錯(cuò)誤的周長(zhǎng)print(calculate_area(10,5,20))2.importmathdefcalculate_area_of_triangle(base,height,angle=None):#計(jì)算三角形的面積area=0.5*base*height#驗(yàn)證角度是否為直角ifangleisnotNone:ifangle!=90:raiseValueError("給定的角度不是直角!")returnarea#傳入base和heightprint(calculate_area_of_triangle(10,5))#傳入base、height和angle=90print(calculate_area_of_triangle(10,5,90))#傳入base、height和angle=89print(calculate_area_of_triangle(10,5,89))任務(wù)4變量作用域和global變量的使用一、填空題global臨時(shí)局部global二、判斷題1.×2.×3.√4.×三、名詞解釋2.全局變量是在所有函數(shù)外部定義的變量,其作用域是整個(gè)程序。四、簡(jiǎn)答題1.2.在函數(shù)內(nèi)部修改全局變量的值需要使用global關(guān)鍵字聲明該變量。五、綜合應(yīng)用題1.#步驟1:定義全局變量并賦值grade=3#步驟2:編寫輸出學(xué)生信息的函數(shù)defprint_student_info():#步驟2.1:在函數(shù)內(nèi)部定義局部變量name="小明"age=18#步驟2.2:使用全局變量輸出班級(jí)信息globalgradeprint(f"{name}\t{age}\t{grade}\t2")#步驟3:調(diào)用函數(shù)并輸出學(xué)生信息print_student_info()2.#步驟1:定義全局變量并賦值num1=5num2=3#步驟2:編寫加法函數(shù)defadd():#步驟2.1:在函數(shù)內(nèi)部定義局部變量result=num1+num2print(f"{num1}+{num2}={result}")#步驟3:編寫減法函數(shù)defsubtract():#步驟3.1:在函數(shù)內(nèi)部定義局部變量result=num1-num2print(f"{num1}-{num2}={result}")#步驟4:調(diào)用函數(shù)并輸出計(jì)算結(jié)果add()subtract()5Pythonlambda一、填空題迭代器過(guò)濾升序[name]=lambda[list]匿名二、判斷題1.×2.×3.×三、名詞解釋1.高階函數(shù)是能夠接受函數(shù)作為參數(shù)或者返回函數(shù)的函數(shù)。2.filter四、簡(jiǎn)答題lambdalaae:esiaesesin。五、綜合應(yīng)用題#首先,我們定義一個(gè)高階函數(shù)apply_func,該函數(shù)接收一個(gè)函數(shù)作為參數(shù),并應(yīng)用該函數(shù)到給定的列表上。defapply_func(func,lst):return[func(i)foriinlst]例如,如果給定一個(gè)加法函數(shù)和一個(gè)列表[123],apply_func應(yīng)返回[234]。add_one=lambdax:x1print(apply_func(add_one,[1,2,3]))#輸出:[2,3,4]lambda表達(dá)式定義一個(gè)函數(shù),該函數(shù)接受三個(gè)參數(shù)并返回它們的和。sum_three=lambdax,y,z:x+y+zprint(sum_three(1,2,3))#輸出:6sortedlambda表達(dá)式對(duì)一個(gè)包含整數(shù)的列表進(jìn)行排序,首先按照絕對(duì)值從小到大,然后按照數(shù)值從小到大。lst=[1,-2,3,-4,5]sorted_lst=sorted(lst,key=lambdax:(abs(x),x))print(sorted_lst)#輸出:[1,-2,3,-4,5]apply_func函數(shù),應(yīng)用你定義的加法函數(shù)到另一個(gè)列表上,并打印結(jié)果。print(apply_func(add_one,[4,5,6]))#輸出:[5,6,7]2.#首先,我們定義一個(gè)高階函數(shù)multiply_by_factor。這個(gè)函數(shù)接收一個(gè)函數(shù)和一個(gè)因子作為參數(shù),并返回一個(gè)新的函數(shù)。defmultiply_by_factor(func,factor):defnew_func(n):returnfunc(n)*factorreturnnew_funclambda表達(dá)式定義一個(gè)函數(shù),該函數(shù)接收兩個(gè)參數(shù)并返回它們的乘積。multiply=lambdax,y:x*ymapfilter高階函數(shù),將上述定義的乘法函數(shù)應(yīng)用到列表上的所有偶數(shù)元素上,并將結(jié)果轉(zhuǎn)換為列表。numberslist(range(1,11))#110的列表product_list=list(map(lambdax:multiply(x,2),list(filter(lambdax:x%20numbers))))#map函數(shù)將乘法函數(shù)應(yīng)用到所有偶數(shù)上multiply_by_factor高階函數(shù),將上述生成的列表中的每個(gè)元素乘2。double=multiply_by_factor(lambdax:x,2)#創(chuàng)建一個(gè)新的函數(shù),該函數(shù)將輸入的數(shù)值乘以2final_listlist(map(doubleproduct_list))#mapdouble函數(shù)應(yīng)用product_list上的所有元素#打印最終的列表print(final_list)6Python一、填空題1. 修改2. @staticmethod順序二、判斷題1.√2.×三、名詞解釋1.2.遞歸是指一個(gè)函數(shù)調(diào)用自己或者通過(guò)一系列的函數(shù)調(diào)用間接地調(diào)用自己的過(guò)程。在Python中,遞歸通常用于解決可以被分解成相似子問(wèn)題的問(wèn)題。四、簡(jiǎn)答題Python@緊跟在函數(shù)定義之前。修飾器實(shí)際上是一個(gè)函數(shù),它接受另一個(gè)函數(shù)作為參數(shù),并返回一個(gè)新的函數(shù)對(duì)象。修飾器可以用來(lái)包裝或修改原有函數(shù)的行為,通過(guò)調(diào)用傳。staticmethod要類的實(shí)例就可以直接調(diào)用。classmethod修飾器用于將一個(gè)函數(shù)定義為類方法,它需要傳入類本身作為第一個(gè)參數(shù)(通常命名為cls),并且只能通過(guò)類來(lái)調(diào)用。property修飾器用于將一個(gè)方法定義為屬性訪問(wèn)器,它允許通過(guò)屬性名來(lái)訪問(wèn)和修改對(duì)象的值,而不是使用方法名。五、綜合應(yīng)用題1.importtime #time模塊deftimeit(func):defwrapper(*args): #wrapperstarttime.perf_counter() #resultfunc(*args) #endtime.perf_counter() #print('運(yùn)時(shí)秒):',end-start) #算并出數(shù)行間returnresult #returnwrapper #@timeit #defmy_sum(n):sum=0foriinrange(n):sum+=ireturnsum #ifname =='main': #判腳是接還是為塊入result=my_sum(100) #用數(shù)入數(shù)100000print(result) #求和果2.deflogit(func): defwrapper(*args): #定義wrapper函數(shù)作為修飾器 print(f"開始行{func.name}數(shù)") #出日志信:開始執(zhí)行加法函數(shù) resultfunc(*args) # print(result)輸出求和結(jié)果 print(f"完成行{func.name}數(shù)") #出日志信:完成執(zhí)行加法函數(shù) returnresult #返回函數(shù)執(zhí)結(jié)果 returnwrapper #返回修改后的函對(duì)象 @logit #使用修飾對(duì)加法函數(shù)進(jìn)行修改 defadd(x,y): returnxy #簡(jiǎn)單的加法函數(shù)實(shí)現(xiàn)if name =='main': #判斷本是直運(yùn)行還是作為模塊入 result=add(100,1) #add100,1項(xiàng)目七Python面向?qū)ο笕蝿?wù)1認(rèn)識(shí)類對(duì)象和實(shí)例對(duì)象一、填空題classinit selfinit self二、判斷題1.×2.√3.√三、名詞解釋類對(duì)象是用class關(guān)鍵字定義的,用于創(chuàng)建實(shí)例對(duì)象的藍(lán)圖,包含屬性和方法。四、簡(jiǎn)答題封裝是將數(shù)據(jù)和方法封裝在一個(gè)類中,防止外部直接訪問(wèn)對(duì)象的屬性,提高代碼五、綜合應(yīng)用題1.classPerson:definit(self,name,age):=nameself.age=age
defgreet(self):print(f"Hello,mynameis{},andIam{self.age}years2.classRectangle:definit(self,length,width):self.length=lengthself.width=widthdefarea(self):returnself.length*self.width#示例用法rectangle1=Rectangle(5.0,3.0)print(rectangle1.area())任務(wù)2認(rèn)識(shí)屬性一、填空題類變量init 二、判斷題1.×2.×3.×4.√5.√三、名詞解釋1.Python(.)2.私有屬性是以雙下畫線開頭的屬性,不可以直接在類外部訪問(wèn)。使用私有屬性可以隱藏類的實(shí)現(xiàn)細(xì)節(jié),增強(qiáng)封裝性,防止外部直接修改屬性的值。四、簡(jiǎn)答題1.2.封裝是面向?qū)ο缶幊痰娜筇匦灾?,指將?shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一個(gè)類中。私有屬性通過(guò)在屬性名前添加雙下劃線來(lái)實(shí)現(xiàn)封裝,限制了對(duì)屬性的直接訪問(wèn)。3.@property修飾器用于將一個(gè)方法轉(zhuǎn)換為只讀屬性。它通常用于定義getter方法。五、綜合應(yīng)用題1.classCar:definit(self,brand,model,mileage):self.brand=brandself._model=modelself.mileage=mileagedefget_info(self):returnf"{self.brand}{self._model}-{self.mileage}miles"car1=Car("Toyota","Camry",50000)car2=Car("Honda","Accord",60000)print(car1.get_info())print(car2.get_info())2.classPerson:definit(self,name,age):=nameself._age=age
defbirthday(self):self._age+=1print(f"HappyBirthday,{}!Youarenow{self._age}years#創(chuàng)建人物person1=Person("Alice",25)#生日慶祝person1.birthday()person1.birthday()#輸出最終年齡print(f"{}'sfinalage:{person1._age}")任務(wù)3認(rèn)識(shí)方法一、填空題defself@staticmethod@classmethod析構(gòu)二、判斷題1.√2.√3.×4.√5.√三、名詞解釋1.2.實(shí)例方法是定義在類中的函數(shù),至少有一個(gè)參數(shù),通常命名為self,用于操作實(shí)例的屬性或執(zhí)行其他與實(shí)例相關(guān)的操作。四、簡(jiǎn)答題1.@classmethodcls@staticmethodself是實(shí)例方法中的一個(gè)約定參數(shù)名,代表當(dāng)前實(shí)例本身。當(dāng)實(shí)例方法被調(diào)用時(shí),Pythonselfself,init方法是一個(gè)特殊的方法,用于初始化類的實(shí)例。當(dāng)創(chuàng)建類的新實(shí)例時(shí),init 五、綜合應(yīng)用題1.classBook:definit(self,title,author):self.title=titleself.author=authordefdisplay_info(self):print(f"Title:{self.title},Author:{self.author}")#示例應(yīng)用book_instance=Book("PythonProgramming","JohnDoe")book_instance.display_info()2.classCalculator:@staticmethoddefadd_numbers(a,b):returna+b@staticmethoddefmultiply_numbers(a,b):returna*b#示例應(yīng)用result_add=Calculator.add_numbers(3,5)result_multiply=Calculator.multiply_numbers(4,6)print(f"AdditionResult:{result_add},MultiplicationResult:{result_multiply}")任務(wù)4認(rèn)識(shí)繼承一、填空題多重重寫object覆蓋子類 父類二、判斷題1.√2.√3.×4.×三、名詞解釋(/)四、簡(jiǎn)答題方法重載是指在同一個(gè)類中定義多個(gè)同名方法,但參數(shù)類型或數(shù)量不同。方法重Python3.五、綜合應(yīng)用題1.classPerson:definit(self,name):=namedefintroduce(self):passclassStudent(Person):defintroduce(self):returnf"我是學(xué)生,我的名字是{}"classTeacher(Person):defintroduce(self):returnf"我是老師,我的名字是{}"#示例使用student_instance=Student("小明")teacher_instance=Teacher("張老師")print(student_roduce())print(teacher_roduce())2.classAnimal:definit(self,name):=namedefmake_sound(self):passclassDog(Animal):defmake_sound(self):return"汪汪汪"classCat(Animal):defmake_sound(self):return"喵喵喵"#示例使用dog_instance=Dog("旺財(cái)")cat_instance=Cat("咪咪")print(f"{dog_}發(fā)出的聲音:{dog_instance.make_sound()}")print(f"{cat_}發(fā)出的聲音:{cat_instance.make_sound()}")任務(wù)5認(rèn)識(shí)可迭代對(duì)象——迭代器和生成器一、填空題結(jié)束可迭代for暫停break二、判斷題1.×2.√3.√三、名詞解釋1.Python語(yǔ)句進(jìn)2.iter和nextStopIteration四、簡(jiǎn)答題迭代器的優(yōu)勢(shì)在于可以按需生成元素,而不是一次性生成所有元素。這可以節(jié)省2.iter通過(guò)。而迭代器是實(shí)現(xiàn)了iter和方法的對(duì)象,它能夠追蹤迭代的狀態(tài)并返回下一個(gè)3.iter()(next()StopIteration五、綜合應(yīng)用題1.deffibonacci_generator(n):a,b=0,1count=0whilecount<n:yieldaa,b=b,a+bcount+=1#輸出前10個(gè)斐波那契數(shù)fornuminfibonacci_generator(10):print(num)2.defis_prime(num):ifnum<2:returnFalseforiinrange(2,int(num**0.5)+1):ifnum%i==0:returnFalsereturnTruedefprime_generator(start,end):fornuminrange(start,end+1):ifis_prime(num):yieldnum#測(cè)試生成器函數(shù)forprime_numinprime_generator(10,30):print(prime_num)項(xiàng)目八Python模塊和包任務(wù)1模塊的導(dǎo)入和使用一、填空題importdatetimehelp()4. *二、判斷題1.×2.×3.√4.√5.√三、名詞解釋1.PythonPython2.命名空間是一個(gè)用于存儲(chǔ)變量名或標(biāo)識(shí)符與對(duì)象之間關(guān)聯(lián)關(guān)系的容器。在Python四、簡(jiǎn)答題(1)API(2)Pythonmathmath.sinmath.cos()(3)在模塊中編寫測(cè)試代碼,并消除全局代碼。(4)使用私有函數(shù)實(shí)現(xiàn)不被外部客戶端調(diào)用的模塊函數(shù)。(5)通過(guò)文檔提供模塊幫助信息。importmodule_name:frommodule_nameimportfunction_name,variable_name:從模塊中選擇性地導(dǎo)入特定函數(shù)或變量。frommodule_nameimport*:導(dǎo)入模塊中的所有內(nèi)容。Python五、綜合應(yīng)用題1.#fib_module.pydeffibonacci(n):ifn<=0:return"Invalidinput"elifn==1:return0elifn==2:return1else:a,b=0,1for_inrange(n-2):a,b=b,a+breturnb#main_script.pyfromfib_moduleimportfibonaccin=int(input("EnterthepositionofFibonaccinumber:"))result=fibonacci(n)print(f"TheFibonaccinumberatposition{n}is:{result}")2.#square_sum_module.pydefcalculate_square_sum(a,b):returna**2+b**2#main_script.pyfromsquare_sum_moduleimportcalculate_square_sumnum1=int(input("Enterthefirstnumber:"))num2=int(input("Enterthesecondnumber:"))result=calculate_square_sum(num1,num2)print(f"Thesquaresumof{num1}and{num2}is:{result}")任務(wù)2包的導(dǎo)入和使用一、填空題import文件夾 塊件二、判斷題1.×2.√3.√4.√5.×三、名詞解釋Pythoninit.py四、簡(jiǎn)答題Pythoninit.py文init.pyPythoninit.py五、綜合應(yīng)用題1.shapes/circle.pyimportmathdefcalculate_area(radius):returnmath.pi*radius**2main_program.pyfromshapesimportcircleradius=5area=circle.calculate_area(radius)print("CircleAreawithradius",radius,":",area)2.utils/math_operations.pydefadd(x,y):returnx+ydefsubtract(x,y):returnx-ymain_program.pyfromutilsimportmath_operationsnum1,num2=10,5sum_result=math_operations.add(num1,num2)difference_result=math_operations.subtract(num1,num2)print("Sum:",sum_result)print("Difference:",difference_result)項(xiàng)目九Python文件操作任務(wù)1認(rèn)識(shí)文件一、填空題絕對(duì)徑 相路徑os.path.join()os.remove()os.rename()二、判斷題1.×2.√3.√4.√5.×三、名詞解釋1.絕對(duì)路徑是從文件系統(tǒng)的根目錄開始指定文件或目錄的路徑,絕對(duì)路徑能夠完整地表示出文件的真實(shí)位置嗎,并且可以根據(jù)這個(gè)路徑層級(jí)找到文件。2.相對(duì)路徑即相對(duì)于當(dāng)前文件夾,目標(biāo)文件夾路徑。四、簡(jiǎn)答題在WindowsUnix/Linux/Python3.打開文件:使用open()函數(shù),該函數(shù)會(huì)返回一個(gè)文件對(duì)象。對(duì)已打開的文件做讀/寫操作:讀取文件內(nèi)容可以使用read()、readline()以及readlines()函數(shù);向文件中寫入內(nèi)容可以使用write()函數(shù)關(guān)閉文件:完成對(duì)文件的讀/寫操作后,需要關(guān)閉文件,可以使用close()函數(shù)。注:文件必須在打開之后才能對(duì)其操作,并且在操作結(jié)束之后,還應(yīng)將其關(guān)閉,這3步的順序不能打亂。五、綜合應(yīng)用題1.file_path=input("請(qǐng)輸入文本文件的路徑:")withopen(file_path,'r')asfile:content=file.read().lower()letter_count={}forcharincontent:ifchar.isalpha():letter_count[char]=letter_count.get(char,0)+1print("每個(gè)字母的出現(xiàn)次數(shù):",letter_count)2.file_path=input("請(qǐng)輸入文本文件的路徑:")withopen(file_path,'r')asfile:lines=file.readlines()line_count=len(lines)print(f"文件{file_path}中共有{line_count}行。")任務(wù)2使用文件操作函數(shù)完成文本的讀寫一、填空題openreadwriteclosewfile.read二、判斷題1.√2.×3.√4.×三、名詞解釋2.'r'四、簡(jiǎn)答題1.readlines函數(shù)用于讀取文件中的所有行,writelines函數(shù)用于將字符串列表寫入文件中。2.五、綜合應(yīng)用題1.Python文件中執(zhí)行#1.創(chuàng)建文件并寫入用戶信息file=open("user_data.txt",'w')name=input("請(qǐng)輸入姓名:")age=input("請(qǐng)輸入年齡:")file.write(f"姓名:{name}\n年齡:{age}\n")file.close()#2.重新打開文件,讀取并打印用戶信息file=open("user_data.txt",'r')content=file.read()print("用戶信息:")print(content)file.close()2.importrandom#1.創(chuàng)建文件并寫入隨機(jī)整數(shù)file=open("numbers.txt",'w')numbers=[random.randint(1,100)for_inrange(10)]file.write('\n'.join(map(str,numbers)))file.close()#2.重新打開文件,讀取并計(jì)算平均值file=open("numbers.txt",'r')content=file.read().split('\n')numbers=[int(num)fornumincontentifnum]average=sum(numbers)/len(numbers)print("平均值:",average)file.close()3Python一、填空題dumpreadline()行號(hào)abspath()a二、判斷題1.√2.×3.×4.√5.×三、名詞解釋open()四、簡(jiǎn)答題遍歷path,進(jìn)入每個(gè)目錄都調(diào)用visitvisit函數(shù)必須有3個(gè)參數(shù)(arg,dirname,names),dirname表示當(dāng)前目錄的目錄名,names表示當(dāng)前目錄下的所有文件名,args則為walk的第三個(gè)參數(shù)。os.pathdirname()和basename()函數(shù)的區(qū)別是os.path.dirname(path)返回pathos.path.basename(path)path五、綜合應(yīng)用題1.importfileinput#創(chuàng)建文本文件并寫入內(nèi)容withopen('sample.txt','w')asfile:file.write("Line1:Hello\nLine2:Python\nLine3:File\nLine4:Input\nLine5:Module")fileinput讀取文件內(nèi)容并輸出行號(hào)和內(nèi)容forline_number,line_contentinenumerate(fileinput.input('sample.txt'),start=1):print(f"Line{line_number}:{line_content.strip()}")2.importlinecache10行內(nèi)容line_number=10file_path='large_file.txt'line_content=linecache.getline(file_path,line_number)print(f"Contentofline{line_number}:{line_content.strip()}")任務(wù)4基于文件操作的異常處理一、填空題try exceptfinallyasFileNotFoundError逗號(hào)二、判斷題1.√2.×3.×三、名詞解釋異常傳遞是指在一個(gè)函數(shù)中捕獲異常,并將異常傳遞到調(diào)用它的函數(shù),從而使得四、簡(jiǎn)答題1.和excepttry塊exceptPython常。異常是Python對(duì)象,表示一個(gè)錯(cuò)誤。當(dāng)Python腳本發(fā)生異常時(shí)可以選擇捕獲并處理,若異常超出可處理的范圍,沒有被捕獲程序?qū)?huì)終止,防止造成更大的損失。exceptExceptionase:Exception因此可以捕獲任何可能發(fā)生的異常,包括文件操作中可能出現(xiàn)的各種異常,如FileNotFoundError、PermissionError等。五、綜合應(yīng)用題1.try:#從用戶輸入中獲取文件名filename=input("請(qǐng)輸入文件名:")#嘗試打開文件withopen(filename,'r')asfile:#從文件中讀取內(nèi)容并輸出content=file.read()print("文件內(nèi)容:",content)exceptFileNotFoundError:#捕獲文件不存在的異常并輸出提示信息print(f"文件'{filename}'不存在。")exceptExceptionase:#捕獲其他異常并輸出異常信息print(f"發(fā)生異常:{e}")finally:#無(wú)論是否成功打開文件,都要確保文件操作完成后正確關(guān)閉文件print("文件操作完成。")2.defdivide_by_zero():#函數(shù)包含除零錯(cuò)誤result=10/0defcall_divide_by_zero():#函數(shù)調(diào)用包含可能引發(fā)的異常divide_by_zero()try:#主程序捕獲異常call_divide_by_zero()exceptZeroDivisionErroraszde:#捕獲除零錯(cuò)誤并輸出錯(cuò)誤信息print(f"捕獲到除零錯(cuò)誤:{zde}")exceptExceptionase:#捕獲其他異常并輸出異常信息print(f"發(fā)生異常:{e}")finally:print("程序執(zhí)行完畢。")項(xiàng)目十 綜合性任務(wù)實(shí)踐綜合應(yīng)用(編程實(shí)現(xiàn)的方式有多種,答案示例僅供參考)1.classWarehouse:definit(self):#初始化庫(kù)存字典self.inventory={}defstock_in(self,item,quantity):#入庫(kù)self.inventory[item]=self.inventory.get(item,0)+quantityreturnf"{item}入庫(kù){quantity}件。"defstock_out(self,item,quantity):#出庫(kù)ifitemnotinself.inventoryorself.inventory[item]<quantity:returnf"{item}庫(kù)存不足。"self.inventory[item]-=quantityreturnf"{item}出庫(kù){quantity}件。"defquery_all(self):#查詢所有物品return"\n".join([f"{item}:{quantity}件"foritem,quantityinself.inventory.items()])defquery_item(self,item):#查詢單個(gè)物品#ifreturnf"{item}:{self.inventory.get(item,0)}件"defwarehouse_robot():warehouse=Warehouse()whileTrue:print("歡迎您使用倉(cāng)庫(kù)管理服務(wù)機(jī)器人系統(tǒng)!\n請(qǐng)選擇您需要使用的功能:\n1入庫(kù)\n2出庫(kù)\n3查詢所有物品\n4查詢單種物品\n5退出系統(tǒng)")choice=input("請(qǐng)選擇功能序號(hào)(1-5):")ifchoice=='1':item=input("請(qǐng)輸入物品名稱:")quantity=int(input("請(qǐng)輸入物品數(shù)量:"))print(warehouse.stock_in(item,quantity))elifchoice=='2':item=input("請(qǐng)輸入物品名稱:")quantity=int(input("請(qǐng)輸入物品數(shù)量:"))print(warehouse.stock_out(item,quantity))elifchoice=='3':print(warehouse.query_all())elifchoice=='4':item=input("請(qǐng)輸入物品名稱:")print(warehouse.query_item(item))elifchoice=='5':print("您已成功退出系統(tǒng),感謝您選擇使用倉(cāng)庫(kù)管理服務(wù)機(jī)器人系統(tǒng)!")breakelse:print("無(wú)效的選項(xiàng),請(qǐng)重新選擇。")ifname=="main":warehouse_robot()2.#定義藥品類classDrug:definit(self,name,quantity,shelf):=name#藥品名稱self.quantity=quantity#藥品數(shù)量self.shelf=shelf#藥品所在藥架編號(hào)self.units=[]#藥品單位編號(hào)列表#定義醫(yī)院類classHospital:definit(self):self.drugs={}#存儲(chǔ)藥品的字典,鍵為藥品名稱,值為藥品對(duì)象self.drug_id=0#藥品單位編號(hào),用于生成唯一的藥品單位編號(hào)#入庫(kù)操作defadd_drug(self,name,quantity,shelf):ifnameinself.drugs:drug=self.drugs[name]drug.quantity+=quantityforiinrange(quantity):self.drug_id+=1drug.units.append(f"{shelf}-{self.drug_id}")else:drug=Drug(name,quantity,shelf)foriinrange(quantity):self.drug_id+=1drug.units.append(f"{shelf}-{self.drug_id}")self.drugs[name]=drugreturnf"藥品{name}已成功入庫(kù)."#配送操作defdistribute_drug(self,name,ward):ifnameinself.drugsandself.drugs[name].quantity>0:self.drugs[name].quantity-=1self.drugs[name].units.pop()returnf"藥品{name}已成功配送到{ward}."else:returnf"藥品{name}庫(kù)存不足.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023凈身出戶離婚協(xié)議書
- 償還借款協(xié)議書范本
- 額部腫塊病因介紹
- 公司轉(zhuǎn)讓個(gè)人股份協(xié)議
- 中考政治第一部分知識(shí)闖關(guān)能力提升第二課時(shí)調(diào)節(jié)情緒學(xué)習(xí)壓力明辨是非復(fù)習(xí)課獲
- 2015中國(guó)在線音樂(lè)行業(yè)研究報(bào)告
- (2024)赤泥綜合利用生產(chǎn)建設(shè)項(xiàng)目可行性研究報(bào)告(一)
- 2023年辦公照明項(xiàng)目籌資方案
- 【電信終端產(chǎn)業(yè)協(xié)會(huì)】2024年終端智能化分級(jí)研究報(bào)告
- 國(guó)際物流題庫(kù)(含參考答案)
- 氣候可行性論證技術(shù)規(guī)范第8部分:能源化工類園區(qū)
- 計(jì)算機(jī)組裝與維護(hù)-考試附有答案
- 2017電動(dòng)汽車用增程器技術(shù)條件
- 2024屆江蘇省蘇州市八校聯(lián)考高三三模語(yǔ)文試題
- 質(zhì)保金返還合同范本
- RBA商業(yè)道德程序文件(系列)
- 醫(yī)院培訓(xùn)課件:《靜脈血栓栓塞癥(VTE)專題培訓(xùn)》
- 幼兒園國(guó)旗下講話《我長(zhǎng)大了!》
- 機(jī)械設(shè)備供貨、培訓(xùn)及售后服務(wù)方案
- 國(guó)開2024年《初級(jí)會(huì)計(jì)》形成性考核1-4答案
- 2024年國(guó)家公務(wù)員考試時(shí)事政治必考題庫(kù)含答案(完整版)
評(píng)論
0/150
提交評(píng)論