Python基础实验课练习(2)

  • Post author:
  • Post category:python


  • 实验目的

1.掌握单分支、双分支和多分支条件语句的使用。

2.熟练掌握实现遍历循环操作的for语句。

3.熟练掌握实现无限循环操作的while语句。

4.掌握控制循环执行的break语句和continue语句。

  • 实验内容

1.编写程序sy1-12.py,实现某校的三好学生评定,其标准为语文、数学、英语三门课程的平均成绩大于90分,且每门课程成绩不低于85分,输入三门课程成绩,满足条件的输出“符合三好学生条件”,不满足条件的输出“不符合条件”。

2.商场开展购物打折活动:消费在200元以内不打折,200~500元范围内打九折,超过500元打八折,编写程序sy1-13.py,根据消费金额计算最终的交费金额。

3.编写程序sy1-14.py,用户输入若干个分数,求所有分数的平均分。每输入一个分数后询问是否继续输入下一个分数,回答“Y”或“y”就继续输入下一个分数,回答“N”或“n”就停止输入分数。

4.编写程序sy1-15.py,判断今天是今年的第几天。

5.编写程序sy1-16.py,输出“水仙花数”。所谓水仙花数是指1个3位的十进制数,其各位数字的立方和等于该数本身。

6.编写程序sy1-17.py,输出100内的所有素数。

7.编写程序sy1-18.py,求解鸡兔同笼问题。假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只。

8.编写程序sy1-19.py,计算组合数C(n,i),即从n个元素中任选i个,有多少种选法。

  • 源程序代码,运行结果(截图)
  1. sy1-12



Chinese =


int


(


input


(





请输入学生的语文成绩:





))

Maths =


int


(


input


(





请输入学生的数学成绩:





))

English =


int


(


input


(





请输入学生的英语成绩:





))

average = (Chinese + Maths + English) /


3



if


average >=


90


and


Chinese >=


85


and


Maths >=


85


and


English >=


85


:



print


(





学生的平均分是:


%.2f


符合三好学生条件





% average)



else


:



print


(





学生的平均分是:


%.2f


不符合条件





% average)

  1. sy1-13
Consumption=float(input("请输入你的消费金额:"))

if Consumption <200:

    print("消费不满200元,不参与打折活动。支付金额为:%.2f"% Consumption)

if Consumption >=200 and Consumption <=500:

    Pay=Consumption*0.9

    print("消费金额满足200~500元,打九折,支付金额为:%.2f"% Pay)

if Consumption >500:

    Pay=Consumption*0.8

    print("消费金额满足500元以上,打八折,支付金额为:%.2f"% Pay)

  1. sy1-14
numbers = []

while True:

    x = input('请输入一个成绩:')

    try:

        numbers.append(float(x))

    except:

        print('不是合法成绩')

    while True:

        flag = input('继续输入么?(yes/no').lower()

        if flag not in ('yes','no'):

            print('只能输入yesno')

        else:

            break

    if flag=='no':

        break

print(sum(numbers)/len(numbers))

  1. sy1-15
#运用数组可以更为简洁

import time

if __name__ == '__main__':

    date = time.localtime()  # 获取当前日期

    year, month, day = date[:3]

    print("{},{},{}".format(year, month, day))

    month_day = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    if year % 400 == 0 or year % 100 != 0 and year % 4 == 0:

        month_day[1] = 29

    if month == 1:

        print("{}".format(day))

    else:

        print(sum(month_day[:month - 1]) + day)

  1. sy1-16
sum = 0

print("所有的3位水仙花数:")

for x in range(100,1000):    #定义x范围

    low = x % 10    #取余数即最低位的数

    high = x // 100    #取高的数

    middle = (x // 10) % 10    #取中间的数

    sum = low** 3 + high** 3 + middle** #求和

    if sum == x:

        print(x)    #输出结果

  1. sy1-17
s_list = []

for i in range(2, 101):

    for j in range(2, i):

        if i % j == 0:

            break

    else:

        s_list.append(i)

print(s_list)

  1. sy1-18
x=0

y=0

while x<=30 and y<=30:

    if x+y==30 and 2*x+4*y ==90:

        print("笼子中鸡有{},兔子有{}".format(x,y))

        break

    x += 1

    y =30-x

  1. sy1-19
n=int(input("请输入n"))

i=int(input("请输入i"))

def Cni2(n, i):

    import math

    return int(math.factorial(n)/math.factorial(i)/math.factorial(n-i))

print(Cni2(n,i))



版权声明:本文为weixin_62312332原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。