Python循环语句

Python循环语句

while基础使用

  • 条件需提供布尔类型结果,True继续,False停止
  • 规划好循环终止条件,否则会一直循环
i = 0

while i < 100:
    print("输出了", i ,"次哈哈哈")
    i += 1

# 结果
输出了 0 次哈哈哈
输出了 1 次哈哈哈
输出了 2 次哈哈哈
输出了 3 次哈哈哈
... 省略了96

while循环求1-100的和案例

sum = 0
i = 1

while i <= 100:
    sum += i
    i += 1

print("1-100相加的结果为:", sum)

# 结果
1-100相加的结果为: 5050

while循环猜值案例

# 获取范围在1-100的随机数字
import random
num = random.randint(1, 100)
# 定义记录猜测多少次
count = 0

# 通过一个bool类型的变量,做循环是否继续的标记
flag = True
while flag:
    guess_num = int(input("请输入你猜测的数字:"))
    count += 1
    if guess_num == num:
        print("猜中了")
        # 设置为False就是终止循环条件
        flag = False
    else:
        if guess_num > num:
            print("你猜测的数字大了")
        else:
            print("你猜测的数字小了")

print(f"总共猜测了:{count}次")

# 结果
请输入你猜测的数字:50
你猜测的数字小了
请输入你猜测的数字:70
你猜测的数字小了
请输入你猜测的数字:80
你猜测的数字大了
请输入你猜测的数字:75
你猜测的数字大了
请输入你猜测的数字:73
你猜测的数字大了
请输入你猜测的数字:72
猜中了
总共猜测了:6次

while循环嵌套应用

注意嵌套循环控制,避免无限循环

# 外层:表白100天
# 内层:每天表白都送10只玫瑰花

i = 1
while i < 100:
    print(f"送给小美第{i}天,准备表白...")

    # 内层循环
    j = 1
    while j <= 10:
        print(f"送给小美第{j}只玫瑰")
        j += 1

    print("小美,小帅喜欢你")
    i += 1

print(f"坚持到第{i}天,表白成功")

while循环九九乘法表

i = 1
# 外层循环
while i <= 9:
    
    j = 1
    # 内层循环
    while j <= i:
        # end='':不换行
        print(f"{j} * {i} = {i * j}\t", end='')
        j += 1
    
    # 外层循环一次换行一次
    print("")
    i += 1

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

for循环基础语法

无法定义循环条件,只能被动取出数据处理。格式:

for 临时变量 in 待处理数据集: 
        循环满足条件时执行的代码
name = "hahaha"

for x in name:
    # 将name的内容,挨个取出赋予x临时变量
    # 就可以在循环内对x进行处理
    print(x)

for循环数一数有多少a

name = "hahaha"

# a的计数
count = 0

# for循环
for x in name:
    if x == "a":
        count += 1

print(f"被统计的字符串有{count}个a")

# 结果
被统计的字符串有3个a

for循环range语句

获得一个数字序列(可迭代类型的一种)

  • range(num):从0开始,到num结束(不含num本身)
  • range(num1, num2):从num1开始,到num2结束(不含num2本身)
  • range(num1, num2, step):从num1开始,到num2结束(不含num2本身),步长以step值为准
# range语法1 range(num)
print("range语法1:")
for x in range(3):
    print(x)

print("range语法2:")
# range语法2 range(num1, num2), 前包后不包不包含num2本身
for x in range(5, 8):
    print(x)

# range语法3 range(num1, num2, step), 前包后不包不包含num2本身 step是步长
print("range语法3:")
for x in range(5, 10, 2):
    print(x)

# 结果
range语法1:
0
1
2
range语法2:
5
6
7
range语法3:
5
7
9

for循环临时变量作用域

for循环中的临时变量,其作用域限定为循环内。这种限定:

  • 是编程规范的限定,而非强制限定
  • 不遵守也能正常运行,但是不建议这样做
  • 如需访问临时变量,可以预先在循环外定义它
for i in range(5):
    print(i)

# 外部也可以访问临时变量,不推荐,如果使用可以在for循环制定定义i变量
print(i)

# 结果
0
1
2
3
4
4

for循环嵌套应用

# 外层:表白100天
# 内层:每天表白都送10只玫瑰花

for i in range(1, 101):
    print(f"送给小美第{i}天,准备表白...")

    # 内层循环
    for j in range(1, 11):
        print(f"送给小美第{j}只玫瑰")

    print("小美,小帅喜欢你")

print(f"坚持到第{i}天,表白成功")

for循环九九乘法表

# 外层循环
for i in range(1, 10):

    # 内层循环
    for j in range(1, i + 1):
        # end='':不换行
        print(f"{j} * {i} = {i * j}\t", end='')

    # 外层循环一次换行一次
    print("")

continue和break

  • continue:跳过当前循环执行下次循环
  • break:停止当前循环
# 演示中断语句 continue
for i in range(1, 6):
    print("语句1")
    continue
    print("语句2")

# 演示 continue 的嵌套循环应用
for i in range(1, 6):
    print("语句1")
    for j in range(1, 6):
        print("语句2")
        continue
        print("语句3")

    print("语句4")

# 演示中断语句 break
for i in range(1, 6):
    print("语句1")
    break
    print("语句2")

# 演示 break 的嵌套循环应用
for i in range(1, 6):
    print("语句1")
    for j in range(1, 6):
        print("语句2")
        break
        print("语句3")

    print("语句4")

循环综合案例

money = 10000
for i in range(1, 21):
    import random
    score = random.randint(1, 10)
    if score < 5:
        print(f"员工{i},绩效分{score},低于5,不发工资下一位")
        continue
    else:
        money -= 1000
        print(f"向员工{i}发工资1000元,账户余额还剩{money}元")
        if money == 0:
            for x in range(i, 21):
                print(f"工资发完了,员工{x}下个月领取吧。")
            break
posted @ 2023-09-07 16:04  橙香五花肉  阅读(39)  评论(0编辑  收藏  举报