• while 循环、格式化输出、运算符


    while 循环

    结构:
    while 条件:
        循环语句
    

    死循环

    while True:
        没有break语句情况下
    

    终止循环

    一、 改变条件 (标志位的概念):一般默认使用flag来作为标志位。

    flag = True
    num = 0
    while flag:
        print(num)
        num = num + 1
        if num < 10:
            flag = False
    

    二、 break 终止循环:跳出它所在的循环体。

    num = 0
    while True:
        print(num)
        num = num + 1
        if num < 10:
            break
    

    计算 1 + 2 + 3 ....100 的结果(三种方式)

    1
    result = 0
    count = 1
    
    while True:
        result += count
        count += 1
        if count == 101:
            break
    print(result)
    
    2
    result = 0
    count = 1
    
    while count < 101:
        result += count
        count += 1
    print(result)
    
    3
    result = 0
    count = 1
    
    flag = True
    while flag:
        result += count
        count += 1
        if count == 101:
            flag = False
    print(result)
    

    continue: 结束本次循环,继续下一次循环。

    while True:
        print(111)
        print(222)
        continue
        print(333)
    

    结果是

    111
    222
    111
    222
    ...
    

    while-else结构:如果while循环被break打断,则不执行else代码。

    count = 1
    while count < 5:
        print(count)
        count = count + 1
        if count == 3: break
    else:
        print(666)
    print(222)
    

    结果是

    1
    2
    222
    

    应用场景:

    • 验证用户名密码,重新输入这个功能需要while循环。
    • 无限次的显示页面,无限次的输入......

    格式化输出

    • 制作一个模板,某些位置的参数是动态的,像这样,就需要用格式化输出。
    • 字符串的动态替换
    name = input('请输入姓名:')
    age = int(input('请输入年龄:'))
    sex = input('请输入性别:')
    

    % 占位符 s 数据类型为字符串 d 数字

    第一种方式:

    msg = '你的名字是%s,你的年龄%d,你的性别%s' % (name,age,sex)
    print(msg)
    

    第二种方式

    msg = '你的名字是%(name1)s,你的年龄%(age1)d,你的性别%(sex1)s' % {'name1':name,'age1':age,'sex1':sex}
    print(msg)
    

    bug 点 在格式化输出中,只想单纯的表示一个%时,应该用%% 表示

    msg = '我叫%s,今年%d,我的学习进度1%%' % ('alex',28)
    print(msg)
    

    运算符

    ==  比较的两边的值是否相等
    = 赋值运算
    != 不等于
    += 举例: count = count + 1  简写 count += 1
    -=
    *=     : count = count * 5   简写 count *= 5
    /=
    **=
    //=
    ...
    

    逻辑运算符:and or not

    优先级:()> not > and > or

    第一种情况,前后条件为比较运算

    print(1 < 2 or 3 > 1)
    print(1 < 2 and 3 > 4)
    print(1 < 2 and 3 > 4 or 8 < 6 and 9 > 5 or 7 > 2)
    print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
    print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6)
    

    第二种情况,前后两边的条件为数值

    '''
    x or y if x is True,return x
    '''
    print(1 or 2)
    print(1 and 2)
    print(5 or 2)
    print(5 and 2)
    print(0 or 2)
    print(-1 or 2)
    

    int与bool之间的转换

    • 0 对应的bool值为False,非0 都是True.
    • True 1 ,False 0
    print(bool(100))
    print(bool(-1))
    print(bool(0))
    print(int(True))
    print(int(False))
    

    变态面试题:思考

    print(1 > 2 or 3 and 4 < 6)
    print(2 or 3 and 4 < 6)
    

    答案为:

    True
    2
    
    如果 x or y 语句中x为真,即为x,否则为y
        真 or 真 --> x
        真 or 假 --> x
        假 or 真 --> y
        假 or 假 --> y
    >>> 3 or 4
    3
    >>> 3 or 0
    3
    >>> 0 or 3
    3
    >>> '' or 0
    0
    
    如果 x and y 语句中x为假,即为x,否则为y
        真 and 真 --> y
        真 and 假 --> y
        假 and 假 --> x
        假 and 真 --> x
    
    深层次理解:
    由于or的特性是只要一个为真就判定为真,即判断x为真后,不用再来判断y。若x为假后才会判定y,所以是结果为y。   这样的话程序就能以最小的步数来执行并得到结果。
    由于and的特性是只要一个为假就判定为假,即判断x为假后,不用再来判断y。若x为真后才会判定y,所以是结果为y。  这样的话程序就能以最小的步数来执行并得到结果。
    

    and&or

  • 相关阅读:
    Dev gridControl 按回车增加一行
    Web自动化----常见组件操作
    Web自动化----切换(iframe,浏览器窗口,alret)
    Web自动化----元素等待方法(显式等待和隐式等待)
    Web自动化----模拟动作(鼠标,快捷键,拖拽)
    MySQL的20条基本优化 加参考资料
    国内IT技术博客对比
    博客客户端文章测试
    QQ登录网站接入
    微信公众号本地开发调试工具
  • 原文地址:https://www.cnblogs.com/lanhoo/p/9416389.html
Copyright © 2020-2023  润新知