zoukankan      html  css  js  c++  java
  • Python流程控制


     本文链接:https://www.cnblogs.com/zyuanlbj/p/11912920.html


     Python 同样提供了现代编程语言都支持的两种基本流程控制结构,分支结构和循环结构:

    • 分支结构用于实现根据条件来选择性地执行某段代码
    • 循环结构用于实现根据循环条件重复执行某段代码

    if分支

    单一分支

    """
    if 条件表达式:
        [代码块]
    [后续代码]
    执行流程:如果条件表达式为真,则执行[代码块]。否则不执行,直接执行if语句后面的[后续代码]。
    注意:
    - [代码块]必须缩进
    - 单if语句可以嵌套
    """

    示例:

    age = int(input('输入年龄:'))
    username=input('输入用户名')
    if age>18 and  username:  # True and False --->False
        print('{}今年{}岁了!'.format(username,age))
        
    print('---game over----')

    双向分支

    if 条件表达式:
        [语句块A]
    else:
        [语句块B]
    [后续代码]
    执行流程:如果条件表达式为真,执行[语句块A],然后执行[后续代码],否则执行[语句块B],然后再执行[后续代码],二选一,不可能既执行A又执行B。
    注意: 
    - [语句块A]和[语句块B]必须缩进
    - if-else可以嵌套

    示例:

    username = input('请输入用户名:')
    password = input('请输入密码:')
    
    is_remember = '123456'
    if is_remember == password:
        print('已经记住{}的密码啦'.format(username))
    else:
        print('密码错误,请重新输入!')

    多向条件分支

    """
    if 条件1:
        [代码段1]
    elif 条件2:
        [代码段2]
    ............
    elif 条件n:
        [代码段n]
    else:
        [else语句块]
    [后续代码]
    执行流程:多选一,如果满足条件1,执行[代码段1],然后跳出if-elif语句,执行[后续代码],否则判断是否满足条件2,如果满足执行[代码段2],然后跳出if-elif语句,[后续代码]...。如果所有条件都不满足,执行[else语句块],然后再执行[后续代码]。
    注意:else是可选的,可以写也可以不写。
    """

    示例:

    """
    任意输入年、月、日,输出这一天是这一年的第几天
        提示:考虑是否是闰年
        闰年判断条件:
            1. 能被4整除不能被100整除
            2. 能被400整除
            两个条件,任满足一个即可
    """
    year = int(input('输入年份:'))
    month = int(input('输入月份:'))
    date = int(input('输入日期:'))
    
    days = 0
    is_correct = True
    
    # 判断是否是闰年
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        february = 29
    else:
        february = 28
    
    # 判断月份
    if month == 1:
        days = date
    elif month == 2:
        days = 31 + date
    elif month == 3:
        days = 31 + february + date
    elif month == 4:
        days = 31 + february + 31 + date
    elif month == 5:
        days = 31 + february + 31 + 30 + date
    elif month == 6:
        days = 31 + february + 31 + 30 + 31 + date
    elif month == 7:
        days = 31 + february + 31 + 30 + 31 + 30 + date
    elif month == 8:
        days = 31 + february + 31 + 30 + 31 + 30 + 31 + date
    elif month == 9:
        days = 31 + february + 31 + 30 + 31 + 30 + 31 + 31 + date
    elif month == 10:
        days = 31 + february + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date
    elif month == 11:
        days = 31 + february + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date
    elif month == 12:
        days = 31 + february + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date
    else:
        print('月份输入有误,请重新输入!!!')
        is_correct = False
    
    if is_correct:
        print('{0}-{1}-{2}是{0}年的第{3}天'.format(year, month, date, days))

    Python pass语句

    有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。通过使用 pass 语句,可以让程序更完整。

    示例:

    age = int(input("请输入您的年龄:"))
    if age >= 0 and age <= 120:
        pass
    else:
        print('输入的年龄不在范围内!')

    Python assert断言

    assert 断言语句和 if 分支有点类似,它用于对一个 bool 表达式进行断言,如果该 bool 表达式为 True,该程序可以继续向下执行;否则程序会引发 AssertionError 错误。

    示例:

    age = int(input("请输入您的年龄:"))
    assert 20 < age < 80
    print("您输入的年龄在20和80之间")
    
    """
    请输入您的年龄:1
    Traceback (most recent call last):
      File "C:/Users/Administrator/Desktop/day19/test.py", line 5, in <module>
        assert 20 < age < 80
    AssertionError
    
    请输入您的年龄:35
    您输入的年龄在20和80之间
    """

    循环

    • 广义:一个周期现象或者重复出现的情况,这种状态被称为循环。
    • 狭义:在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环。被反复执行的这段代码被称为循环体。
    • 当反复执行某段代码时,需要在合适的时机将循环停止下来,否则会产生死循环。

    Python中提供的循环语句:while语句,for-in语句。

    while循环

    while语法

    """
    while 表达式:
        循环体
    工作原理:遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,继续执行下面的代码;如果表达式的值为真,则执行循环体。
    """

    示例:

    """
    求1--100之间可以被7整除的数的个数
    """
    count = 0
    var = 100
    while var > 0:
        if var % 7 == 0:
            count += 1
        var -= 1
    print('---->:', count)  # ---->: 14

    while-else

    """
    while 表达式:
        循环体
    else:
        [else语句块]
    """

    说明:当while语句执行完成之后,执行[else语句块],如果用break跳出循环则不执行else。

    示例:

    total = 0
    var = 1000
    while var > 0:
        if var % 3 == 0 and var % 5 == 0 and var % 7 == 0:
            total += var
            print('------>', var)
        var -= 1
    else:
        print('~' * 30)
    print('------>:', total)

    死循环

    在循环语句中,表达式永远为真的循环。

    """
    while True:
        循环体
    while 1:
         循环体
    """

    while语句的嵌套

    """
    while 条件1:     #外层循环
        [语句块A]
            while 条件2:   #内存循环
                [语句B]
    执行流程:首先判断外层循环的条件1,如果为真,则执行循环体中的 [语句块A],执行内层循环,判断条件2是否成立,如果成立,执行内层循环的[语句B],执行完内层循环后,重新判断外层循环条件...
    """
    • 特点:外层循环走一步,内层循环执行一遍;外层循环和内层循环的循环变量必须不同。

    break、continue和exit()

    • continue 语句用来跳过当前循环的剩余语句,然后重新判断循环条件,开启下一轮循环。continue只能出现在while和for循环中。
    • break用于结束当前循环。只对当前这一重循环起作用。break只能出现在循环中。
    • exit()结束程序。

    示例:

    """
    从键盘上输入一个整数,如果等于你规定的整数,就猜中了,
    如果小于规定的数,提示“小了”,否则提示“大了”,直到猜中位置
    """
    
    import random
    
    correct_num = random.randint(1, 10)
    while True:
        num1 = int(input('输入一个整数:'))
        if num1 == correct_num:
            print('恭喜你,猜对了!!!')
            break
        elif num1 < correct_num:
            print('猜小了!继续猜哦')
        else:
            print('猜大了!继续猜哦')

    for-in循环

    for 循环的语法格式如下:

    """
    for 迭代变量 in 字符串|列表|元组|字典|集合:
        代码块
    
    for .... else
    else:适用于for执行完或者没有循环数据时,需要做的事情
    
    for i in 范围:
        有数据执行的语句
    else:
        没有数据执行的语句
    """

    示例:

    import random
    
    str1 = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
    verification_code = ''
    
    for i in range(4):
        ran = random.randint(0, len(str1) - 1)
        verification_code += str1[ran]
    
    print('验证码是:' + verification_code)
    
    user_input = input('请输入验证码:')
    if user_input.lower() == verification_code.lower():
        print('输入正确,继续下一步操作!')
    else:
        print('输入错误,下次再来!')

    Python循环结构中else用法

    Python 中,无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是,当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。

    Life is short, you neeed python.
  • 相关阅读:
    浅谈线性 Linear
    Github TinyRenderer渲染器课程实践记录
    蓝点无限UWB TDOA 低功耗标签 功耗测试
    UWB DW1000 BP30 测距代码架构
    C语言
    C语言
    张量tensor 和张量分解 tensor decomposition
    Manifold learning流行学习和谱聚类
    机器学习里面的核kernel, 维数灾难
    机器学习评价方法
  • 原文地址:https://www.cnblogs.com/zyuanlbj/p/11912920.html
Copyright © 2011-2022 走看看