版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章Python程序的基本流程控制1.編寫程序,從鍵盤輸入兩點的坐標(xl,y1)和(x2,y2),計算并輸出兩點之間的距離。答案:importmathdefcalculate_distance(x1,y1,x2,y2):distance=math.sqrt((x2-x1)**2+(y2-y1)**2)returndistancedefmain():try:x1=float(input("Enterthex-coordinateofthefirstpoint(x1):"))y1=float(input("Enterthey-coordinateofthefirstpoint(y1):"))x2=float(input("Enterthex-coordinateofthesecondpoint(x2):"))y2=float(input("Enterthey-coordinateofthesecondpoint(y2):"))distance=calculate_distance(x1,y1,x2,y2)print("Thedistancebetweenthetwopointsis:",distance)exceptValueError:print("Invalidinput.Pleaseentervalidnumericalvaluesforcoordinates.")if__name__=="__main__":main()2.編寫程序,從鍵盤輸入年份值和月份值,輸出該年當月的日歷(調用calendar模塊中的month()函數)。答案:importcalendardefmain():try:year=int(input("Entertheyear:"))month=int(input("Enterthemonth(1-12):"))ifmonth<1ormonth>12:print("Invalidmonth.Pleaseenteravaluebetween1and12.")returncal=calendar.month(year,month)print("\nCalendarfortheyear{}andmonth{}:".format(year,month))print(cal)exceptValueError:print("Invalidinput.Pleaseentervalidnumericalvaluesforyearandmonth.")if__name__=="__main__":main()3.編寫程序,產生兩個10以內的隨機整數,以第1個隨機整數為半徑、第2個隨機整數為高,計算并輸出圓錐體的體積。答案:importrandomimportmathdefcalculate_cone_volume(radius,height):volume=(1/3)*math.pi*radius**2*heightreturnvolumedefmain():try:radius=random.randint(1,10)height=random.randint(1,10)print("Randomlygeneratedradius:",radius)print("Randomlygeneratedheight:",height)volume=calculate_cone_volume(radius,height)print("Thevolumeoftheconeis:",volume)exceptValueError:print("Anerroroccurredwhilegeneratingrandomnumbers.")if__name__=="__main__":main()4.編寫程序,從鍵盤輸入一個年份值,判斷該年是否為國年并輸出判斷結果。(提示:若該年份值能被4整除且不能被100整除或者該份值能被400整除,則該是年,否則不是。)答案:defis_leap_year(year):if(year%4==0andyear%100!=0)or(year%400==0):returnTrueelse:returnFalsedefmain():try:year=int(input("Enterayear:"))ifis_leap_year(year):print(f"{year}isaleapyear.")else:print(f"{year}isnotaleapyear.")exceptValueError:print("Invalidinput.Pleaseenteravalidyear.")if__name__=="__main__":main()5.編寫程序,從鍵盤輸入三個數,計算并輸出三個數中最大的數。答案:deffind_max(a,b,c):returnmax(a,b,c)defmain():try:num1=float(input("Enterthefirstnumber:"))num2=float(input("Enterthesecondnumber:"))num3=float(input("Enterthethirdnumber:"))max_num=find_max(num1,num2,num3)print("Themaximumnumberis:",max_num)exceptValueError:print("Invalidinput.Pleaseentervalidnumericalvalues.")if__name__=="__main__":main()6.編寫程序,從鍵盤輸入三個數,實現三個數從小到大排序并輸出結果。答案:defsort_numbers(num1,num2,num3):#使用列表的sort()方法對三個數進行排序sorted_numbers=[num1,num2,num3]sorted_numbers.sort()returnsorted_numbersdefmain():try:num1=float(input("Enterthefirstnumber:"))num2=float(input("Enterthesecondnumber:"))num3=float(input("Enterthethirdnumber:"))sorted_numbers=sort_numbers(num1,num2,num3)print("Numberssortedinascendingorder:",sorted_numbers)exceptValueError:print("Invalidinput.Pleaseentervalidnumericalvalues.")if__name__=="__main__":main()7.編寫程序,從鍵盤輸入a、b、c的值,計算一元二次方程x+bx+c-0的根,并根據62-4ac的值大于0等于0及小于0三種情分別進行討論。答案:importmathdefquadratic_equation_roots(a,b,c):D=b**2-4*a*cifD>0:x1=(-b+math.sqrt(D))/(2*a)x2=(-b-math.sqrt(D))/(2*a)return"Twodistinctrealroots:x1={:.2f},x2={:.2f}".format(x1,x2)elifD==0:x=-b/(2*a)return"Twoequalrealroots:x={:.2f}".format(x)else:real_part=-b/(2*a)imaginary_part=math.sqrt(abs(D))/(2*a)return"Twocomplexroots:x1={:.2f}+{:.2f}i,x2={:.2f}-{:.2f}i".format(real_part,imaginary_part,real_part,imaginary_part)defmain():try:a=float(input("Enterthevalueofa:"))b=float(input("Enterthevalueofb:"))c=float(input("Enterthevalueofc:"))result=quadratic_equation_roots(a,b,c)print("Rootsofthequadraticequation:")print(result)exceptValueError:print("Invalidinput.Pleaseentervalidnumericalvalues.")if__name__=="__main__":main()8.編寫程序,從鍵盤輸入一個字符,如果是大寫英文字母則將其轉換為小寫英文字母,如果是小寫英文字母則將其轉換為大寫英文字母,其他字符原樣輸出。答案:defmain():try:char=input("Enteracharacter:")ifchar.isupper():converted_char=char.lower()elifchar.islower():converted_char=char.upper()else:converted_char=charprint("Convertedcharacter:",converted_char)exceptKeyboardInterrupt:print("\nProgramterminatedbytheuser.")if__name__=="__main__":main()9.編寫程序,從鍵盤輸入數字n,通過循環(huán)結構計算從1到n的乘積。答案:defcalculate_factorial_with_for(n):factorial=1foriinrange(1,n+1):factorial*=ireturnfactorialdefmain():try:n=int(input("Enteranumber(n):"))ifn<0:print("Pleaseenteranon-negativeinteger.")returnresult=calculate_factorial_with_for(n)print(f"Thefactorialof{n}is:{result}")exceptValueError:print("Invalidinput.Pleaseenteravalidinteger.")if__name__=="__main__":main()10.編寫程序,通過循環(huán)結構計算全部的水仙花數。水仙花數是一個三位數,該數正好等于組成該二位數的各位數字的立方和。例如,13+5+33-153。答案:defis_armstrong_number(num):num_str=str(num)num_digits=len(num_str)total=0fordigit_charinnum_str:digit=int(digit_char)total+=digit**num_digitsreturntotal==numdefmain():armstrong_numbers=[]fornuminrange(100,1000):ifis_armstrong_number(num):armstrong_numbers.append(num)print("AllArmstrongnumbersbetween100and999are:")print(armstrong_numbers)if__name__=="__main__":main()11.編寫程序,通過循環(huán)結構計算并輸出滿足條件的正方體的體積:正方體棱長從1到10,依次計算體積,當體積大于100時停止輸出。答案:defcalculate_cube_volume(side_length):volume=side_length**3returnvolumedefmain():max_volume=100forside_lengthinrange(1,11):volume=calculate_cube_volume(side_length)ifvolume>max_volume:breakprint(f"Cubewithsidelength{side_length}:Volume={volume}")if__name__=="__main__":main()12.編寫程序,從鍵盤輸入一個整數并判斷該數的類別:其因數之和等于數字本身的數稱為完全數,比數字本身大的數稱為豐沛數,比數字本身小的數稱為不足數。答案:defget_factors_sum(num):factors_sum=0foriinrange(1,num):ifnum%i==0:factors_sum+=ireturnfactors_sumdefmain():try:num=int(input("Enteraninteger:"))ifnum<=0:print("Pleaseenterapositiveinteger.")returnfactors_sum=get_factors_sum(num)iffactors_sum==num:print(f"{num}isaperfectnumber.")eliffactors_sum>num:print(f"{num}isanabundantnumber.")else:print(f"{num}isadeficientnumber.")exceptValueError:print("Invalidinput.Pleaseenteravalidinteger.")if__name__=="__main__":main()13.編寫程序,使用雙重循環(huán)結構輸出如圖3-18所示的運行結果。defprint_diamond(rows):foriinrange(1,rows//2+2):spaces=rows//2+1-istars=2*i-1print(""*spaces+"*"*stars)foriinrange(rows//2,0,-1):spaces=rows//2+1-istars=2*i-1print(""*spaces+"*"*stars)defmain():rows=7print_diamond(rows)if__name__=="__main__":main()14.編寫程序,生成一個0~100之間的隨機數,然后讓用戶嘗試猜測這個數字。程序給出猜測方向(更大或更小)的提示,用戶繼續(xù)進行猜測,直到用戶猜測成功或輸入一個0~100以外的數字后退出游戲。答案:importrandomdefmain():secret_number=random.randint(0,100)whileTrue:try:guess=int(input("Guessthenumber(0-100):"))ifguess<0orguess>100:print("Invalidinput.Pleaseenteranumberbetween0and100.")elifguess<secret_number:print("Toolow.Tryagain.")elifguess>secret_number:print("Toohigh.Tryagain.")else:print("Congratulations!Youguessedthecorrectnumber:",secret_number)breakexceptValueError:print("Invalidinput.Pleaseenteravalidinteger.")if__name__=="__main__":main()15.編寫程序,計算Fibonacci數列的前20項(Fibonacci數列的特點是,第1、2項的值都為1,從第3項開始,每項都是前兩項之和)。答案:deffibonacci_sequence(n):sequence=[1,1]#初始的前兩項為1foriinrange(2,n):next_number=sequence[i-1]+sequence[i-2]sequence.append(next_number)returnsequencedefmain():n=20fibonacci_seq=fibonacci_sequence(n)print("Fibonaccisequence(first20terms):",fibonacci_seq)if__name__=="__main__":main()16.編寫程序,從鍵盤輸入兩個正整數,計算兩個數的最大圖3-18第13題的運行結果公約數和最小公倍數。答案:defcalculate_gcd(a,b):whileb!=0:a,b=b,a%breturnadefcalculate_lcm(a,b):return(a*b)//calculate_gcd(a,b)defmain():try:num1=int(input("Enterthefirstpositiveinteger:"))num2=int(input("Enterthesecondpositiveinteger:"))ifnum1<=0ornum2<=0:print("Pleaseenterpositiveintegers.")returngcd=calculate_gcd(num1,num2)lcm=calculate_lcm(num1,num2)print("GreatestCommonDivisor(GCD):",gcd)print("LeastCommonMultiple(LCM):",lcm)exceptValueError:print("Invalidinput.Pleaseentervalidpositiveintegers.")if__name__=="__main__":main()17.編寫程序,判斷一個整數是否為素數(判斷整數x是否為素數,最簡單的方法就是用2~x-1之間的所有整數逐一去除x,若x能被其中任意一個數整除,則x就不是素數,否則為素數)。答案:defis_prime(number):ifnumber<=1:returnFalseforiinrange(2,number):ifnumber%i==0:returnFalsereturnTruedefmain():try:num=int(input("Enteraninteger:"))ifis_prime(num):print(f"{num}isaprimenumber.")else:print(f"{num}isnotaprimenumber.")exceptValueError:print("Invalidinput.Pleaseenteravalidinteger.")if__name__=="__main__":main()18.編寫程序,實現一個循環(huán)5次的計算小游戲,每次隨機產生兩個100以內的數字,讓用戶計算兩個數字之和并輸入結果,如果計算結果正確則加一分,如果計算結果錯誤則不加分。如果正確率大于或等于80%,則闖關成功。答案:importrandomdefgenerate_random_numbers():num1=random.randint(1,100)num2=random.randint(1,100)returnnum1,num2defmain():correct_count=0total_attempts=5for_inrange(total_attempts):num1,num2=generate_random_numbers()correct_answer=num1+num2try:user_answer=int(input(f"Whatisthesumof{num1}and{num2}?"))ifuser_answer==correct_answer:print("Correct!")correct_count+=1else:print(f"Wrong!Thecorrectansweris{correct_answer}.")exceptValueError:print("Invalidinput.Pleaseenteravalidinteger.")accuracy=(correct_count/total_attempts)*100print(f"\nYougot{correct_count}outof{total_attempts}correctanswers.")print(f"Youraccuracyis{accuracy:.2f}%.")ifaccuracy>=80:print("Congratulations!Youpassedthechallenge.")else:print("Sorry,youneedahigheraccuracytopassthechallenge.")if__name__=="__main__":main()19.編寫程序,從鍵盤輸入一個姓名(可能為2個字、3個字或4個字),將該姓名的第2個漢字修改為*號。如果索引出錯,則進行異常處理并提示索引錯誤。答案:defmodify_second_character(name):try:iflen(name)<2orlen(name)>4:raiseIndexError("Nameshouldhave2,3,or4characters.")modified_name=name[:1]+"*"+name[2:]returnmodified_nameexceptIndexErrorase:print("Error:",e)returnNonedefmain():name=input("Enteraname(2,3,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年綜合石材供應安裝合同3篇
- 2025年度出租車公司車輛保險理賠服務合同3篇
- 2024年資料管理臨時工聘任協議范本版
- 2025年度智能家居燈具定制安裝合同模板2篇
- 《鮮益母草膠囊a》課件
- 2024年試樁項目施工責任協議版B版
- 2024年知名電影發(fā)行與放映合同
- 2024年電動滑板車租賃合同3篇
- 2024年酒店會議住宿優(yōu)惠合同
- 2024幼兒園教職員工勞動合同與幼兒安全教育及應急處理協議3篇
- 2025年四川長寧縣城投公司招聘筆試參考題庫含答案解析
- 2024年06月上海廣發(fā)銀行上海分行社會招考(622)筆試歷年參考題庫附帶答案詳解
- TSG 51-2023 起重機械安全技術規(guī)程 含2024年第1號修改單
- 計算機科學導論
- 浙江省杭州市錢塘區(qū)2023-2024學年四年級上學期英語期末試卷
- 《工程勘察設計收費標準》(2002年修訂本)
- 2024年一級消防工程師《消防安全技術綜合能力》考試真題及答案解析
- 安徽省森林撫育技術導則
- 2023七年級英語下冊 Unit 3 How do you get to school Section A 第1課時(1a-2e)教案 (新版)人教新目標版
- 泌尿科主任述職報告
- 2024年湖南省公務員考試《行測》真題及答案解析
評論
0/150
提交評論