• python | if else || where true 流程控制


    流程控制

    流程控制即 控制流程, 具体指控制程序的执行流程, 而程序的流程分为三种,

    • 顺序结构(以前写的代码都是顺序结构)
    • 分支结构(if 判断)
    • 循环结构(while 和 for 循环)

    分支结构

    什么是分支结构

    分支结构就是根据条件判断的真假去执行不同的代码块.

    为什么要用分支结构

    人类某些时候要根据条件决定做什么事情, 比如, 今天下雨, 带伞.
    是最基本的逻辑判断.

    如何使用分支结构

    if 语法

    用if关键字实现分支结构.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if 条件1:  
    代码块1
    ......
    elif 条件2:
    代码块2
    ......
    elif 条件3:
    代码块3
    ......
    else:
    代码块4.
    # 如果以上条件符合, 则执行下面相应的代码.以上代码块能且只能执行一块.


    # 1. python 用相同的缩进(四个空格表示一个缩进) 来标识一组代码. 同一组代码块
    # 2.条件可以是任意表达式, 但执行结果必须为bool类型
    # 在if 判断中的所有的数据类型都会转换为布尔类型
    # None, 0 ,[],"",{} , 换算成bool值都为False , 非空即真

    if 应用案例

    1
    2
    3
    4
    5
    # 案例1
    # 如果: 女人年龄>3岁, 那么叫阿姨
    age = input("输入年龄>>:")
    if age >30:
    print("叫阿姨!"")
    1
    2
    3
    4
    5
    6
    7
    # 案例2
    # 如果 年龄>30 叫阿姨, 否则叫姐姐
    age = input("输入年龄>>:")
    if age >30:
    print("叫阿姨!"")
    else:
    print("叫姐姐1")
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 案例3
    # 如果女人年龄>= 18 并且<= 22 岁 并且身高>170 体重<100 并且是漂亮的. 那么表白. 否则. 阿姨好
    age = input("输入年龄>>:")
    height = input("目测身高>>:")
    is_beauty = True
    weight = input("目测体重>>:")

    if 18<= age <= 22 and height >170 and weight < 100 and is_beauty:
    print("表白")

    else:
    print("叫阿姨")

    练习登录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    username_from_db = "zhang"
    password_from_db = 123
    count = 0
    tag = True
    while tag:
    username = input("please input your username>>:").strip()
    password = input("please input your password>>:").strip()
    if username == username_from_db and password == password_from_db:
    print("登录成功")
    while tag:
    cmd = input(">>:")
    if cmd == "exit":
    tag = False
    else:
    print(f"调用{cmd}功能")
    else:
    print("用户名或密码错误,请重新收入")
    count += 1

    if count == 3:
    print("输错超过三次, 账号已锁定")
    tag = False

    循环结构

    while 循环语法

    python中 有while 与for 两中循环机制, 其中while 称之为条件循环.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    while 条件:
    代码1
    代码2
    ......


    # while 的运行步骤,
    # 步骤1 : 如果条件成立,则依次执行代码1,代码2 ...
    # 步骤2: 执行完毕后, 再次判断条件,如果条件仍然成立,则再次执行代码1,代码2,代码3

    案例1
    用户认证

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    username_from_db = "zhang"
    password_from_db = 123
    count = 0
    while count <3:
    username = input("please input your username>>:").strip()
    password = input("please input your password>>:").strip()
    if username == username_from_db and password == password_from_db:
    print("登录成功")
    else:
    print("用户名或密码错误,请重新收入")
    count +=1

    案例二 while + break 的使用
    使用while 循环后, 当登录成功, 则需要后续操作, 需要结束本层循环 , 那么就需要break.

    • break 结束本层循环. 结束后 循环内代码都不执行.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      username_from_db = "zhang"
      password_from_db = 123
      # 记录验证错误次数
      count = 0
      while count <3:
      username = input("please input your username>>:").strip()
      password = input("please input your password>>:").strip()
      if username == username_from_db and password == password_from_db:
      print("登录成功")
      break # 用于结束本层循环
      else:
      print("用户名或密码错误,请重新收入")
      count +=1

    案例三, while 循环嵌套+ break
    如果while 循环嵌套了很多层, 想要退出每层循环,则需要在每层都有一个break

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    username_from_db = "zhang"
    password_from_db = 123
    count = 0
    while True:
    username = input("please input your username>>:").strip()
    password = input("please input your password>>:").strip()
    if username == username_from_db and password == password_from_db:
    print("登录成功")
    while True: # 第二层循环
    cmd = input(">>:")
    if cmd == "exit":
    break # 退出第二层循环
    else:
    print(f"调用{cmd}功能")
    else:
    print("用户名或密码错误,请重新收入")
    count += 1

    if count == 3:
    print("输错超过三次, 账号已锁定")
    break # 退出第一场循环

    案例四, while 循环嵌套, + tag 的使用
    针对嵌套多层的while循环, 如果当满足某个条件就退出所有循环, 就可以使用tag , 即 将tag 初始值为 True , 当满足某个条件后 tag 更改为False , 就会退出所有层循环

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    username_from_db = "zhang"
    password_from_db = 123
    count = 0
    tag = True
    while tag:
    username = input("please input your username>>:").strip()
    password = input("please input your password>>:").strip()
    if username == username_from_db and password == password_from_db:
    print("登录成功")
    while tag:
    cmd = input(">>:")
    if cmd == "exit":
    tag = False
    else:
    print(f"调用{cmd}功能")
    else:
    print("用户名或密码错误,请重新收入")
    count += 1

    if count == 3:
    print("输错超过三次, 账号已锁定")
    tag = False

    案例五 while + continue 的使用.

    • break 代表结束本层循环,
    • continue 代表结束本次循环, 进入下一次循环
      1
      2
      3
      4
      5
      6
      7
      num = 10
      while num >1:
      num -=1
      if num ==6:
      continue # 结束到本次循环, 后面的代码则不会再运行, 直接进入下一次循环.
      print(num)
      # 结果 6 则不打印,
      案例六, while 与 else 的使用 .
      当循环正常结束后, 执行else 后语句, 用来验证 循环是否正常结束.
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      count = 0
      while count <5:
      count +=1
      print(f"这是第{count}次循环")
      else:
      print("循环正常结束")
      print("*"*50)

      # 输出
      这是第1次循环
      这是第2次循环
      这是第3次循环
      这是第4次循环
      这是第5次循环
      循环正常结束
      **************************************************
      如果执行过程中用break , 则不会执行else语句.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    count = 0
    while count <5:
    count +=1
    if count ==3:
    break
    print(f"这是第{count}次循环")
    else:
    print("循环正常结束")
    print("*"*50)
    # 输出结果
    这是第1次循环
    这是第2次循环
    **************************************************

    for 循环语法.

    循环结构的第二种实现方法是 for 循环, for 循环可以做的事情 while循环都可以实现,之所以使用for 是因为, for循环在遍历取值时, 更为简洁.

    • for 循环语法如下
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15

      for 变量名 in 可迭代对象: # 可迭代对象为, 字典,列表, 字符串, 等..
      代码1
      代码2

      # 例子
      for i in [1,2,3,4]:
      print(i)

      # 输出结果
      1
      2
      3
      4
      # 循环是, 将列表[1,2,3,4] 中的值分别取出并赋值给i 然后打印i 直到列表值取完.
      案例1 , 打印数字1-5
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      # for 版本
      for count in range(6):
      print(count)

      # while 版本
      count = 0
      while count<6:
      print(count)
      count +=1

      # range 有三个参数, start = 其实数字 end = 结束数字. sep =步长
      # range 顾头不顾尾.
      遍历字典, 得到的是字典中的key 而不是 值.
      1
      2
      3
      4
      5
      6
      for k in {"name":"Evgeny", "age":18}
      print(k)

      # 输出结果
      name
      age
      案例 三, for 循环嵌套.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 使用for 循环嵌套的方式打印以下图形
    ****
    ****
    ****

    for i in range(3):
    for j in range(4):
    print("*", end = "")
    print() # 表示换行

    注意: break 与continue 也可以用于for循环, 使用发放与while循环相同.

  • 相关阅读:
    oracle
    SQL Server- 行列转换 行转列,多行转多列
    oracle
    asp.net 去掉小数点后面多余的0,本身为0则不显示
    asp.net 去掉小数点后面多余的0,本身为0还是显示为0
    asp.net 经常用到需要判断文本框是否输入的数字是小数,有无正负,几位小数,可以封装一起判断
    ASP.NET gridview导出excel,防止繁体产生有乱码的方式
    SQL- @@ROWCOUNT -返回上一行执行影响的行行数
    mui-a标签跳转
    浏览器地址截取
  • 原文地址:https://www.cnblogs.com/huangjiangyong/p/14089088.html
Copyright © 2020-2023  润新知