码迷,mamicode.com
首页 > 编程语言 > 详细

Python程序设计训练

时间:2020-05-06 13:47:25      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:超过   try   put   运行   组合   获取   nbsp   size   输入   

 

一、目的:

  1、 掌握建立和执行Python文件的方法;

  2、 掌握if语句实现分支结构的程序设计方法;

  3、 掌握for和while语句实现循环结构的程序设计方法;

  4、 掌握函数的定义和使用方法。

二、内容:

    1. 输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

   要求:1)用if语句实现;2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

        代码:

 1 a=eval(input(请输入成绩:))
 2 if a<0 or a>100 or a%1!=0:
 3         print(您输入的成绩不合理,请检查后重新输入)
 4 elif 90<=a<=100:
 5     print(成绩等级:A)
 6 elif 80<=a<=89:
 7     print(成绩等级:B)
 8 elif 70<=a<=79:
 9     print(成绩等级:C)
10 elif 60<=a<=69:
11     print(成绩等级:D)
12 else:
13 print(成绩等级:E)

    运行结果:

           技术图片

  2. 篮球比赛是高分的比赛,领先优势可能很快被反超。作为观众,希望能在球赛即将结束时,就提早知道领先是否不可超越。体育作家Bill James发明了一种算法,用于判断领先是否“安全”。

    算法描述: 1)获取领先的分数 ,减去3分;

           2)如果目前是领先队控球,则加0.5;否则减0.5(数字小于0则变成0);

           3)计算平方后的结果;

           4)如果得到的结果比当前比赛剩余时间的秒数大,则领先是“安全”的。

   请编写程序实现上述算法的功能,并给出运行结果。

  代码:

 1 grade=eval(input(请输入领先分数:))
 2 time=eval(input(请输入剩余时间:))
 3 t=grade-3
 4 w=input(目前是否为领先队控球(Y or N):)
 5 if w == Y or w == y:
 6     g=(t+0.5)**2
 7 else:
 8     g=t-0.5
 9     if g<=0:
10        g=0
11     g=g**2
12 if g>time:
13     print(领先是“安全”的)
14 else:
15     print(领先是“不安全”的)

     运行结果:

   技术图片

  3.根据y=1+3-1+3-1+……+(2n-1)-1,求:

   (1) y<3时的最大n值。

   (2) 与(1)的n值对应的y值。

  代码:

1 x=1
2 y=0
3 while y<3:
4     y=y+1/(2*x-1)
5     x=x+1
6 print(y<3时的最大n值为{}.format(x-1))
7 print(与(1)的n值对应的y值为{}.format(y-1/(2*x-1)))

     运行结果:

   技术图片

  4. 小明单位发了100元的购物卡,小明到超市买三类洗化用品:洗发水(15元)、香皂(2元)、牙刷(5元)。要把100元正好花掉,可有哪些购买组合?

   代码:

1 money=100
2 n=money//15
3 for i in range(n,-1,-1):
4     m=(money-i*15)//5
5     for j in range(m,-1,-1):
6         k=(money-i*15-j*5)//2
7         if (money-i*15-j*5)%2==0:
8             print(可选择的购买组合:\t\t购买洗发水 {} 瓶,香皂 {} 块,牙刷 {}个。.format(i,j,k))

        运行结果:

    技术图片

  5. 设计一个猜数游戏。首先由计算机产生一个[1,100]之间的随机整数,然后由用户猜测所产生的随机数。根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won !”,游戏结束。用户最多可以猜7次,如果7次均未猜中,则显示“You lost !”,并给出正确答案,游戏结束。游戏结束后,询问用户是否继续游戏,选择“Y”则开始一轮新的猜数游戏;选择“N”则退出游戏。

  代码:

 1 chose = y
 2 while chose==Y or chose==y:
 3     import random
 4     num = random.randint(1,100)
 5     def judge(b):
 6         if b == num:
 7             return 1
 8         else:
 9             return 0
10     for i in range(1,8):
11         b=eval(input(请输入您第{}次所猜的整数:.format(i)))
12         if judge(b)==1:
13             print("You won !")
14             break
15         elif b > num:
16             print("high")
17         elif b < num:
18             print("low")
19     if judge(b)==0:
20         print("You lost !")
21     chose=input(请输入Y(y)继续进行游戏,N(n)退出游戏:)
22     while chose != Y and chose != y and chose != N and chose != n:
23         print(输入有误,请重新输入Y(y)继续进行游戏,N(n)退出游戏:,end = ‘‘)
24         chose=input()

      运行结果:

    技术图片

  6. 建立1个包含10个字符的字符串,并根据键盘输入的数字n输出字符串中的第n个字符。当n值超过字符串的索引时,自动转为输出字符串中的最后1个字符。

    要求:用try语句实现。

  代码:

1 n=int(input(请输入数字n:))
2 a=pengyuanyu
3 try:
4     print(a[n-1])
5 except:
6     print(a[9])

      运行结果:

    技术图片

  7. 编写函数,该函数可以输入任意多个数,函数返回输出所有输入参数的最大值、最小值和平均值。

   代码:

 1 import numpy as py
 2 x=input(请输入一组数并用空格隔开:)
 3 def f(x):
 4     lis =list(x.split( ))
 5     for i in range(len(lis)):
 6         lis[i]=eval(lis[i])
 7     print(该组数值的最大值为:,max(lis))
 8     print(该组数值的最小值为:,min(lis))
 9     print(该组数值的平均值为:,py.mean(lis))
10 f(x)

      运行结果:

    技术图片

  8. 一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?

   要求:利用递归函数编程实现。

  代码:

1 def f(n):
2     if n == 8:
3         return 2
4     else:
5         sum = f(n+1)*2+2
6         return sum
7 print(一共有{}只鸭子.format(f(1)))

    运行结果:

   技术图片

三、总结

  通过本次实验,掌握了建立和执行Python文件的方法;掌握了if语句实现分支结构的程序设计方法;掌握了for和while语句实现循环结构的程序设计方法;掌握了函数的定义和使用方法。学到了很多知识,通过实践对基础知识更加熟练。

 

Python程序设计训练

标签:超过   try   put   运行   组合   获取   nbsp   size   输入   

原文地址:https://www.cnblogs.com/ynly/p/12835604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!