ython程序設計與人工智能項目教程梁婷婷課后答案_第1頁
ython程序設計與人工智能項目教程梁婷婷課后答案_第2頁
ython程序設計與人工智能項目教程梁婷婷課后答案_第3頁
ython程序設計與人工智能項目教程梁婷婷課后答案_第4頁
ython程序設計與人工智能項目教程梁婷婷課后答案_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

(1)編寫一個Python程序,要求使用input()函數(shù)輸入姓名、年齡和職業(yè),并使用print()和格式控制輸出以下結(jié)果。#獲取用戶輸入

name=input("請輸入您的姓名:")

age=input("請輸入您的年齡:")

occupation=input("請輸入您的職業(yè):")

#使用格式控制輸出結(jié)果

print(f"姓名:{name}")

print(f"年齡:{age}歲")

print(f"職業(yè):{occupation}")(2)編寫一個Python程序,要求使用input()函數(shù)輸入圓的半徑,并使用print()函數(shù)和格式控制計算及輸出以下結(jié)果。#插入math庫importmath#輸入圓的半徑radius=float(input("請輸入圓的半徑:"))#計算圓的面積area=math.pi*radius**2#格式化輸出結(jié)果print(f"圓的面積為:{area:10.2f}")(3)編寫一個Python程序,要求使用input()函數(shù)輸入一個整數(shù),判斷該整數(shù)是奇數(shù)還是偶數(shù),并使用print()函數(shù)輸出以下結(jié)果。num=int(input("請輸入一個整數(shù):"))

#判斷奇偶性

ifnum%2==0:

result="偶數(shù)"

else:

result="奇數(shù)"

#格式化輸出結(jié)果

print(f"{num}是{result}。")(4)編寫一個Python程序,要求使用input()函數(shù)輸入攝氏溫度,將其轉(zhuǎn)換為華氏溫度,轉(zhuǎn)換公式為“華氏溫度=攝氏溫度×9/5+32”,并使用print()函數(shù)輸出以下結(jié)果。celsius=float(input("請輸入攝氏溫度:"))

#計算華氏溫度

fahrenheit=celsius*9/5+32

#格式化輸出結(jié)果(保留一位小數(shù))

print(f"攝氏溫度:{celsius:.1f}→華氏溫度:{fahrenheit:.1f}")(5)編寫一個Python程序,要求使用input()函數(shù)輸入兩個數(shù)字和一個運算符(+、-、*、/),并使用print()函數(shù)計算并及輸出以下結(jié)果。#獲取用戶輸入

num1=float(input("請輸入第一個數(shù)字:"))

operator=input("請輸入運算符(+,-,*,/):")

num2=float(input("請輸入第二個數(shù)字:"))

#執(zhí)行計算

ifoperator=='+':

result=num1+num2

elifoperator=='-':

result=num1-num2

elifoperator=='*':

result=num1*num2

elifoperator=='/':

#處理除數(shù)為0的情況

ifnum2==0:

print("錯誤:除數(shù)不能為零!")

exit()

result=num1/num2

else:

print(f"錯誤:不支持的運算符'{operator}'")

exit()

#格式化輸出結(jié)果

print(f"{num1}{operator}{num2}={result}")(6)編寫一個Python程序,要求使用input()函數(shù)輸入身高(米)和體重(千克),其公式為“BMI=體重/(身高×身高)”,使用print()函數(shù)計算及輸出以下結(jié)果。#獲取用戶輸入

height=float(input("請輸入身高(米):"))

weight=float(input("請輸入體重(千克):"))

#計算BMI

bmi=weight/(height*height)

#格式化輸出結(jié)果(保留兩位小數(shù))

print(f"BMI指數(shù):{bmi:.2f}")(7)編寫一個Python程序,要求使用input()函數(shù)輸入一個字符串,將其反轉(zhuǎn)。并使用print()函數(shù)輸出以下結(jié)果。#獲取用戶輸入的字符串

input_string=input("請輸入一個字符串:")

#反轉(zhuǎn)字符串

reversed_string=input_string[::-1]

#格式化輸出結(jié)果

print(f"反轉(zhuǎn)后的字符串為:{reversed_string}")(8)編寫一個Python程序,要求使用input()函數(shù)輸入一個整數(shù),判斷該整數(shù)是否為回文數(shù),并使用print()函數(shù)輸出以下結(jié)果。num=int(input("請輸入一個整數(shù):"))

#將整數(shù)轉(zhuǎn)換為字符串以進行回文判斷

num_str=str(num)

#判斷是否為回文數(shù)

ifnum_str==num_str[::-1]:

result="是回文數(shù)"

else:

result="不是回文數(shù)"

#格式化輸出結(jié)果

print(f"{num}{result}")(9)編寫一個Python程序,要求使用input()函數(shù)輸入用戶名和密碼,判斷輸入的用戶名和密碼是否正確(假設用戶名為admin,密碼為123456),并使用print()函數(shù)輸出以下結(jié)果。#預設正確的用戶名和密碼

CORRECT_USERNAME="admin"

CORRECT_PASSWORD="123456"

#獲取用戶輸入

username=input("請輸入用戶名:")

password=input("請輸入密碼:")

#驗證用戶名和密碼

ifusername==CORRECT_USERNAMEandpassword==CORRECT_PASSWORD:

print("登錄成功!")

else:

print("登錄失??!")(1)編寫一個Python程序,要求使用input()函數(shù)輸入圓的半徑,使用math.pi輸入π,計算,并輸出以下結(jié)果。importmath#輸入圓的半徑radius=float(input("請輸入圓的半徑:"))#計算圓的面積(公式:π*r2)area=math.pi*(radius**2)#輸出結(jié)果(保留兩位小數(shù))print(f"圓的面積為:{area:.2f}")(2)編寫一個Python程序,要求使用input()函數(shù)輸入一個正整數(shù),使用math.sqrt()判斷該正數(shù)是否為質(zhì)數(shù),計算并輸出以下結(jié)果。importmathn=int(input("請輸入一個正整數(shù):"))ifn<=1: print(f"{n}不是質(zhì)數(shù)")else: is_prime=True foriinrange(2,int(math.sqrt(n))+1):ifn%i==0:is_prime=Falsebreakifis_prime:print(f"{n}是質(zhì)數(shù)")else:print(f"{n}不是質(zhì)數(shù)")(3)編寫一個Python程序,要求使用input()函數(shù)輸入兩個點的坐標和,根據(jù)公式“距離”計算輸出如下結(jié)果。importmath#獲取第一個點的坐標x1=float(input("請輸入第一個點的x坐標:"))y1=float(input("請輸入第一個點的y坐標:"))#獲取第二個點的坐標x2=float(input("請輸入第二個點的x坐標:"))y2=float(input("請輸入第二個點的y坐標:"))#計算兩點間距離distance=math.sqrt((x2-x1)**2+(y2-y1)**2)#輸出結(jié)果(保留兩位小數(shù))print(f"兩個點之間的距離為:{distance:.2f}")(4)編寫一個Python程序,要求使用input()函數(shù)輸入一個角度,計算并輸出以下結(jié)果。importmath#獲取用戶輸入的角度angle_degrees=float(input("請輸入一個角度:"))#將角度轉(zhuǎn)換為弧度(math模塊的三角函數(shù)使用弧度制)angle_radians=math.radians(angle_degrees)#計算正弦、余弦、正切值sin_value=math.sin(angle_radians)cos_value=math.cos(angle_radians)tan_value=math.tan(angle_radians)#輸出結(jié)果(保留兩位小數(shù))print(f"正弦值:{sin_value:.2f}")print(f"余弦值:{cos_value:.2f}")print(f"正切值:{tan_value:.2f}")(1)編寫一個Python程序,要求用戶輸入兩個整數(shù),計算并輸出這兩個整數(shù)的和、差、積、商(若除數(shù)為0,則輸出“除數(shù)不能為0”),以及它們的余數(shù)。#獲取用戶輸入的兩個整數(shù)num1=int(input("請輸入第一個整數(shù):"))num2=int(input("請輸入第二個整數(shù):"))#計算和、差、積sum_result=num1+num2difference=num1-num2product=num1*num2#輸出和、差、積print(f"和:{sum_result}")print(f"差:{difference}")print(f"積:{product}")#計算商和余數(shù)(處理除數(shù)為0的情況)ifnum2==0:print("商:除數(shù)不能為0")print("余數(shù):除數(shù)不能為0")else:quotient=num1/num2#使用浮點除法得到精確商remainder=num1%num2print(f"商:{quotient}")print(f"余數(shù):{remainder}")(2)編寫一個Python程序,根據(jù)用戶輸入的年份,判斷該年份是否為閏年。若為閏年,則輸出“是閏年”,否則輸出“不是閏年”。#獲取用戶輸入的年份year=int(input("請輸入一個年份:"))#判斷是否為閏年if(year%4==0andyear%100!=0)or(year%400==0):print(f"{year}是閏年")else:print(f"{year}不是閏年")(3)編寫一個Python程序,要求用戶輸入兩個整數(shù),計算并輸出它們的商。若輸入的不是整數(shù),或除數(shù)為0,則捕獲異常并輸出相應的錯誤信息。try:#獲取用戶輸入的兩個整數(shù)num1=int(input("請輸入第一個整數(shù):"))num2=int(input("請輸入第二個整數(shù):"))#計算商quotient=num1/num2#輸出結(jié)果(保留兩位小數(shù))print(f"商為:{quotient:.2f}")exceptValueError:#處理輸入非整數(shù)的情況print("錯誤:輸入的不是有效的整數(shù)!")exceptZeroDivisionError:#處理除數(shù)為0的情況print("錯誤:除數(shù)不能為0!")(4)編寫一個Python程序,要求用戶輸入一個百分制的分數(shù)(0~100范圍內(nèi)的整數(shù)),并將其轉(zhuǎn)換為五分制(A、B、C、D、F)。若輸入的不是整數(shù),或不在0~100范圍內(nèi),則捕獲異常并輸出相應的錯誤信息。try:#獲取用戶輸入的分數(shù)score=input("請輸入百分制分數(shù)(0-100的整數(shù)):")#嘗試轉(zhuǎn)換為整數(shù)score_int=int(score)#檢查分數(shù)范圍ifscore_int<0orscore_int>100:raiseValueError("分數(shù)必須在0-100范圍內(nèi)")#轉(zhuǎn)換為五分制ifscore_int>=90:grade="A"elifscore_int>=80:grade="B"elifscore_int>=70:grade="C"elifscore_int>=60:grade="D"else:grade="F"#輸出結(jié)果print(f"五分制等級:{grade}")exceptValueErrorase:#處理不同類型的值錯誤if"invalidliteral"instr(e):print("錯誤:輸入的不是有效的整數(shù)")else:print(f"錯誤:{e}")(5)編寫一個Python程序,要求用戶輸入當前存款、每月存款額和房價,計算并輸出需要多少個月才能存夠錢買房。假設每月存款額固定,且不考慮利息。若輸入的不是數(shù)字,或者房價小于或等于0,則捕獲異常并輸出相應的錯誤信息。importmathtry:#獲取用戶輸入current_savings=float(input("請輸入當前存款(元):"))monthly_savings=float(input("請輸入每月存款額(元):"))house_price=float(input("請輸入房價(元):"))#驗證輸入合理性ifhouse_price<=0:raiseValueError("房價必須大于0")ifmonthly_savings<=0:raiseValueError("每月存款額必須大于0")#計算所需月數(shù)ifcurrent_savings>=house_price:months=0else:#計算需要多少個月(向上取整)months_needed=(house_price-current_savings)/monthly_savingsmonths=math.ceil(months_needed)#輸出結(jié)果ifmonths==0:print("恭喜!您已經(jīng)有足夠的存款買房。")else:print(f"您需要{months}個月才能存夠錢買房。")exceptValueErrorase:#處理輸入非數(shù)字的情況print(f"輸入錯誤:{e}")exceptZeroDivisionError:#處理除數(shù)為0的情況(雖然已檢查,但額外保護)print("錯誤:每月存款額不能為0")exceptExceptionase:#處理其他未預料到的異常print(f"發(fā)生未知錯誤:{e}")(6)編寫一個Python程序,要求用戶輸入一個月份數(shù)(正整數(shù)),計算并輸出該月份的兔子總數(shù)(假設從第1個月開始有一對新生兔子,每對兔子從第3個月開始每月均繁殖出一對新兔子)。若輸入的不是正整數(shù),則捕獲異常并輸出相應的錯誤信息。try:#獲取用戶輸入的月份month=int(input("請輸入月份數(shù)(正整數(shù)):"))#驗證輸入是否為正整數(shù)ifmonth<=0:raiseValueError("月份必須是正整數(shù)")#計算兔子總數(shù)ifmonth==1ormonth==2:rabbit_count=2else:#使用迭代計算斐波那契數(shù)列prev1=2#代表第1個月prev2=2#代表第2個月current=0#從第3個月開始迭代計算forminrange(3,month+1):current=prev1+prev2#當前月兔子數(shù)=前兩個月之和#更新前兩個月的值prev1=prev2prev2=currentrabbit_count=current#輸出結(jié)果print(f"第{month}個月的兔子總數(shù)為:{rabbit_count}只")exceptValueErrorase:#處理非整數(shù)輸入或負整數(shù)輸入if"invalidliteral"instr(e):print("輸入錯誤:必須輸入一個整數(shù)")else:print(f"輸入錯誤:{e}")(7)編寫一個Python程序,要求用戶輸入初始財富、年利率和年數(shù),計算并輸出各年末的財富列表。假設利息按年復利計算。若輸入的不是數(shù)字或年利率,且年數(shù)為負數(shù),則捕獲異常并輸出相應的錯誤信息。try:#獲取用戶輸入principal=float(input("請輸入初始財富:"))annual_rate=float(input("請輸入年利率(小數(shù)形式,如0.05表示5%):"))years=float(input("請輸入年數(shù):"))#驗證輸入合理性ifprincipal<0:raiseValueError("初始財富不能為負數(shù)")ifannual_rate<0:raiseValueError("年利率不能為負數(shù)")ifyears<0:raiseValueError("年數(shù)不能為負數(shù)")ifyears!=int(years):raiseValueError("年數(shù)必須是整數(shù)")#將年數(shù)轉(zhuǎn)換為整數(shù)years=int(years)#計算各年末財富列表wealth_list=[]foryearinrange(1,years+1):amount=principal*(1+annual_rate)**yearwealth_list.append(amount)#格式化輸出結(jié)果print("\n各年末財富列表:")foryear,wealthinenumerate(wealth_list,start=1):print(f"第{year}年末:{wealth:.2f}元")exceptValueErrorase:#處理輸入錯誤print(f"輸入錯誤:{e}")exceptExceptionase:#處理其他未預料到的異常print(f"發(fā)生錯誤:{e}")(8)編寫一個Python程序,要求用戶輸入雞、兔總頭數(shù)和總腳數(shù),計算并輸出雞和兔的數(shù)量。若輸入的不是整數(shù),或無法找到滿足條件的解,則捕獲異常并輸出相應的錯誤信息。try:#獲取用戶輸入的總頭數(shù)和總腳數(shù)heads=int(input("請輸入總頭數(shù):"))feet=int(input("請輸入總腳數(shù):"))#驗證輸入合理性ifheads<=0orfeet<=0:raiseValueError("頭數(shù)和腳數(shù)必須為正整數(shù)")#計算雞和兔的數(shù)量#設雞為x只,兔為y只#x+y=heads#2x+4y=feet#解得:y=(feet-2*heads)/2,x=heads-y#檢查是否有解iffeet<2*headsorfeet>4*heads:raiseValueError("無解:腳數(shù)必須在2倍頭數(shù)到4倍頭數(shù)之間")if(feet-2*heads)%2!=0:raiseValueError("無解:腳數(shù)必須是偶數(shù)")#計算兔子的數(shù)量rabbits=(feet-2*heads)//2#計算雞的數(shù)量chickens=heads-rabbits#驗證解的有效性ifrabbits<0orchickens<0:raiseValueError("無解:計算結(jié)果為負數(shù)")#驗證計算結(jié)果if2*chickens+4*rabbits!=feet:raiseValueError("無解:計算結(jié)果不滿足條件")#輸出結(jié)果print(f"雞有{chickens}只,兔有{rabbits}只")exceptValueErrorase:#處理輸入錯誤和無解情況if"invalidliteral"instr(e):print("錯誤:請輸入整數(shù)")else:print(f"錯誤:{e}")(9)編寫一個Python程序,隨機生成一個1~100范圍內(nèi)的整數(shù),用戶猜測這個整數(shù)。程序應提示用戶猜測是太高還是太低,直到用戶猜對為止。要求捕獲用戶輸入的非整數(shù)異常并輸出相應的錯誤信息。importrandom#生成1-100的隨機整數(shù)secret_number=random.randint(1,100)guess_count=0print("歡迎參加猜數(shù)字游戲!")print("我已經(jīng)想好了一個1到100之間的整數(shù),請開始你的猜測吧!")whileTrue:try:#獲取用戶猜測guess=input("請輸入你的猜測(1-100):")#嘗試轉(zhuǎn)換為整數(shù)guess_int=int(guess)guess_count+=1#驗證猜測范圍ifguess_int<1orguess_int>100:print("請輸入1到100之間的整數(shù)!")continue#檢查猜測結(jié)果ifguess_int<secret_number:print("太低了!再試一次。")elifguess_int>secret_number:print("太高了!再試一次。")else:print(f"恭喜你!你猜對了!正確答案是{secret_number}。")print(f"你一共猜了{guess_count}次。")breakexceptValueError:#處理非整數(shù)輸入print("錯誤:請輸入一個整數(shù)!")(1)編寫一個Python程序,定義factorial(n)函數(shù),計算并返回整數(shù)n的階乘,要求通過函數(shù)的遞歸調(diào)用實現(xiàn)。例如,factorial(5)的返回值為120。deffactorial(n):#驗證輸入為非負整數(shù)ifn<0:raiseValueError("階乘僅適用于非負整數(shù)")#基本情況:0!=1ifn==0:return1#遞歸情況:n!=n*(n-1)!returnn*factorial(n-1)#測試函數(shù)if__name__=="__main__":try:#獲取用戶輸入num=int(input("請輸入一個非負整數(shù):"))#計算階乘result=factorial(num)#輸出結(jié)果print(f"{num}!={result}")exceptValueErrorase:#處理無效輸入if"invalidliteral"instr(e):print("錯誤:請輸入一個整數(shù)")else:print(f"錯誤:{e}")(2)編寫一個Python程序,定義is_prime(n)函數(shù),判斷整數(shù)n是否為質(zhì)數(shù)。如果是質(zhì)數(shù),那么返回True,否則返回False。例如,is_prime(7)的返回值為True。importmathdefis_prime(n):#處理特殊情況ifn<2:returnFalse#小于2的數(shù)不是質(zhì)數(shù)ifn==2:returnTrue#2是質(zhì)數(shù)ifn%2==0:returnFalse#除2外的偶數(shù)不是質(zhì)數(shù)#檢查奇數(shù)因子#只需檢查到平方根范圍sqrt_n=int(math.isqrt(n))+1foriinrange(3,sqrt_n,2):ifn%i==0:returnFalsereturnTrue#測試函數(shù)if__name__=="__main__":try:#獲取用戶輸入num=int(input("請輸入一個整數(shù):"))#判斷是否為質(zhì)數(shù)result=is_prime(num)#輸出結(jié)果ifresult:print(f"{num}是質(zhì)數(shù)")else:print(f"{num}不是質(zhì)數(shù)")exceptValueError:print("錯誤:請輸入一個整數(shù)")exceptTypeErrorase:print(f"類型錯誤:{e}")(3)編寫一個Python程序,定義fibonacci(n)函數(shù),返回斐波那契數(shù)列的第

n

項。要求通過函數(shù)的遞歸調(diào)用實現(xiàn)。例如,fibonacci(6)的返回值為8。deffibonacci(n):#驗證輸入為非負整數(shù)ifn<0:raiseValueError("項數(shù)必須為非負整數(shù)")#基本情況ifn==0:return0#F(0)=0elifn==1:return1#F(1)=1#遞歸情況:F(n)=F(n-1)+F(n-2)returnfibonacci(n-1)+fibonacci(n-2)#測試函數(shù)if__name__=="__main__":try:#獲取用戶輸入n=int(input("請輸入斐波那契數(shù)列的項數(shù)(非負整數(shù)):"))#計算斐波那契數(shù)result=fibonacci(n)#輸出結(jié)果print(f"斐波那契數(shù)列的第{n}項是:{result}")exceptValueErrorase:#處理無效輸入if"invalidliteral"instr(e):print("錯誤:請輸入一個整數(shù)")else:print(f"錯誤:{e}")(4)編寫一個Python程序,定義sum_recursive(n)函數(shù),計算并返回1~n的整數(shù)和。例如,sum_recursive(5)的返回值為15。defsum_recursive(n):#驗證輸入為正整數(shù)ifn<1:raiseValueError("n必須為正整數(shù)")#基本情況:當n=1時,和為1ifn==1:return1#遞歸情況:和=n+(1到n-1的和)returnn+sum_recursive(n-1)#測試函數(shù)if__name__=="__main__":try:#獲取用戶輸入num=int(input("請輸入一個正整數(shù):"))#計算1到n的和result=sum_recursive(num)#輸出結(jié)果print(f"1到{num}的整數(shù)和為:{result}")exceptValueErrorase:#處理無效輸入if"invalidliteral"instr(e):print("錯誤:請輸入一個整數(shù)")else:print(f"錯誤:{e}")(5)編寫一個Python程序,使用filter()函數(shù)和Lambda表達式,從一個整數(shù)列表中過濾出所有偶數(shù)。例如,filter([1,2,3,4,5,6])的返回值為[2,4,6]。deffilter_even_numbers(numbers):#使用filter()和Lambda表達式過濾偶數(shù)even_numbers=list(filter(lambdax:x%2==0,numbers))returneven_numbers#測試函數(shù)if__name__=="__main__":#獲取用戶輸入input_str=input("請輸入一個整數(shù)列表(用空格分隔):")try:#將輸入字符串轉(zhuǎn)換為整數(shù)列表numbers=list(map(int,input_str.split()))#過濾偶數(shù)result=filter_even_numbers(numbers)#輸出結(jié)果print(f"過濾后的偶數(shù)列表:{result}")exceptValueError:print("錯誤:輸入無效,請確保所有元素都是整數(shù)")(6)編寫一個Python程序,定義reverse_string(s)函數(shù),返回字符串s的反轉(zhuǎn)結(jié)果。例如,reverse_string("hello")的返回值為"olleh"。defreverse_string(s):returns[::-1]#測試函數(shù)if__name__=="__main__":#獲取用戶輸入input_str=input("請輸入一個字符串:")#反轉(zhuǎn)字符串result=reverse_string(input_str)#輸出結(jié)果print(f"反轉(zhuǎn)后的字符串:{result}")(7)編寫一個Python程序,使用sorted()函數(shù)和Lambda表達式,對包含元組的列表按元組的第2個元素進行升序。例如,實參為[(1,3),(4,1),(2,2)],返回值為[(4,1),(2,2),(1,3)]。defsort_by_second_element(tuples_list):#使用sorted()和Lambda表達式按元組的第2個元素排序sorted_list=sorted(tuples_list,key=lambdax:x[1])returnsorted_list#測試函數(shù)if__name__=="__main__":#示例輸入input_list=[(1,3),(4,1),(2,2)]#排序result=sort_by_second_element(input_list)#輸出結(jié)果print(f"原始列表:{input_list}")print(f"按第二個元素排序后:{result}")5.4鞏固練習1.判斷火車票座位,我國高鐵二等座車座席采用2+3布置,每排設有“3+2”方式排列五個座位,以“A、B、C、D、F”代表,字母“A”和“F”的座位靠窗,字母“C”和“D”靠中間過道,“B”代表三人座中間座席。???????????????????????????用戶輸入一個數(shù)字和一個字母組成的合法的座位號,根據(jù)字母判斷位置是窗口、過道還是中間座席。例如:輸入:3A,輸出:3A是3排窗口。輸入:19C,輸出:19C是19排過道。代碼實現(xiàn):defjudge_seat_position(seat):#分離數(shù)字和字母row=''letter=''forcharinseat:ifchar.isdigit():row+=charelse:letter=char.upper()#確保字母是大寫#判斷字母ifletterin['A','F']:position='窗口'elifletterin['C','D']:position='過道'elifletter=='B':position='中間座席'else:return"輸入的座位號不合法"#返回結(jié)果returnf"{seat}是{row}排{position}"#測試示例:print(judge_seat_position("3A"))#輸出:3A是3排窗口print(judge_seat_position("19C"))#輸出:19C是19排過道print(judge_seat_position("5B"))#輸出:5B是5排中間座席????????????????????????????編寫一個Python程序,隨機生成一個1到100之間的整數(shù),然后讓用戶猜測這個數(shù)字。程序應提示用戶輸入的猜測是太高還是太低,直到用戶猜對為止。要求捕獲所有的用戶輸入、提示、結(jié)果。代碼實現(xiàn):importrandomdefguess_number_game():#生成1到100的隨機整數(shù)target=random.randint(1,100)print("已生成一個1到100之間的隨機整數(shù),請開始猜測!")guess_count=0#記錄猜測次數(shù)guesses=[]#記錄所有猜測和提示whileTrue:try:guess=int(input("請輸入你的猜測(1-100):"))guess_count+=1guesses.append(f"用戶輸入:{guess}")ifguess<1orguess>100:print("請輸入1到100之間的整數(shù)!")guesses.append("提示:輸入超出范圍")continueifguess<target:print("太低!")guesses.append("提示:太低")elifguess>target:print("太高!")guesses.append("提示:太高")else:print(f"恭喜你,猜對了!目標數(shù)字是{target}。")guesses.append(f"提示:正確,目標數(shù)字是{target}")breakexceptValueError:print("請輸入有效的整數(shù)!")guesses.append("提示:輸入無效")#打印所有輸入和提示print("\n===游戲記錄===")forentryinguesses:print(entry)print(f"總共猜測次數(shù):{guess_count}")#運行游戲guess_number_game()編寫一個Python程序,完成驗證碼判斷,驗證碼code='q3sE',網(wǎng)頁上顯示的校驗碼verification_code='Q3Se'。使用.lower()統(tǒng)一轉(zhuǎn)換為同類字母,校驗用戶輸入的驗證碼。如果輸入的字符串轉(zhuǎn)大寫后與驗證碼相同,打印“驗證碼正確”,反之打印“驗證碼錯誤”。解:python#預設的驗證碼和校驗碼code='q3sE'verification_code='Q3Se'#去除空格并轉(zhuǎn)換為大寫processed_code=code.strip().upper()processed_verification=verification_code.strip().upper()#獲取用戶輸入user_input=input("請輸入驗證碼(不區(qū)分大小寫,忽略首尾空格):")#處理用戶輸入processed_input=user_input.strip().upper()#比較并輸出結(jié)果ifprocessed_input==processed_code:print("驗證碼正確")else:print("驗證碼錯誤")編寫一個Python程序,去除字符串的首尾的空白字符,校驗用戶輸入的驗證碼。用戶輸入的驗證碼inputcode="python",驗證碼imagecode="PyThOn"。去掉輸入字符串的首尾的空白字符,并轉(zhuǎn)換為大寫(或小寫)。如果輸入的字符串與驗證碼相同,打印“驗證碼正確”,反之打印“驗證碼錯誤”。解:python#預設的驗證碼imagecode="PyThOn"#獲取用戶輸入inputcode=input("請輸入驗證碼:")#去除首尾空格并轉(zhuǎn)換為大寫processed_input=inputcode.strip().upper()processed_image=imagecode.strip().upper()#比較并輸出結(jié)果ifprocessed_input==processed_image:print("驗證碼正確")else:print("驗證碼錯誤")#打印實際比較的字符串(可選)print(f"實際比較:'{processed_input}'和'{processed_image}'")編寫一個Python程序,用戶輸入字符串2024/03/15,請分別獲取年月日。解:#獲取用戶輸入的日期date_str=input("請輸入日期(格式:YYYY/MM/DD):")try:#分割字符串并轉(zhuǎn)換為整數(shù)year,month,day=map(int,date_str.split('/'))#驗證年月日范圍ifyear<1ormonth<1ormonth>12orday<1orday>31:raiseValueError("日期超出有效范圍")#打印結(jié)果print(f"年:{year}")print(f"月:{month:02d}")#保持兩位數(shù)格式print(f"日:{day:02d}")exceptValueErrorase:print(f"輸入錯誤:{e}")編寫一個Python程序,統(tǒng)計并打印‘編程'在文本text中出現(xiàn)的次數(shù),text="我喜歡編程,編程很有趣,我每天都在編程。"解:

Pythontext="我喜歡編程,編程很有趣,我每天都在編程。"count=text.count('編程')print(f"'編程'出現(xiàn)的次數(shù):{count}")輸出:text'編程'出現(xiàn)的次數(shù):35.編寫一個Python程序,在配置文件中查找是否有密碼子串。測試文本如下:configText="""[Database]Host=localhostPort=3306Username=rootadminPassword=admin123"""解:importreconfigText="""[Database]Host=localhostPort=3306Username=rootadminPassword=admin123"""ifre.search(r'password\s*=',configText,re.IGNORECASE):print("配置文件中包含密碼字段")else:print("配置文件中未找到密碼字段")6.編寫一個Python程序,檢查輸入的數(shù)是否是水仙花數(shù)。水仙花數(shù)(Narcissisticnumber)是指一個3位數(shù),它的每個數(shù)位上的數(shù)字的3次冪之和等于它本身。例如:1^3+5^3+3^3=153,153是水仙花數(shù)。解:num=input("請輸入一個3位數(shù):")ifnum.isdigit()andlen(num)==3:num=int(num)ifsum(int(d)**3fordinstr(num))==num:print(f"{num}是水仙花數(shù)")else:print(f"{num}不是水仙花數(shù)")else:print("輸入錯誤:請輸入一個3位正整數(shù)!")7.編寫一個Python程序,用戶輸入一個字符串,分別統(tǒng)計其中小寫字母、大寫字母、數(shù)字、空格和其他字符的個數(shù),并在一行內(nèi)輸出小寫字母、大寫字母、各類表示的數(shù)字、空格和其他字符的個數(shù)。測試字符串如:“TheJapaneseattackonPearlHarbor1941.一九四一年十二月七日清晨,日本海軍襲擊珍珠港?!苯猓簍ext=input("請輸入字符串:")lower=upper=digit=space=other=0forcharintext:ifchar.islower():lower+=1elifchar.isupper():upper+=1elifchar.isdigit():digit+=1elifchar.isspace():space+=1else:other+=1print(f"{lower}{upper}{digit}{space}{other}")#純數(shù)字輸出,適用于機器處理練習1.請編寫程序,計算0-9中每個數(shù)的立方,存儲于列表中輸出。例如原列表:[0,1,2,3,4,5,6,7,8,9],推導出新列表:[0,1,8,27,64,125,216,343,512,729]。解:print([num**3fornuminrange(10)])輸出:text[0,1,8,27,64,125,216,343,512,729]練習2.freshfruit=['banana','apple','pear'],請編寫程序調(diào)用strip()方法去除每個元素前后的空字符,返回['banana','apple','pear']。解:freshfruit=['banana','apple','pear']print([fruit.strip()forfruitinfreshfruit])輸出:text['banana','apple','pear']練習3.scorels=[94,89,88,92,86,69,95,78,85],請編寫程序去除成績列表中的最低分,并排序輸出。解:scorels=[94,89,88,92,86,69,95,78,85]cleaned_scores=[xforxinscorelsifx!=min(scorels)]print(sorted(cleaned_scores))輸出:text[78,85,86,88,89,92,94,95]練習4.scorels=[92,86,69,95,78,85],請編寫程序在原來的成績列表中,加入4個新數(shù)據(jù)a,b,c,d=99,88,77,66,請分別用不同的方法,添加元素。方法有+=、append()、extend()、insert()。解:#原始列表scorels=[92,86,69,95,78,85]a,b,c,d=99,88,77,66#方法1:+=運算符scorels1=scorels.copy()scorels1+=[a,b,c,d]print("+=方法結(jié)果:",scorels1)#方法2:append()方法scorels2=scorels.copy()fornumin[a,b,c,d]:scorels2.append(num)print("append()方法結(jié)果:",scorels2)#方法3:extend()方法scorels3=scorels.copy()scorels3.extend([a,b,c,d])print("extend()方法結(jié)果:",scorels3)#方法4:insert()方法scorels4=scorels.copy()fori,numinenumerate([a,b,c,d],start=6):scorels4.insert(i,num)print("insert()方法結(jié)果:",scorels4)練習5.請編寫程序,訪問嵌套列表scores=[['羅明',95],['金川',85],['戈揚',80],['羅旋',78],['蔣維',99]]的成員,提取第三行第二列的數(shù)據(jù)。解:scores=[['羅明',95],['金川',85],['戈揚',80],['羅旋',78],['蔣維',99]]print("戈揚的成績是:",scores[2][1])輸出:text戈揚的成績是:80練習6.ls=[['王龍','84'],['梁龍','96'],['劉雪','72'],['劉君','95'],['張偉','86'],['李莉','92'],['吳明','65']]提取成績95分及以上的學生姓名。解:ls=[['王龍','84'],['梁龍','96'],['劉雪','72'],['劉君','95'],['張偉','86'],['李莉','92'],['吳明','65']]print("高分學生:",[nameforname,scoreinlsifint(score)>=95])輸出:text高分學生:['梁龍','劉君']練習7.成績數(shù)據(jù)列表ls=['100','10','9','97','77','57','15'],編寫程序,將成績數(shù)據(jù)列表分別進行升序和降序排列,并輸出結(jié)果。要點,先將字符串轉(zhuǎn)換為整型,再嘗試用列表方法ls.sort()進行。解:ls=['100','10','9','97','77','57','15']int_ls=list(map(int,ls))#轉(zhuǎn)為整數(shù)列表int_ls.sort()print("升序:",int_ls)int_ls.sort(reverse=True)print("降序:",int_ls)練習8.按字符串長度來排序(內(nèi)置函數(shù)len()可以求字符串的長度)。原列表:['app','Apple','at','AM']。按字符串長度排序后列表:['at','AM','app','Apple']。解:original_list=['app','Apple','at','AM']sorted_list=sorted(original_list,key=len)print("排序后的列表:",sorted_list)輸出:排序后的列表:['at','AM','app','Apple']練習9.s=['73','13','9','82','6','5','04'],通過賦值創(chuàng)建元素為字符串的列表s,輸出列表原始元素['73','13','9','82','6','5','04'];將列表元素反向排列并輸出修改過的列表['04','5','6','82','9','13','73']。解:s=['73','13','9','82','6','5','04']#輸出原始列表print("原始列表:",s)#方法1:reverse()方法s_copy=s.copy()#創(chuàng)建副本以免修改原列表s_copy.reverse()print("方法1-反向排列:",s_copy)#方法2:切片方法reversed_s=s[::-1]print("方法2-反向排列:",reversed_s)#驗證原列表未被修改print("原列表未被修改:",s)(1)假設已在文本分類任務中收集到一批描述文檔主題的關(guān)鍵字列表,該列表中存在重復詞匯。請使用集合對這些關(guān)鍵字進行去重,并輸出去重后的關(guān)鍵字。關(guān)鍵字列表為["人工智能","機器學習","人工智能","深度學習","機器學習"]。答:keywords=["人工智能","機器學習","人工智能","深度學習","機器學習"]unique_keywords=list(set(keywords))print(unique_keywords)(2)假設在圖像標注任務中有兩個集合中分別存儲了不同人員標注的圖像標簽。請將這兩個集合合并,并去除重復標簽,輸出合并及去重后的標簽。兩個集合分別為{"貓","狗","鳥"}和{"狗","兔子","貓"}。答:#定義兩個集合set1={"貓","狗","鳥"}set2={"狗","兔子","貓"}#合并兩個集合merged_set=set1.union(set2)#輸出合并及去重后的標簽集合print(merged_set)(3)假設在訓練一個神經(jīng)網(wǎng)絡模型時使用字典存儲模型的超參數(shù),包括學習率(learning_rate)、批次大小(batch_size)、訓練輪數(shù)(num_epochs)等?,F(xiàn)在需要修改學習率為0.0001,并添加一個新的超參數(shù)正則化系數(shù)(regularization_coefficient)為0.01。請完成對字典的修改和添加操作,并輸出修改后的字典。初始字典為{"learning_rate":0.001,"batch_size":32,"num_epochs":10}。答:#初始字典hyperparameters={"learning_rate":0.001,"batch_size":32,"num_epochs":10}#修改學習率hyperparameters["learning_rate"]=0.0001#添加新的超參數(shù)正則化系數(shù)hyperparameters["regularization_coefficient"]=0.01#輸出修改后的字典print(hyperparameters)(4)假設在情感分析任務中使用字典記錄不同文本的情感傾向及對應的數(shù)量,鍵為情感傾向,值為該情感傾向的文本數(shù)量。現(xiàn)在需要從字典中刪除中性情感傾向的記錄,并輸出刪除后的字典。初始字典為{"正面":50,"負面":30,"中性":20}。答:#定義初始字典sentiment_dict={"正面":50,"負面":30,"中性":20}#刪除中性情感傾向的記錄if"中性"insentiment_dict:delsentiment_dict["中性"]#輸出刪除后的字典print(sentiment_dict)(5)假設在圖像識別模型評估中使用字典存儲不同評估指標及對應的值,如準確率(accuracy)、召回率(recall)、F1值(f1_score)等。請按評估指標對應的值從高到低對字典進行排序,并輸出排序結(jié)果。初始字典為{"accuracy":0.85,"recall":0.8,"f1_score":0.82}。答:#初始字典evaluation_metrics={"accuracy":0.85,"recall":0.8,"f1_score":0.82}#將字典的鍵值對轉(zhuǎn)換為元組列表sorted_metrics=sorted(evaluation_metrics.items(),key=lambdaitem:item[1],reverse=True)#將排序后的列表轉(zhuǎn)換為字典sorted_dict=dict(sorted_metrics)#輸出排序結(jié)果print(sorted_dict)(1)編寫一個Python程序,從data.csv文件中讀取學生數(shù)據(jù),該文件中包含兩列:姓名和成績。要求計算平均分(保留兩位小數(shù)),并將結(jié)果寫入average.txt文件中。假設data.csv文件的內(nèi)容如下。姓名,成績Alice,84Bob,90此時,average.txt文件中應包含87。答案:importcsvdefcalculate_average_score(input_file,output_file):total_score=0count=0withopen(input_file,mode='r',encoding='utf-8')asfile:reader=csv.reader(file)next(reader)#跳過標題行forrowinreader:score=int(row[1])#成績在第二列total_score+=scorecount+=1average_score=total_score/countwithopen(output_file,mode='w',encoding='utf-8')asfile:file.write(f"{average_score:.2f}")#調(diào)用函數(shù),指定輸入文件和輸出文件calculate_average_score('data.csv','average.txt')(2)編寫一個Python程序,從students.json文件中讀取學生數(shù)據(jù),該文件中包含一個學生列表,每條學生數(shù)據(jù)均是一個字典,包含"name"和"age"兩個鍵。要求計算所有學生的平均年齡(保留兩位小數(shù)),并將結(jié)果寫入average_age.txt文件中。假設students.json文件的內(nèi)容如下。[{"name":"Alice","age":20},{"name":"Bob","age":22},{"name":"Charlie","age":23}]此時,average_age.txt文件中應包含21.67。答案:importjsondefcalculate_average_age(input_file,output_file):total_age=0count=0withopen(input_file,mode='r',encoding='utf-8')asfile:students=json.load(file)forstudentinstudents:total_age+=student['age']count+=1average_age=total_age/countwithopen(output_file,mode='w',encoding='utf-8')asfile:file.write(f"{average_age:.2f}")#調(diào)用函數(shù),指定輸入文件和輸出文件calculate_average_age('students.json','average_age.txt')(3)編寫一個Python程序,從"log.txt文件中讀取日志,該文件中包含多行日志,每行日志的格式均如[YYYY-MM-DDHH:MM:SS]message要求提取所有日志中的時間戳,并將其按從早到晚的順序?qū)懭雝imestamps.txt文件中,每行均表示一個時間戳。假設log.txt文件的內(nèi)容如下。[2025-01-0112:00:00]Serverstarted[2025-01-0113:00:00]Userloggedin[2024-12-3123:59:59]Systemcheckcompleted此時timestamps.txt文件中應包含如下內(nèi)容。2022-12-3123:59:592023-01-0112:00:002023-01-0113:00:00答案:importredefextract_and_sort_timestamps(input_file,output_file):timestamps=[]withopen(input_file,mode='r',encoding='utf-8')asfile:forlineinfile:#使用正則表達式匹配時間戳match=re.match(r'\[(.*?)\]',line)ifmatch:timestamp_str=match.group(1)timestamps.append(timestamp_str)#按時間戳排序(這里假設時間戳格式總是有效且能正確排序)timestamps.sort()#注意:題目示例中的輸出時間戳年份有誤(2022和2023應為2024和2025),這里按實際提取的時間戳排序withopen(output_file,mode='w',encoding='utf-8')asfile:fortimestampintimestamps:file.write(f"{timestamp}\n")#調(diào)用函數(shù),指定輸入文件和輸出文件extract_and_sort_timestamps('log.txt','timestamps.txt')10.11鞏固練習1.類與對象的定義和使用定義個人類(Person),該類中包含name(姓名)屬性、age(年齡)屬性和gender(性別)屬性,以及一個用于顯示個人信息的方法;創(chuàng)建Person類的實例,并調(diào)用該方法顯示個人信息。classPerson:def__init__(self,name,age,gender):=nameself.age=ageself.gender=genderdefdisplay_info(self):print(f"姓名:{},年齡:{self.age},性別:{self.gender}")#創(chuàng)建Person類的實例,并調(diào)用方法顯示個人信息person=Person("張三",30,"男")person.display_info()2.屬性的定義和修改定義汽車類。該類中包含make(品牌)屬性、model(型號)屬性和price(價格)屬性;創(chuàng)建汽車類的實例,修改其price屬性,并輸出修改后的價格。classCar:def__init__(self,make,model,price):self.make=makeself.model=modelself.price=price#創(chuàng)建汽車類的實例car=Car("Toyota","Camry",25000)#修改price屬性car.price=28000#輸出修改后的價格print(f"修改后的價格:{car.price}")3.方法的定義和使用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論