【习题之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 * 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

结果:
【习题之Python篇】循环结构_第1张图片

例题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=" " 表示在输出末尾不换行,加空格
结果:
【习题之Python篇】循环结构_第2张图片

提示:普通年能被4整除且不能被100整除的为闰年

学习笔记,感谢提出错误

你可能感兴趣的:(python笔记,python)