while 循环与for 循环

一、while 循环

1.while循环:

  语法:
while 表达式:
表达式成立执行的代码...
迭代(趋向终止)
"""
案例:猜数字的游戏:

        1.随机生成一个数字[1,100]
            random
        2.输出猜想的数字
            input()
            if - elif - else
            猜大了,再小点
            猜小了,再大点
            猜中了

            统计猜中的次数:
                根据次数评级:
                    if - elif - else
                    1-4     超神
                    5-7     正常
                    8+      脑子是个好东西

"""
# 猜数字游戏
import random
print("----------------- 猜数字小游戏 ------------------")
rand_num = random.randint(1,100)
# 用来控制循环是否结束
End = True
# 用来记录猜测的次数
count = 0
while End:
    num = int(input("请输入1-100范围内您猜测的数字:"))
    # 猜测次数的记录,+1
    count += 1
    if num > rand_num:
        print("很遗憾,有点太大了...")
    elif num < rand_num:
        print("很遗憾,有点太小了...")
    else:
        print("恭喜您,第{}次就猜中了!".format(count))
        # 1,结束循环
        End = False
        # 2.根据猜测次数评级
        if count >= 1 and count <= 4:
            print("根据全国大数据显示,此次评级结果为:超神,你很牛啊兄弟!")
        elif count >= 5 and count <= 7:
            print("根据全国大数据显示,此次评级结果为:您已将到达了正常人的智商水准,还仍需继续努力!")
        else:
            print("根据全国大数据显示,此次评级结果为:回家洗洗睡吧,脑子是个好东西!")
2.循环嵌套:

外循环:
内循环:

while 条件:
while 条件:
内循环的代码

外循环执行一次,内循环要执行一遍
i = 0
while i < 3:
    print("我是外循环",i)
    j = 0
    while j < 3:
        print("我是内循环",j,end="\t")
        j += 1
    print()
    i += 1

二、for 循环

1.for 循环

  语法:
for i in range(start,end,step)

注意:
range(1,10) ==> [1,10)
random.randint(1,10) ==> [1,10]
# while循环打印1-9的数字
print("while循环打印1-9的数字:")
i = 1
while i <= 9:
    print(i,end="\t")
    i += 1

# for循环打印1-9的数字
print("\nfor循环打印1-9的数字:")
for x in range(1,10):
    print(x,end="\t")

2.for 循环的嵌套

外循环:
内循环:

for 条件:
for 条件:
内循环的代码

外循环执行一次,内循环要执行一遍
for i in range(3):
    print("我是外循环",i)
    for j in range(3):
        print("我是内循环",j,end="\t")
    print()

三、循环控制(break、continue)

  break
结束(当前)循环
continue
跳过本次循环中的后续代码

注意:
  
如果遇到嵌套循环的情况,
break结束的是当前内循环,不会影响外循环
1.循环控制中break
# 循环控制中break
print("循环控制中break:")
for i in range(10):
    print(i,end="\t")
    if i == 5:
        # 结束(当前)循环
        break
    print("第%d次循环"%i)

2.循环控制中continue
# 循环控制中continue
print("\n循环控制中continue:")
for i in range(10):
    print(i,end="\t")
    if i == 5:
        # 跳过本次循环中的后续代码
        continue
    print("第%d次循环" % i)

3.嵌套循环中的循环控制,break
# 嵌套循环中的循环控制
for i in range(3):
    print("\n------------- 我是外循环 %d -----------"%i)
    for i in range(10):
        print(i,end="\t")
        if i == 5:
            # 结束(当前)循环,即break结束的是当前内循环,不会影响外循环
            break
        print("第%d次循环"%i)

以下结果,可以尝试自己执行下

  • 案例1:打印九九乘法表
# while 循环实现九九乘法表
i = 1
line = 9
while i <= line:
    j = 1
    while j <= i:
        print("{0} * {1} = {2}".format(j,i,i*j),end="\t")
        j += 1
    print()
    i += 1

# for循环实现99乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("{0} * {1} = {2}".format(j, i, i * j), end="\t")
    print()

  • 案例2:倒的99乘法表(使用__reversed__)
# 倒的99乘法表
print("倒的99乘法表:")
for i in range(1,10).__reversed__():
    for j in range(1,i+1):
        print("{0} * {1} = {2}".format(j, i, i * j), end="\t")
    print()

  • 案例3:打印正三角
----*
---***
--*****
-*******
# 正三角
line = 4
for i in range(line):
    # 打印每一行的"-"
    for j1 in range(line-i):
        print("-",end="")

    # 打印每一行中的"*"
    for j2 in range(2*i+1):
        print("*",end="")
    print()

  • 案例4:菱形(正三角 + 倒三角)
----*
---***
--*****
-*******
--*****
---***
----*
# 打印菱形
# 1.正三角
line = 4
for i in range(line):
    # 打印每一行的"-"
    for j1 in range(line-i):
        print("-",end="")

    # 打印每一行中的"*"
    for j2 in range(2*i+1):
        print("*",end="")
    print()
# 2.倒三角
for i in range(line-1).__reversed__():
    # 打印每一行的"-"
    for j1 in range(line-i):
        print("-",end="")

    # 打印每一行中的"*"
    for j2 in range(2*i+1):
        print("*",end="")
    print()

posted @ 2020-10-24 18:45  马铃薯1  阅读(418)  评论(0编辑  收藏  举报