python初学(一)

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))

 

posted @ 2020-04-19 10:54  UKC_unknowcry  阅读(793)  评论(0编辑  收藏  举报