第六章 Python中for循环与while循环的深入学习

1.for循环嵌套与案例

输入数字n求n的阶乘和 5的阶乘和 =5!+4!+3!+2!+1!

sum_num = 0
num = int(input("请输入数字"))
for i in range(1, num + 1):
    c_num = 1
    for j in range(1, i + 1):
        c_num *= j
        sum_num += c_num
print(sum_num) # 结果为 153

9行9列的图形,控制各种显示各种位置三角形

(1)打印9行9列的矩形
for i in range(9):
    for j in range(9):
        print(" * ", end="")
    print()

结果如图所示:

(2)空心矩形
for i in range(9):
    for j in range(9):
        if i == 0 or i == 8 or j == 0 or j == 8:
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

(3)左下斜三角形
for i in range(9):
    for j in range(9):
        if i > j:sr
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

(4)左上斜三角形
for i in range(9):
    for j in range(9):
    if i + j <= 8:
        print(" * ", end="")
    else:
        print(" ", end="")
    print()

结果如图所示:

(5)右下斜三角形
for i in range(9):
    for j in range(9):
        if i + j >= 8:
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

(6)右上斜三角形

for i in range(9):
    for j in range(9):
        if i <= j:
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

(7)x形

for i in range(9):
    for j in range(9):
        if i + j == 8 or i == j:
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

(8)漏斗形

for i in range(9):
    for j in range(9):
        if i <= j and i + j <= 8 or i >= j and i + j >= 8:
            print(" * ", end="")
        else:
            print(" ", end="")
    print()

结果如图所示:

输入3打印

*
***
*****

n = int(input("请输入打印层数"))
for i in range(1, n + 1):
    for j in range(1, 2 * i):
        print("*", end="")
    print()

结果如图所示:

打印金字塔

  *
 ***
*****

n = int(input("请输入打印层数"))
for i in range(1, n + 1):
    # 打印空格
    for j in range(1,n - i + 1):
        print(" ", end="")
    # 打印星星
    for k in range(1, 2 * i):
        print("*",end="")
    print()

结果如图所示:

已知两个三位数abc和cba之和为1333(即abc+cba=1333)求 a、b、c

for i in range(1, 1000):
    k2 = (i % 10) * 100 + (i // 10 % 10) * 10 + (i // 100)
    if i + k2 == 1333:
        print(i)

结果如图所示:

打印9*9乘法表

 for i in range(1,10):
     for j in range(1,10):
         if j <= i:
             print(j,"*",i,"=", i*j ,sep="", end = "")
             print(" ",end="")
     print()

结果如图所示:

2.while循环学习

while循环使用时不断地检查它表达式,只有该条件为真时,循环中的代码才会被执行。当条件变为假时,循环就会停止,此时便会跳出循环,继续执行循环后面的代码。需要注意的是while 循环内部需要将条件设置false 否则成了死循环。

while True:
    print("醒醒啦") 
print("开饭啦") # while进入了死循环不会执行此处代码 


can_open = True
while can_open:
    print("=========")
    can_open = False # 使while跳出循环
print("开饭了") # 此处代码被执行

使用while打印10次“醒醒”的方法:

can_open = True
count = 0
while can_open:
    print("醒醒")
    count += 1
    if count == 10:
        can_open = False


count = 0
while count < 10:
    print("醒醒")
    count += 1


count = 10
while count > 0:
    print("醒醒")
    count -= 1


count = 0
while True:
    print("醒醒")
    count += 1
    if count == 10:
        break

3.while循环嵌套

使用while打印9*9乘法表

i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(f"{j} * {i} = {i*j}", end="\t")
        j += 1
    print()
    i += 1

使用while打印漏斗形

i = 1
while i < 10:
    j = 1
    while j < 10:
        if i <= j and i + j <= 10 or i >= j and i + j >= 10:
            print(" * ", end="")
        else:
            print("   ", end="")
        j += 1
    print()
    i += 1

4.for与while都可以使用else

for i in range(10):
    if i == 3:
        #continue 会终止某一次循环 不会导致else不执行
        #break 会终止整个循环 导致else不会执行
        break
    print(i)
else:
    print("for循环结束")

打印1000以内的10个最小质数

count = 0
for i in range(2, 1001):
    # 判定i是不是质数
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        print(i, "是质数")
        count += 1
        if count == 10:
            break

最后,每天进步一点点,争取日进斗金

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值