1.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:1)用if语句实现;2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
1 try: 2 a=int(input()) 3 if 0<=a<=100: 4 if 90<=a<=100: 5 print('A') 6 elif 80<=a<90: 7 print('B') 8 elif 70<=a<80: 9 print('C') 10 elif 60<=a<70: 11 print('D') 12 else: 13 print('E') 14 else: 15 print('error') 16 except Exception as e: 17 print(e)
2.篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。
算法描述:1)获取领先的分数 ,减去3分;2)如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);3)计算平方后的结果;4)如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。请编写程序实现上述算法的功能,并给出运行结果。
1 try: 2 a=float(input('领先的分数:'))-3 3 b=input('目前是领先队控球吗? yes/no:') 4 while b!='yes' and b!='no': 5 b=input('目前时领先队控球吗? yes/no:') 6 c=float(input('当前比赛剩余的秒数:')) 7 if b=='yes': 8 a+=0.5 9 else: 10 a-=0.5 11 if a<0: 12 a=0 13 if a**2>c: 14 print('安全') 15 else: 16 print('不安全') 17 except Exception as e: 18 print(e)
3.根据,求:
(1) y<3时的最大n值。
(2)与(1)的n值对应的y值。
1 def fun(n): 2 a=0.0 3 for i in range(1,2*n+1,2): 4 a+=1/i 5 return a 6 7 n=1 8 y=fun(n) 9 while y<3: 10 n+=1 11 y=fun(n) 12 n-=1 13 print(n) 14 print(fun(n))
4.小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。
要把100元正好花掉,可有哪些购买组合?
1 import math 2 3 total=100 4 a=15 5 c=5 6 b=2 7 res=[] 8 for i in range(math.floor(total/a),-1,-1): 9 for j in range(0,math.floor(total/c)): 10 for k in range(0,math.floor(total/b)): 11 if total==a*i+c*j+b*k: 12 res.append([i,k,j]) 13 for i in range(len(res)): 14 print('洗发水{0}个,香皂{1}个,牙刷{2}个'.format(res[i][0],res[i][1],res[i][2]))
5.设计一个猜数游戏。首先由计算机产生一个[1,100]之间的随机整数,然后由用户猜测所产生的随机数。根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won !”,游戏结束。用户最多可以猜7次,如果7次均未猜中,则显示“You lost !”,并给出正确答案,游戏结束。游戏结束后,询问用户是否继续游戏,选择“Y”则开始一轮新的猜数游戏;选择“N”则退出游戏。
1 import random 2 3 def fun(n): 4 flag=random.randint(1,100) 5 for _ in range(n): 6 try: 7 number=int(input()) 8 if number>flag: 9 print('High') 10 elif number<flag: 11 print('Low') 12 else: 13 return True 14 except Exception as e: 15 print(e) 16 return False 17 return False 18 19 if __name__ == "__main__": 20 print("猜数字,1-100") 21 while True: 22 if fun(7): 23 print('You won !') 24 else: 25 print("You lost !") 26 choice=input('继续游戏?Y/N:') 27 while choice!='Y' and choice!='N': 28 choice=input('继续游戏?Y/N:') 29 if choice=='N': 30 break 31
6.建立1个包含10个字符的字符串,并根据键盘输入的数字n输出字符串中的第n个字符。当n值超过字符串的索引时,自动转为输出字符串中的最后1个字符。
要求:用try语句实现。
1 s='abcdefghij' 2 try: 3 n=int(input()) 4 print(s[n]) 5 except IndexError: 6 print(s[-1]) 7 except Exception as e: 8 print(repr(e))
7.编写函数,该函数可以输入任意多个数,函数返回输出所有输入参数的最大值、最小值和平均值。
1 def fun(*n): 2 print('max',max(n)) 3 print('min',min(n)) 4 print('avg',sum(n)/len(n)) 5 6 fun(1,2,3,4,5)
8.一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?
要求:利用递归函数编程实现。
1 def fun(count): 2 if count>=7: 3 return 2 4 else: 5 return (fun(count+1)+1)*2 6 7 print(fun(0))