Python语言程序设计实验(1)—— Python控制结构

实验1:三角形判断

题目描述:
输入三个数,判断能否构成一个三角形。若能,则输出三角形是等腰三角形、等边三角形、直角三角形,还是普通三角形;若不能,则输出“不能组成三角形”提示信息。

print("请输入三角形的三边长度: ")
a,b,c = map(float,input().split())
if a+b<=c or a+c<=b or b+c<=a:
    print("您输入的三边长度不能构成一个三角形")
else:
    if a**2+b**2==c**2 or a**2+c**2==b**2 or b**2+c**2==a**2:
        if a==b or a==c or b==c:
            print("您输入的三边长度可以构成一个等腰直角三角形")
        else:
            print("您输入的三边长度可以构成一个直角三角形")
    elif a**2+b**2<c**2 or a**2+c**2<b**2 or b**2+c**2<a**2:
        if a==b or a==c or b==c:
            print("您输入的三边长度可以构成一个等腰钝角三角形")
        else:
            print("您输入的三边长度可以构成一个钝角三角形")
    else:
        if a==b and a==c and b==c:
            print("您输入的三边长度可以构成一个等边锐角三角形")
        elif a==b or b==c or a==c:
            print("您输入的三边长度可以构成一个等腰锐角三角形")
        else:
            print("您输入的三边长度可以构成一个锐角三角形")

实验2:银行利率计算

题目描述:
已知银行整存整取存款不同期限的月息利率分别为:
0.33% 期限1年
0.36% 期限2年
0.39% 期限3年
0.45% 期限5年
0.54% 期限8年
要求输入存款的本金和期限,求到期时能从银行得到的利息与本金的合计。

print("请输入您要存款的本金和期限:")
a,b = map(float,input().split())
if b<0:
    print("您的输入有误,请再次输入。")
elif b==0:
    tax = 0
    sum = a
elif b==1:
    tax = a*(1.0033**12)-a
    sum = a + tax
elif b==2:
    tax = a*(1.0036**24)-a
    sum = a + tax
elif b==3 or b==4:
    tax = a*(1.0039**(b*12))-a
    sum = a + tax
elif b>=5 and b<8:
    tax = a*(1.0045**(b*12))-a
    sum = a + tax
else:
    tax = a*(1.0054**(b*12))-a
    sum = a + tax
print("您的存款到期时能从银行得到的利息为",round(tax,3),"元")
print("您的存款到期时合计为",round(sum,3),"元")

实验3:通过日期求某月的天数

题目描述:
输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。

mouth = [31,30,28,29]
print("请输入年份和月份")
y,m = map(int,input().split())
if m<=0 or m>=13:
    print("您输入的月份有误,请再次输入")
else:
    if y%400==0 or (y%4==0 and y%100!=0):
        if m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12:
            print("{}年{}月的天数为{}天".format(y,m,mouth[0]))
        elif m==2:
            print("{}年{}月的天数为{}天".format(y,m,mouth[3]))
        else:
            print("{}年{}月的天数为{}天".format(y,m,mouth[1]))
    else:
        if m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12:
            print("{}年{}月的天数为{}天".format(y,m,mouth[0]))
        elif m==2:
            print("{}年{}月的天数为{}天".format(y,m,mouth[2]))
        else:
            print("{}年{}月的天数为{}天".format(y,m,mouth[1]))

实验4:研究生录取

题目描述:
某高校录取研究生的要求是,新生的每门课成绩不低于60分,总成绩不低于340分,370分以下为自费。编一程序实现输入一个学生的四门课成绩,试判断该生为该校录取的情况(“没有录取”、“自费”、“公费”三种情况)。
输入描述:输入四门课的成绩,成绩均为0-150之间的整数。
输出描述:录取结果。(“没有录取”、“自费”、“公费”)
样例输入:60 100 130 80
样例输出:公费

print("请输入该研究生四门课的成绩:")
a,b,c,d = map(int,input().split())
if a<0 or b<0 or c<0 or d<0 or a>150 or b>150 or c>150 or d>150:
    print("您输入的成绩有误,请再次输入。")
else:
    if a<60 or b<60 or c<60 or d<60 or a+b+c+d<340:
        print("该研究生未被该校录取。")
    elif a+b+c+d<370:
        print("该研究生为自费录取。")
    else:
        print("该研究生为公费录取。")

实验5:素数判断

题目描述:
任意输入一个正整数,判断是否为素数。(素数定义:除1和自身之外没有其他因子的正整数。,如13是素数!)

print("请输入一个正整数:")
a = int(input())
b = 0
if a<0:
    print("您输入的不是正整数,请重新输入。")
else:
    for i in range(2,a):
        if a%i==0:
            b = b + 1
        else:
            continue
    if b==0:
        print("{}是素数".format(a))
    else:
        print("{}不是素数".format(a))

实验6:完数判断

题目描述:
编程找出1000以内所有完数。(完数定义:一个正整数除自身外所有因子之和等于该数,则该数为完数,如6=1+2+3,28=1+2+4+7+14,因此6,28是完数)

print("1000的完数有")
for i in range(6,1000):
    sum = 1
    for j in range(2,i):
        if i%j==0:
            sum = sum + j
        else:
            continue
    if sum == i:
        print(i,end=" ")
    else:
        continue

实验7:水仙花数

题目描述:
编程找出三位数中所有的水仙花数。(水仙花数定义:一个三位正整数的百位、十位和各位的个数位数字立方之和等于该数,则该数为水仙花数。例如153=13+53+33。)

print("三位数中所有的水仙花数为:")
for i in range(100,999):
    a = i % 100 % 10
    b = i % 100 // 10
    c = i // 100
    if a**3+b**3+c**3 == i:
        print(i,end=" ")
    else:
        continue

实验8:列表计算

题目描述:
随机产生10个10-50之间的随机正整数存入列表list1中,再找出该列表中的最大值、最小值和平均值。

import random
print("随机生成的十个数为:")
a = [0 for i in range(10)]
sum = 0
for i in range(10):
    a[i] = int(random.random()*40+10)
    sum += a[i]
    print(a[i],end=" ")
a.sort()
print("\n这十个数的最大值为{},最小值为{},平均值为{}".format(a[0],a[9],sum/10))

猜你喜欢

转载自blog.csdn.net/qq_44528283/article/details/111699175
今日推荐