• Python之条件、循环语句


    1、条件语句

    #语法:
    if <条件判断1>:
        <执行1> 
    elif <条件判断2>:
        <执行2> 
    elif <条件判断3>:
        <执行3> 
    else:
        <执行4>

    if 语句执行有个特点,它是从上往下判断,如果在某个判断上是 True,把该判断对应的语句执行后,就忽略掉剩下的 elif 和 else

    当 if 有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

    逻辑运算符:
    True、False
    or、andnot
    例:if (num >= 0 and num <= 5) or (num >= 10 and num <= 15)
    ==、>、<、>=、<=、!=、<>


    2、循环语句

    for 循环

    for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    语法1:
    for 条件
        <执行>
    

    语法2:
    for 条件
        <执行>
    else
        <执行>
    '''
    for 中的语句和普通的没有区别
    else 中的语句会在循环正常执行完
    (即 for 不是通过 break 跳出而中断的)的情况下执行
    while … else 也是一样。
    '''

    例子:

    # 例1
    for letter in 'Python':  # 第一个实例
        print('当前字母 :', letter)
    
    fruits = ['banana', 'apple', 'mango']
    for fruit in fruits:  # 第二个实例
        print('当前水果 :', fruit)
    
    '''
    当前字母 : P
    当前字母 : y
    当前字母 : t
    当前字母 : h
    当前字母 : o
    当前字母 : n
    当前水果 : banana
    当前水果 : apple
    当前水果 : mango
    '''
    
    # 例2
    _user = 'hjc'
    _pass = '123'
    for i in range(4):
        username = input("username:")
        password = input("password:")
        if username == _user and password == _pass:
            print("welcome...", username)
            break
        else:
            print("invalid username or password")
    else:  # 只要上面的 for 循环执行完毕,才执行 else 下的内容
        print("too many times retries")
    
    # 例3
    fruits = ['banana', 'apple', 'mango']
    for index in range(len(fruits)):
        print('当前水果 :', fruits[index])
    
    
    
    # 例4
    for num in range(1, 6):
        print(num)
    else:
        print('done')
    '''
    1
    2
    3
    4
    5
    done
    '''


    while 循环

    语法1:只要条件满足,就不断循环,条件不满足时退出循环。
    while 判断条件:
        执行语句。。。
    
    语法2:只要条件满足,就不断循环,条件不满足时执行 else: 下的语句。
    while 判断条件:
        执行语句。。。
    else:
        执行语句。。。
    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)
    # 在循环内部变量n不断自减,直到变为-1时,不再满足while条件,循环退出。


    3、循环控制语句

    break

    表示跳出循环的层数,如果省略n表示跳出整个循环

    例1:
    for letter in 'Python':
        # First Example
        if letter == 'h':
            break
    print('Current Letter :', letter)
    # Current Letter : h
    


    例2:
    var = 10  
    while var > 0:
        print('Current variable value :', var)
        var = var - 1
        if var == 5:
            break
    '''
    Current variable value : 10
    Current variable value : 9
    Current variable value : 8
    Current variable value : 7
    Current variable value : 6
    '''


    continue

    表示退到第n层继续循环,如果省略n表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环

    # 第一个实例
    for letter in 'Python':  
        if letter == 'h':
            continue
        print('当前字母 :', letter)
    
    '''
    当前字母 : P
    当前字母 : y
    当前字母 : t
    当前字母 : o
    当前字母 : n
    '''
    
    
    # 第二个实例
    var = 10  
    while var > 0:
        var = var - 1
        if var == 5:
            continue
        print('当前变量值 :', var)
    '''
    当前变量值 : 9
    当前变量值 : 8
    当前变量值 : 7
    当前变量值 : 6
    当前变量值 : 4
    当前变量值 : 3
    当前变量值 : 2
    当前变量值 : 1
    当前变量值 : 0
    '''


    pass

    不做任何事情,只起到占位的作用

    for letter in 'Python':
        if letter == 'h':
            pass
            print('这是 pass 块')
        print('当前字母 :', letter)
    
    '''
    当前字母 : P
    当前字母 : y
    当前字母 : t
    这是 pass 块
    当前字母 : h
    当前字母 : o
    当前字母 : n
    '''




    4、条件语句练习

    题1:

    # 提示输入用户名和密码
    # 验证用户名和密码
    # 如果错误,则输出用户名或密码错误
    # 如果成功,则输出 欢迎,XXX!
    
    import getpass
    name = input('请输入用户名:')
    pwd = getpass.getpass('请输入密码:')
    if name == "alex" and pwd == "cmd":
        print("欢迎,alex!")
    else:
        print("用户名和密码错误")

    题2:

    # 根据用户输入内容打印其权限
    # alex --> 超级管理员
    # eric --> 普通管理员
    # tony,rain --> 业务主管
    # 其他 --> 普通用户
    name = input('请输入用户名:')
    if name == "alex":
        print("超级管理员")
    elif name == "eric":
        print("普通管理员")
    elif name == "tony" or name == "rain":
        print("业务主管")
    else:
        print("普通用户")

    题3:

    # 猜年龄
    age_of_princal = 56
    guess_age = input("your input:")
    if guess_age.isdigit():
        guess_age = int(guess_age)
        if guess_age == age_of_princal:
            print("yes")
        elif guess_age > age_of_princal:
            print("you input is large")
        else:
            print("you input is smaller")
    else:
        print("you input is no num")


    5、循环语句练习

    a.使用while循环实现辅出2-3+4-5+6…+100的和
    count = 1
    s = 0
    while count <= 10:
        if count % 2 == 0:
            s += count
        else:
            s -= count
        count += 1
    print(s)
    
    
    
    b.使用while循环实现输出1,2,3,4,5,7,8,9,11,12
    count = 1
    while count <= 10:
        if count == 6 or count == 10:
            pass
        else:
            print(count)
        count += 1
    
    
    
    c.使用while循环输出10-5,从大到小,如10,9,8…,到5时再从0循环输出到5然后结束
    count = 10
    while count >= 5:
        print(count)
        count -= 1
        if count == 4:
            count1 = 0
            while count1 <= 5:
                print(count1)
                count1 += 1
    
    
    d.使用while循环实现输出1-100内的所有奇数
    e.使用while循环实现输出1-100内的所有偶数
    
    count = 10
    while count <= 10:
        if count % 2 != 0:
            print(count)
        count += 1
  • 相关阅读:
    剑指offer——二叉树的深度
    剑指offer——约瑟夫环
    剑指offer——矩阵中的路径
    剑指offer——机器人的运动范围
    Java一些知识
    剑指offer——判断链表中是否有环
    无序数组array, 找到数组中两个数的最大差值
    剑指offer——二叉搜索树的第k个节点
    记录结果再利用的"动态规划"之背包问题
    倍增算法
  • 原文地址:https://www.cnblogs.com/tootooman/p/8963996.html
Copyright © 2020-2023  润新知