流程控制(下)

五 、流程控制(下)

5.1 循环结构

如果希望把hello world 输出2遍

print("hello wolrd")
print("hello world")

很简单只需要2行代码,那如果输出100遍呢?似乎变得麻烦了。

循环可以让这个麻烦的事情变得简单,让一段代码反复执行。

在python编程语言中循环有2种,一种是while循环,一种是for循环。

5.1.1 while循环

while循环是通过 条件判断 来控制循环次数的,和if有点类似

if 条件表达式:
    代码块
    
while 条件表达式:
    代码块(循环体)

现在来执行一段代码

if 0<10:
    print("路飞开启5档") # 只会执行一次
    
while 0<10:
    print("路飞开启5档") # 会一直执行!
    
    
if 在条件成立的时候 会进入if的代码区域
while 在条件成立时 也会进入while的代码区域,但whileif不同,会反复输出里面的代码
什么时候结束呢?当条件表达式为False的时候结束
观察这个式子发现True是绝对的不会改变,那就会永远执行下去,我们称这种循环为 死循环。

希望循环可以可控的,可以将 条件表达式 化为变量
a = 0
while a<10:
    print('路飞开启5档')
# 依旧为死循环,因为条件还是不变啊,改为变量的目的就是让True一步一步靠近False

a = 0
while a<10:
    print('路飞开启5档')
    a = a + 1
# nice, 发现执行10次以后可以退出了

# 0 < 10
# 1 < 10
# 2 < 10
# ...
# 9 < 10
# 10 < 10 结束,无法进入循环体

解释:上述代码会打印10次消息,每次循环 a值增加1,直到a不再小于10时循环停止。

5.1.2 debug运行模式

所谓bug,就是程序中的错误。如果程序有错误,需要程序员排查问题,纠正错误。

所谓debug,就是调试模式运行,程序会在 断点 处停留,方便测试和分析

打断点:觉得哪里不清晰,可能出问题,打个断点停留分析

  • 应用一: 输出 1~100

    a = 1
    while a<101:
        print(a)
        a+=1
    
  • 应用二:计算1+2+3+4+…100

    #需求:1-100数字累加和---1+2+3+4+5+....100 =结果,打印结果
    """
    1.准备做加法运算的数据 1~100增量为1的数字
    2.准备一个变量来保存将来运算的结果
    3.循环来做加法运算
    4.打印结果
    5.验证结果
    """
    
    
    # 在循环之上,定义一个初始累计变量
    c = 0  # 初始为0
    
    a = 1
    while a < 101:
        c = c + a
        a = a + 1
    
    print(c)
    
    # c = 0 + 1
    # c = 0 + 1 + 2
    # c = 0 + 1 + 2 + 3
    # c = 0 + 1 + 2 + 3 + 4
    # c = 0+1+2+3+...99 + 100
    
  • 应用三:输出1~100中的偶数

    # 方法一,修改增量   循环50次
    # a = 2
    # while a <= 100:
    #     print(a)
    #     a += 2
    
    # 方法二,从1~100中去筛选。  循环100次
    a = 1
    while a <= 100:
        if a % 2 == 0:
            print(a)
        a+=1
    
    
  • 应用四:输出1~100中偶数的和

    sum = 0
    
    a = 1
    while a <= 100:
        if a % 2 == 0:
            sum += a
        a+=1
    print(sum)
    

5.1.3 for循环

for循环和while循环本质上没有太大区别,主要看运用场景

while适合不知道循环多少次,你可以使用条件来决定循环

for适合一开始就决定好了怎么循环,已经知道循环的次数

语法

for 变量名 in range(start,end):
    循环体
    
start: 开始的数字
end:结束的数字后一个数字

range(start,end)  包头不包尾   [1,100)
                           
# range里面可以只写1个,默认是从0开始, n就表示尾,            
range(n)
  • 输出1~100
for abc in range(1,101):
    print(abc)
  • 计算1+2+3+…100
k = 0
for x in range(1,101):
    k += x
print(k)

补充for循环

for 变量名 in range(start,end,step=1):
    循环体

应用三:输出1~100中的偶数

for x in range(2,101,2):
    print(x)
  • 案例:登录案例
# 账号:root   密码:123456
"""
	程序运行的时候提示登录,输入账号和密码
		如果正确,则提示登录成功
		如果错误,则提示重新输入账号密码
"""

# 登录循环
while True:
    username = input("请输入账号:")
    password = input("请输入密码:")

    if username == 'root' and password == '123456':
        print("登录成功")
        break
    else:
        print("登录失败,请重新输入")

print("欢迎来到 银行系统")

5.1.4 break和continue

主动控制循环退出的两种方式

break: 退出整个循环

continue: 退出本次循环,继续执行下一次循环

猴子吃10个苹果

  1. 猴子吃的过程中,吃到第3个苹果的时候,吃撑了吃饱了。吃苹果的循环就可以结束了。类比于break。 直接结束吃10个苹果的循环
  2. 猴子吃的过程中,吃到第3个苹果的时候,吃到了一只毛毛虫,扔掉。继续吃第4、5、…10个结束。类比于continue
for i in range(1,11):
    if i == 4:
        break
    print(i)

print("=====================")
for i in range(1,11):
    if i == 3:
        continue
    print(i)

5.1.5 循环else

if 条件布尔值:
    True执行的代码
else:
    False执行的代码
    
    
    
for i in range(1, 11):
    if i == 5:
        break
    print(i)
else:  # 循环 正常 结束后执行的代码
    print("循环执行完毕执行的代码")
 

5.1.6 循环嵌套

for i in range(2):
    for j in range(5):
        print('hello world')
        
2*5 = 10次
每执行一次i,会执行5次hello,world
  • 求3位数的所有可能性
  • x 表示 百位
  • y 表示 十位
  • z 表示 个位
for x in range(1,10):
    for y in range(0,10):
        for z in range(0,10):
            print(x,y,z)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值