Python 程序流程设计(循环结构)


前言

循环结构用于重复执行一条或多条语句。使用循环结构,可以减少源程序重复书写的工作量。
Python 使用for语句和while来实现循环结构。


一、for 循环

for 循环用于遍历可迭代对象集合中的元素,并对集合中每一个元素执行一次相关嵌入语句。
格式:
for 变量 in 对象集合:
*** 循环体语句
例1:输出2000-3000之间所有的闰年。

from math import *
count = 0
for y in range(2000, 3001):
    if (y % 4 == 0 and y % 100 != 0) or (y % 400 == 0):
        count += 1
        if count % 10 == 0:   #当一行有10个数,换行。
            print(y, end="\n")
        else:
            print(y, end=" ")   #一行的数之间用空格分开

执行结果:

C:\Users\任凌颢\PycharmProjects\pythonProject16\venv\Scripts\python.exe C:\Users\任凌颢\PycharmProjects\pythonProject16\main.py 
Hi, PyCharm
2000 2004 2008 2012 2016 2020 2024 2028 2032 2036
2040 2044 2048 2052 2056 2060 2064 2068 2072 2076
2080 2084 2088 2092 2096 2104 2108 2112 2116 2120
2124 2128 2132 2136 2140 2144 2148 2152 2156 2160
2164 2168 2172 2176 2180 2184 2188 2192 2196 2204
2208 2212 2216 2220 2224 2228 2232 2236 2240 2244
2248 2252 2256 2260 2264 2268 2272 2276 2280 2284
2288 2292 2296 2304 2308 2312 2316 2320 2324 2328
2332 2336 2340 2344 2348 2352 2356 2360 2364 2368
2372 2376 2380 2384 2388 2392 2396 2400 2404 2408
2412 2416 2420 2424 2428 2432 2436 2440 2444 2448
2452 2456 2460 2464 2468 2472 2476 2480 2484 2488
2492 2496 2504 2508 2512 2516 2520 2524 2528 2532
2536 2540 2544 2548 2552 2556 2560 2564 2568 2572
2576 2580 2584 2588 2592 2596 2604 2608 2612 2616
2620 2624 2628 2632 2636 2640 2644 2648 2652 2656
2660 2664 2668 2672 2676 2680 2684 2688 2692 2696
2704 2708 2712 2716 2720 2724 2728 2732 2736 2740
2744 2748 2752 2756 2760 2764 2768 2772 2776 2780
2784 2788 2792 2796 2800 2804 2808 2812 2816 2820
2824 2828 2832 2836 2840 2844 2848 2852 2856 2860
2864 2868 2872 2876 2880 2884 2888 2892 2896 2904
2908 2912 2916 2920 2924 2928 2932 2936 2940 2944
2948 2952 2956 2960 2964 2968 2972 2976 2980 2984
2988 2992 2996 
Process finished with exit code 0

二、while 循环

格式:
while (条件表达式):
循环体语句/语句块
例1:e = 1 + 1/1! + 1/2! +…+1/n!
计算e,直到最后一项的绝对值小于10^6为止。

e = 1; t = 1; i = 1    #该计算存在三个子计算变量,从局部到宏观分别为:n、n!、e
while (1/t >= pow(10,-6)):    #每一项都表示为:1/t,while条件的选择一般考虑可进行循环的条件
    t *= i    #条件运行的顺序选择可采用试探法,从上一项到下一项的过度条件,可只看前两项,再用心算来验证
    e += 1/t
    i += 1
print("e= ",e) #不满足条件就会跳出循环,输出,否则一直循环下去

三、循环嵌套

在一个循环体内又包含另一个完整循环,称为循环的嵌套。
例:打印九九乘法表。

代码如下(示例1):

t = 1; count = 0;h = 1
for i in range(1,10):
    s = ""
    for j in range(1,10):
        s += str.format("{0:2}*{1:1}={2:<2}", i, j, i*j)
    print(s)

运行结果:

Hi, PyCharm
 1*1=1  1*2=2  1*3=3  1*4=4  1*5=5  1*6=6  1*7=7  1*8=8  1*9=9 
 2*1=2  2*2=4  2*3=6  2*4=8  2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
 3*1=3  3*2=6  3*3=9  3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
 4*1=4  4*2=8  4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
 5*1=5  5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
 6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
 7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
 8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
 9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

Process finished with exit code 0

示例2:

for i in range(1, 10):
    s = ""
    for j in range(1, i+1):
        s += str.format("{0:2}*{1:1}={2:<2}", i, j, i*j)
    print(s)

运行结果:

 1*1=1 
 2*1=2  2*2=4 
 3*1=3  3*2=6  3*3=9 
 4*1=4  4*2=8  4*3=12 4*4=16
 5*1=5  5*2=10 5*3=15 5*4=20 5*5=25
 6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
 7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
 8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
 9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

Process finished with exit code 0

示例3:

for i in range(1, 10):
    s = ""
    for j in range(i, 10):
        s += str.format("{0:2}*{1:1}={2:<2}", i, j, i*j)
    print(s)

运行结果

 1*1=1  1*2=2  1*3=3  1*4=4  1*5=5  1*6=6  1*7=7  1*8=8  1*9=9 
 2*2=4  2*3=6  2*4=8  2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
 3*3=9  3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
 6*6=36 6*7=42 6*8=48 6*9=54
 7*7=49 7*8=56 7*9=63
 8*8=64 8*9=72
 9*9=81

Process finished with exit code 0

四、break语句

例:判断所输入的任意一个正整数是否为素数。
提示:判断m是否被2—m^1/2之中的任何一个整数整除,如果不能,m为素数,否则为合数。
法1:利用for循环搭配break

from math import *
m = int(input("请输入数字: "))
t = int(sqrt(m))
for i in range(2, t+1):
    if (m % i == 0): #如果m可以被整除,为合数,结束循环
        print("%d为合数" % m) #break后无法输出,要先打印
        break
    else:
        if i == t: #如果最后一个被除数为m^1/2
            print("%d为素数" % m)

法2:while加bool法

from math import *
m = int(input("请输入数字: "))
t = int(sqrt(m))
flag = True #假设该数为素数
i = 2
while(i <= t)and(flag == True): #1,2,3一定为素数,从这之后开始循环
    if (m % i == 0): flag = False
    else: i+=1 #一直加到i > t
if (flag == True): print("%d为素数" % m)
else: print("%d为合数" % m)

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了Python循环结构的使用,而Python提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值