python课设代码_python课程编程题汇总(上)
python編程題匯總
眾所周知,由于疫情的原因,大家都在上網課,我也不例外啦~
用這個貼子來記錄也和大家分享一下我們課上的編程討論題
中篇在此→python課程編程題匯總(中)
下篇在此→python課程編程題匯總(下)
1、貨幣轉換
編寫貨幣轉換程序
描述:
人民幣和美元是世界上通用的兩種貨幣之一,寫一個程序進行貨幣間幣值轉換,其中:
人民幣和美元間匯率固定為:1美元 = 6.78人民幣。
程序可以接受人民幣或美元輸入,轉換為美元或人民幣輸出。人民幣采用RMB表示,美元USD表示,符號和數值之間沒有空格。
注意:獲得輸入請使用input()
MoneyStr = input("請輸入帶有符號的數值:")
if MoneyStr[-1] in['B','b']:
USD=eval(MoneyStr[0:-3])/6.78
print("轉換后的金額為{:.2f}USD".format(USD))
elif MoneyStr[-1] in['D','d']:
RMB=eval(MoneyStr[0:-3])*6.78
print("轉換后的金額為{:.2f}RMB".format(RMB))
else:
print("輸入格式錯誤")
2、超市買蘋果
需求:收營員輸入蘋果價格單位為元/斤,用戶購買蘋果的重量,單位為斤,計算并且輸出付款金額
注意:用戶輸入用input()函數
轉換函數int(x)、float(x)
DJ = eval(input("請輸入蘋果單價(元/斤):"))
ZL = eval(input("請輸入蘋果重量(斤):"))
print("付款金額為:{:.2f}".format(DJ*ZL))
3、隨機數的產生
編寫程序:
隨機產生一個8位數,每位數字可以是1到6中的任意一個整數
提示:查閱random庫使用,字符串拼接作用
>>> import random
>>> for i in range(8):
a=random.randint(1,6)
print(a,end='')
4、字符串截取
思考與練習
str = ‘hellopython’
1、截取第一位到第四位的字符
2、截取第二位到第八位之前的字符
3、截取字符串的全部字符
4、截取第六個字符到結尾
5、截取從頭開始到倒數第五個字符之前
6、截取第三個字符
7、截取倒數第一個字符
8、逆序截取
9、截取倒數第三位與倒數第一位之前的字符
10、截取倒數第三位到結尾
11、逆序截取,步長為3
>>> str = 'hellopython'
>>> str[0:4]
'hell'
>>> str[1:7]
'ellopy'
>>> str[:]
'hellopython'
>>> str[5:]
'python'
>>> str[:-5]
'hellop'
>>> str[2]
'l'
>>> str[-1]
'n'
>>> str[::-1]
'nohtypolleh'
>>> str[-3:-1]
'ho'
>>> str[-3:]
'hon'
>>> str[::-3]
'ntoe'
5、表達式計算
>>>a=2
>>>b=4
>>>x=6
>>>y=5
>>>c=1
>>>e=2.759
>>>import math
>>>(math.sin(a)+math.sin(b))/(a+b)
0.025415821919625586
>>> 1/3*((a**3+b**3+c**3)**(1/3))
1.3931130654604105
>>> (e**abs(x-y))/(3**x+(6**0.5)*math.sin(y))
0.03128093849812538
6、寫出表達式
按要求寫出Python表達式。
(1)將整數k轉換成實數。
(2)求實數x的小數部分。
(3)求正整數m的個、十、百位數字。
//1
float(k)
//2
x-int(x)
//3
m%10 //個位
m%100//10 //十位
m%1000//100 //百位
7、if-elif-else多分支結構
思考與練習
利用if-elif-else多分支結構
用戶輸入一個x的值,編寫一段程序,利用format輸出x和分段函數的值
x=eval(input("請輸入x:"))
if x>2:
y=4*x-5
elif -1<=x and x<=2:
y=x*x+3
else :
y=-x+10
print("x為{0:.2f},得分段函數的值y={1:.2f}".format(x,y))
8、if-else 二分支結構
思考與練習
利用if-else 二分支結構編寫程序
輸入三條邊長如果能構成三角形就計算周長和面積
a=eval(input("請輸入a邊邊長:"))
b=eval(input("請輸入b邊邊長:"))
c=eval(input("請輸入c邊邊長:"))
triangle=(a+b)>c and (a+c)>b and (b+c)>a and abs(a-b)
if triangle:
C=a+b+c
p=C/2
S=(p*(p-a)*(p-b)*(p-c))**0.5
print("可構成三角形,該三角形的周長為{0:.2f},面積為{1:.2f}".format(C,S))
else:
print("不可構成三角形")
9、蒙特卡羅方法
思考
1、 蒙特卡羅方法的基本思想是什么?
2、 如何利用蒙特卡羅方法求解π?
//1.基本思想:利用概率模型及隨機過程解決一系列實際問題。
//2.構造一個單位正方形和一個單位圓的1/4,計算機隨機產生兩個0-1之間的數作為
//點的橫縱坐標,從點到原點的距離判斷是否在圓內,統計落在1/4圓的個數以及落在
//單位正方形的個數,二者相除再乘以四得到最終結果為 π。
from random import random
from time import perf_counter
DARTS=1000*1000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
(x,y=random(),random())
dist=pow(x**2+y**2,0.5)
if dist<=1.0:
hits=hits+1
pi=4*(hits/DARTS)
print("圓周率的值是:{}".format(pi))
print("運行時間是:{:.5f}s".format(perf_counter()-start))
10、常見的異常錯誤
列舉一些常見的異常錯誤
1、SystemExit:解釋器請求退出
2、Keyboardlnterrupt:用戶請求中斷執行(通常輸入Ctrl + C)
3、Stoplteration:迭代器沒有更多的值
4、StandardError:所有的內建標準異常的基類
5、GeneratorExit:生成器(generator)發生異常來通知退出
6、ArithmeticError:所有數值計算錯誤的基類
7、FloatingPointError:浮點數計算錯誤
8、OverflowError:數值運算超出最大限制
9、ZeroDivisionError:除零錯誤
10、AssertionError :斷言語句失敗
11、AttributeError:對象沒有這個屬性
12、EOFError:沒有內建輸入,到達EOF標記
13、EnvironmentError:操作系統錯誤的基類
14、IOError:輸入/輸出操作失敗
15、OSError:操作系統錯誤
16、WindowsError:系統調用錯誤
17、ImportError:導入模塊/對象失敗
18、LookupError:無效數據查詢的基類
19、IndexError:序列中沒有此索引(index)
20、KeyError:映射中沒有這個鍵
21、MemorryError:內存溢出錯誤
22、NameError:未聲明/初始化對象(沒有屬性)
23、UnboundLocalError :訪問未初始化的本地變量
24、ReferenceError:弱引用(weak reference)試圖訪問已經回收的對象
25、RuntimeError:一般運行時錯誤
26、NotlmplementedError:尚未實現的方法
27、SyntaxError:python語法錯誤
28、IndentationError:縮進錯誤
29、TabError:Tab和空格混用
30、SystemError:一般解釋器系統錯誤
31、TypeError:對類型無效的操作
32、ValueError:傳入無效的參數
33、UnicodeError:Unicode相關的錯誤
34、UnicodeDecodeError:Unicode 解碼時錯誤
35、UnicodeEncodeError:Unicode 編碼時錯誤
36、UnicodeTranslateError :Unicode轉換時錯誤
11、if中判斷的條件
思考與討論
if中判斷的條件是否只有bool類型表達式?能否是str類型,或者其他?
不是,可以是任意數值,例如list類型、str類型、set類型、dict類型,但編譯系統會把這個表達式強制轉成邏輯值
12、循環輸出等腰三角形
使用循環輸出等腰三角形,打印下面圖形
for i in range(1,5):
for j in range(4-i):
print(" ",end="")
for a in range(2*i-1):
print("*",end="")
print("\n")
13、猴子吃桃問題
思考與練習
猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不過癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少?
要求:利用遞歸編寫代碼
N=10
n=0
def taozi(n):
n=(n+1)*2
return n
for i in range(N):
if i==0:
n=1
else:
n=taozi(n)
print("第一天摘了{}個桃子".format(n))
14、九九乘法表
思考與練習
利用for循環語句 打印輸出九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print("{}*{}={}".format(i,j,i*j),end=" ")
print("\n")
15、實例“身體質量指數BMI”討論
思考與討論
1、 觀察實例5.1或5.2中的條件區間范圍劃分,思考劃分的規則是什么?
2、 觀察實例代碼5.1中的第8行和第10行,思考為何代碼不按照注釋方式寫全變量的最小邊界?
3、 Python中判斷條件24<=28<25是否合法?其值是什么?
4、 實例代碼5.1中第2行最后的反斜杠\有什么作用?
1、5.1是分別根據不同的范圍標準來劃分,一個是國際BMI標準,一個是國內的標準;5.2是將兩個標準整理后,編寫在同一個程序中的。
2、因為第一個判斷條件中“bmi=18.5不是偏瘦,所以當程序運行時,第一個判斷為Falses時,可得此時的bmi>=18.5,就會進入到第二個判斷條件“bmi<25”,此時的判斷條件就相當于是“18.5<=bmi<25”;第10行同理。
3、合法,值為False
4、作用是分行,避免一行代碼過長
16、各種循環的應用場景
思考與討論
單分支(if語句)、二分支(if-else語句)、多分支(if-elif-else)、if嵌套的應用場景?
1、單分支語句一般應用于只有一個選項,滿足條件時執行,不滿足則不執行的場景
2、二分支語句一般應用于有兩個方案,選擇其中一種執行的場景
3、多分支語句則一般應用于多條件分類執行的場景,如”對不同分數分級的問題“
4、if嵌套語句一般應用于一個條件判斷完后還需判斷條件的問題場景
17、進度條反映了軟件的執行速度,請思考并給出至少2種提高軟件執行速度的方法。
1.盡可能優化算法
2.善于使用函數,使程序變的模塊化
等等
18、猜數字游戲
預設一個0-9之間的整數,讓用戶通過鍵盤輸入所猜的數字,如果大于預設的數,顯示“遺憾,太大了”;小于預設的數,顯示“遺憾,太小了”,如此循環,知道猜中該數,顯示“預測N次,你猜中了!”,其中N是用戶輸入數字的次數。
import random as r
n=r.randint(0,9)
t=eval(input("請輸入你猜測的數字:"))
count=0
while(n!=t):
if t>n:
print("遺憾,太大了")
count=count+1
else:
print("遺憾,太小了")
count=count+1
t=eval(input("請輸入你猜測的數字:"))
print("預測{}次,你猜中了!".format(count))
19、猜數字游戲2.0
讓計算機能夠隨機產生一個預設數字,范圍在0-100之間,其他游戲規則不變。
要求將代碼封裝到函數中。
def caishuzi():
import random as r
n=r.randint(0,100)
t=eval(input("請輸入你猜測的數字:"))
count=0
while(n!=t):
if t>n:
print("遺憾,太大了")
count=count+1
else:
print("遺憾,太小了")
count=count+1
t=eval(input("請輸入你猜測的數字:"))
print("預測{}次,你猜中了!".format(count))
caishuzi()
20、貨幣轉換2.0
匯率計算問題
人民幣和美元間匯率固定為:1美元 = 6.78人民幣
格式要求:20USD 或20RMB
增加如下新功能,完成編寫程序
功能1:根據輸入判斷是人民幣還是美元,進行相應的轉換計算
功能2:程序可以一直運行,直到用戶選擇退出
while(True):
MoneyStr=input("請輸入帶有符號(UBD或RMB)的數值(break)退出:")
if MoneyStr=="break":
break
elif MoneyStr[-1] in ['B','b']:
print("輸入貨幣為人民幣")
USD=eval(MoneyStr[0:-3])/6.78
print("轉換后的金額為{:.2f}USD".format(USD))
elif MoneyStr[-1] in ['D','d']:
print("輸入貨幣為美元")
RMB=eval(MoneyStr[0:-3])*6.78
print("轉換后的金額為{:.2f}RMB".format(RMB))
else:
print("輸入的格式錯誤")
以上只是我個人解法和理解,如果有不同的想法歡迎大家一起討論~
都看到這里了,給我點個贊唄~
總結
以上是生活随笔為你收集整理的python课设代码_python课程编程题汇总(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录一下alibaba cloud b
- 下一篇: python 字符串 4位一组_Pyth