基础Python练习题(附答案)
1.为输入的成绩划分等级输入一个百分制成绩,输出等级A、B、C、D、E,其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
要求:
- 用if语句实现;
- 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
a=eval(input("请输入成绩:")) #eval() 函数用来执行一个字符串表达式,并返回表达式的值。
if a<0 or a>100 or a%1!=0:
print("您输入的成绩不合理,请重新输入")
elif 90<=a<=100:
print("成绩为A")
elif 80<=a<=89:
print('成绩为B')
elif 70<=a<=79:
print('成绩为C')
elif 60<=a<=69:
print("成绩为D")
else:
print("成绩为E")
运行结果:
请输入成绩:100 成绩为A
请输入成绩:10 成绩为E
请输入成绩:110 您输入的成绩不合理,请重新输入2.购物卡案例
小明单位发了30元的购物卡,小明到超市买三类洗化用品:洗发水15元、香皂2元、牙刷5元。要把30元正好花掉,有哪些购买组合?
a=30
n=a//15 #返回商的整数部分
for i in range(n,-1,-1): #i=2,1,0
m=(a-i*15)//5 #m=0,3,6
for j in range(m,-1,-1): #j=0; 3,2,1,0; 6,5,4,3,2,1,0
k=(a-i*15-j*5)//2
if (a-i*15-j*5)%2==0:
print('可选择的购买组合:tt购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。'.format(i,j,k))
运行结果:
可选择的购买组合: 购买洗发水 2 瓶,香皂 0 块,牙刷 0个。 可选择的购买组合: 购买洗发水 1 瓶,香皂 3 块,牙刷 0个。 可选择的购买组合: 购买洗发水 1 瓶,香皂 1 块,牙刷 5个。 可选择的购买组合: 购买洗发水 0 瓶,香皂 6 块,牙刷 0个。 可选择的购买组合: 购买洗发水 0 瓶,香皂 4 块,牙刷 5个。 可选择的购买组合: 购买洗发水 0 瓶,香皂 2 块,牙刷 10个。 可选择的购买组合: 购买洗发水 0 瓶,香皂 0 块,牙刷 15个。3.猜数游戏
首先由计算机产生一个[1,100]之间的随机整数,然后由用户猜测这个随机数。根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won !”,游戏结束。用户最多可以猜4次,如果4次均未猜中,则显示“You lost !”,并给出正确答案,游戏结束。游戏结束后,询问用户是否继续游戏,选择“Y”则开始新的一轮游戏;选择“N”则退出游戏。
chose = 'y'
while chose=='Y' or chose=='y':
import random #导入python提供的random库
num = random.randint(1,100)
#randint产生的随机数包含左右极限,即包含1和100;而randrange产生的随机数区间只包含左极限
def judge(b): #define定义一个judge函数
if b == num:
return 1
else:
return 0
for i in range(1,5): #i=1,2,3,4
b=eval(input('请输入您第{}次所猜的整数:'.format(i)))
if judge(b)==1:
print("You won !")
break
elif b > num:
print("high")
elif b < num:
print("low")
if judge(b)==0:
print("You lost !")
chose=input('请输入Y(y)继续进行游戏,N(n)退出游戏:')
while chose != 'Y' and chose != 'y' and chose != 'N' and chose != 'n':
print('输入有误,请重新输入Y(y)继续进行游戏,N(n)退出游戏:',end = '')
#print默认是打印一行,结尾加换行。end=' '意思是末尾不换行,加空格
chose=input()
输出:
请输入您第1次所猜的整数:50 You won ! 请输入Y(y)继续进行游戏,N(n)退出游戏:y 请输入您第1次所猜的整数:10 low 请输入您第2次所猜的整数:30 low 请输入您第3次所猜的整数:50 high 请输入您第4次所猜的整数:45 high You lost ! 请输入Y(y)继续进行游戏,N(n)退出游戏:4.篮球比赛案例
篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。
算法描述:
- 获取领先的分数 ,减去3分;
- 如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);
- 计算平方后的结果;
- 如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。
请编写程序实现上述算法的功能,并给出运行结果。
grade=eval(input('请输入领先分数:'))
time=eval(input('请输入剩余时间:'))
t=grade-3
w=input('目前是否为领先队控球(Y or N):')
if w == 'Y' or w == 'y':
g=(t+0.5)**2 #**”表示幂运算,例如“2**3”表示2的三次方
else:
g=t-0.5
if g<=0:
g=0
g=g**2
if g>time:
print('领先是“安全”的')
else:
print('领先是“不安全”的')
输出:
请输入领先分数:10 请输入剩余时间:9 目前是否为领先队控球(Y or N):y 领先是“安全”的



