Python 第二次实验
【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)