Python基础篇(4)---流程控制
本章内容
• 流程控制
· 顺序结构
· 分支结构
· 顺序结构
• 分支结构
· 单if分支
· if的嵌套
• 循环结构
· while循环
· for循环
流程控制
流程控制就是控制事务的执行流程。执行流程的分类有顺序结构,分支结构,循环结构。
顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
流程图如下:

分支结构的执行是依据一定的条件选择执行流程,而不是严格按照语句出现的物理顺序。
流程图如下:

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环
流程图(以while循环为例子)如下:

必知必会的知识:代码之间的从属关系。
1.在Python中我们使用缩进来表示代码的从属关系
   if a > b:
       print("111")  # 属于if判断的子代码,是否执行由if判断的结构决定
2.并不是所有的代码都有子代码
     目前学习到的有子代码的有 if else elif while for 等
     像input print 就没有子代码
3.如果多行代码属于同一个父代码,那么这些多行代码需要保持相同的缩进。
   在Python中推荐使用四个空格表示缩进,增加代码的可读性。
4.具有系统缩进量的代码彼此间是按照顺序结构执行的,并没有从属关系。
分支结构
分支结构就是根据条件判断的真假去执行不同分支对应的子代码,让计算机具备判断能力。
'''
语法结构
   if 条件:
     条件成立后执行的子代码(可以多行)
'''
案例:如果女孩子的年龄大于38 叫阿姨
    age_of_girl=31    # 先定义一个女孩子的年龄
    if age_of_girl > 38:   # 判断年龄是否大于38
         print('阿姨好')

"""
语法结构
    if 条件:
        条件成立之后执行的子代码(可以有多行)
    else:
        条件不成立执行的子代码(可以有多行)
"""
案例:如果女孩子的年龄大于38 叫阿姨 否则叫小姐姐
    age = 18
    if age > 38:
        print('阿姨好')
    else:
        print('小姐姐')
 
"""
语法结构
    if 条件1:
        条件1成立执行的子代码(可以有多行)
    elif 条件2:
        条件1不成立条件2成立执行的子代码(可以有多行)
    elif 条件3:
        条件1和2都不成立 条件3成立执行的子代码(可以有多行)
    else:
        上述所有的条件都不成立执行的子代码(可以有多行)
    中间的elif可以有多个
"""
案例:女孩年龄大于30 叫阿姨  小于30大于18 叫小姐姐 小于18 叫小女孩
      age = 18
      if age > 38:
          print('阿姨')
      elif age > 18:
          print("小姐姐")
      else:
          print('小女孩')

案例:如果女孩年龄大于38,不好意思认错了,否则就上去要微信
       如果要微信成功,则去约会.
    age = 22
    is_success = True
    if age < 38:
        print('可以加你微信吗,小姐姐')
        if is_success:
            print('我们去约会吧')
        else:
            print('切,不给就不给!')
    else:
        print('哎呀不好意思 认错人了')
循环结构
循环结构是流程控制里很重要的一个结构,我们目前学的循环结构有while循环和for循环。
♦ while循环
"""
语法结构
    while 条件:
        条件成立之后执行的循环体代码
1.先判断条件是否成立 如果成立则执行循环体代码
2.循环体代码执行完毕后 再次判断条件是否成立 如果成立则继续执行循环体代码 如果不成立则跳出循环
"""
案例:
     while True:        # 1.获取用户的用户名和密码
        username = input('username>>>:')
        password = input('password>>>:')
        if username == 'jason' and password == '123':   # 2.校验/判断用户名和密码是否正确
            print('登录成功')
        else:
            print('用户名或密码错误')

while+break的使用
break 用于直接结束本层的循环 """ break只能结束所在的那一层循环 """
案例:
num=1 sum=0 while True: sum=num+sum num=num+1 if num==101: break # 计算1到100间的和 到101的时候直接结束循环 print(sum)

while+continue的使用
continue 用于结束本次循环,继续下次循环
案例:
    while True:
         print(111)
         print(222)
         continue  # 结束本次循环 开始下一次循环
         '''直接跳到条件判断的地方重新执行'''
         print(333)  # 无法输出”333“,一直在循环输出”111“ ”222“
 
while+else的使用
# while与else连用
    当while没有被关键字break主动结束的情况下 
    正常结束循环体代码之后会执行else的子代码
    """
    while 条件:
        循环体代码
    else:
        循环体代码正常运行结束 则会执行该子代码块
    """
    count = 1
    while count < 10:
        if count == 4:
            break
        print(count)
        count += 1
    else:
        print('while循环寿终正寝了!!!')
# 死循环有些时候会极度的影响电脑的性能 甚至会造成硬件的损坏 死循环就是永远无法结束的循环并且一致占用CPU工作 count = 10 while True: count *= 1 # while嵌套 flag = True while flag: username = input('username>>>:') password = input('password>>>:') if username == 'jason' and password == '123': print('登录成功') while flag: cmd = input('请输入您的指令>>>:') if cmd == 'q': print('下次光临') flag = False print('正在执行您的指令:%s' % cmd) else: print("用户名或密码错误")
♦ for循环
"""
for循环可以做到的事情while循环都可以做到!!! 
    但是for循环语法更加简单 使用频率更高
"""
一般情况下涉及到循环取值的时候 都会考虑使用for循环而不是while循环
"""
语法结构
    for 变量名 in for循环对象:  # 字符串、列表、字典、元组、集合
        for循环的循环体代码
    每次执行都会将循环对象中的一个元素赋值给变量名
ps:针对for循环语法结构中的变量名 也应该做到见名知意
案例
name_list = ['jason', 'kevin', 'tony', 'tank', 'oscar'] # 使用for循环依次打印出列表中所有的元素 for name in name_list: print(name) #循环字符串:依次取出每一个字符 for i in 'hello world': print(i) # 循环字典(特殊):循环字典只能获取到字典的key value无法直接获取 userinfo_dict = {'username': "jason", 'age': 18, 'gender': 'male'} for i in userinfo_dict: print(i) # 循环元组 for i in (11, 22, 33, 44, 55): print(i) 循环集合:字典与集合内部的元素都是无序的
补充知识
# for+break
    break结束本层for循环
# for+continue
    continue结束本次for循环 直接开始下一次
# for+else
    for循环正常结束之后运行else子代码
"""与while一致"""


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号