首页 > 技术文章 > Python 第二次实验

alphainf 2022-03-20 17:48 原文

【1】 (程序设计)三位水仙花数的计算。“三位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 =ABC。请按照从小到大的顺序输出所有的3位水仙花数,请用一个“逗号+空格”分隔输出结果。

for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
            if i**3+j**3+k**3==i*100+j*10+k:
                print(i,j,k,sep='',end=', ')

【2】 (程序设计)用户键盘输入一年份, 判断是否为闰年?

  • 如果是闰年, 则输出xxx是闰年;
  • 如果不是闰年, 则输出xxx不是闰年;

判断闰年的方法:

1). 能被4整除但不能被100整除;
2). 能被400整除;

year=int(input())
if (year%4==0 and year%100!=0) or year%400==0 :
    print(year,'是闰年',sep='')
else:
    print(year,'不是闰年',sep='')

【3】 (程序设计)如果一个数恰好等于它的因子之和,这个数就称为“完数”。例如28=1+2+4+7+14则28就是一个完数。编写程序,输出1000以内的所有完数个数。

def check(x):
    sum=0
    for i in range(1,x):
        if x%i==0:
            sum+=i
    return (sum==x)

n=1000
ans=0
for i in range(1,n+1):
    if check(i):
        #print(i)
        ans=ans+1
print(ans)

【4】 (程序设计)输入两个字符串,判断这两个字符串是否为换位字符串。换位字符串是指组成字符串的字符相同但位置不同,比如字符串”aabbcc"与"abcabc"就是换位字符串,但"aabbcc"与"aabbca"就不是换位字符串。

s1=input()
s2=input()
list1=list(s1)
list2=list(s2)
list1.sort()
list2.sort()
if list1==list2:
    print('{}与{}是换位字符串'.format(s1,s2))
else:
    print('{}与{}不是换位字符串'.format(s1,s2))

【5】 (程序设计)输入三角形三条边,判断是否能构成一个三角形,若能,能构成哪种三角形(等边、等腰、直角、普通 )?

a,b,c=float(input()),float(input()),float(input())
if a>b :
    a,b=b,a
if a>c :
    a,c=c,a
if b>c :
    b,c=c,b
if a+b<=c :
    print('不能构成',end='')
else:
    print('能构成',end='')
    if a==b and b==c:
        print('等边',end='')
    elif a==b or b==c:
        print('等腰',end='')
    if a**2+b**2==c**2:
        print('直角',end='')
    elif a!=b and b!=c:
        print('普通',end='')
print('三角形')

【6】 (程序设计)输入百分制学生成绩,输出对应的五档制制成:
90-100 A(优秀)
80-89 B(良好)
70-79 C(中等)
60-69 D(及格)
0-59 E(不及格)
其它成绩输出“非法百分制成绩”

n=int(input('请输入百分制学生成绩'))
if 90<=n<=100 :
    print('A')
elif 80<=n<=89:
    print('B')
elif 70<=n<=79:
    print('C')
elif 60<=n<=69:
    print('D')
elif 0<=n<=59:
    print('不及格')
else:
    print('非法百分制成绩')

【7】 (程序设计)输入用“;“间隔的数字串,计算输入数字的和并输出结果。如输入的数字串为:12;23;34;45

s=input()+';'
sum=0
now=0
for i in s:
    if i==';':
        sum=sum+now
        now=0
    else:
        now=now*10+int(i)
print(sum)

推荐阅读