【习题之Python篇】循环结构
例题1:编写程序,计算:Sn=1-3+5-7+9-11+…,n是数列的项数, 由用户输入。n = eval(input("请输入数列的项数:"))s = 0 #s存放结果flag = 1 #控制加、减.标志变量for i in range(1, 2*n, 2):s += i * flagflag = (-1) * flagprint(s)结果:例题2:输出斐波那契数列的前20项。1, 1, 2,
·
例题1:编写程序,计算:Sn=1-3+5-7+9-11+…,n是数列的项数, 由用户输入。
n = eval(input("请输入数列的项数:"))
s = 0 #s存放结果
flag = 1 #控制加、减.标志变量
for i in range(1, 2*n, 2):
s += i * flag
flag = (-1) * flag
print(s)
结果:
例题2:输出斐波那契数列的前20项。
1, 1, 2, 3, 5, 8, …
f1 = f2 = 1
fn = fn-1 + fn-2, n>=3
f1 = f2 = 1 #链式赋值,f1:前一项,f2:后一项
for i in range(10):
print(f1, f2)
f1 = f1 + f2
f2 = f1 + f2
结果:
例题3:输出3位正整数中的全部水仙花数。
import math
for i in range(100,1000):
a=i//100
b=i//10%10
c=i%10
if math.pow(a,3)+math.pow(b,3)+math.pow(c,3)==i :
print(i)
提示:水仙花数是一个三位数其各位数字的立方和等于该数本身。
结果:
例题4:输入任意一个大于2的正整数,判别其是否是素数。
num = eval(input("请输入一个大于2的正整数:"))
for i in range(2,num):
if num%i == 0:
print("不是素数")
break
else :
continue
if i==num-1 :
print("是素数")
另一种方法:
x=eval(input("请输入一个大于2的正整数:"))
for i in range(2,int(pow(x,0.5))+1): #减少一半的循环优化程序
if x%i==0 :
print("{}不是素数!".format(x))
break
else:print("{}是素数!".format(x)) #循环奖励
提示:素数是只有1和自身两个因数的自然数
结果:
例题5:输出2000~3000年之间所有的闰年,要求每输出8个年份值就换行。
count = 0
for i in range(2000,3001):
if i%4 == 0 and i % 100 != 0:
print(i,end=" ")
count += 1
if count%8==0:
print("\n")
小知识:
end=" " 表示在输出末尾不换行,加空格
结果:
提示:普通年能被4整除且不能被100整除的为闰年
学习笔记,感谢提出错误
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献4条内容
所有评论(0)