• python 运算和流程控制


    写在之前

    今天突发奇想,想要弄一个微信自动抢红包的程序,首先去百度这个,找到了有两种方法

    一种是安装「pocoui」这个第三方库,但没有给出详细代,我就没有使用这个方法。

    我用使用的是第二种借助「Airtest IDE」工具,在进行cv大法的时候,发现连接上了我的Android手机,但是运行打开微信的代码时,没有打开我的微信,我也不知道是代码的问题还是我手机的问题,因为运用了其他的工具,我也没有去深入了解。

    01 三种格式化输出的方式

    python从创建到现在,已经更新到python3.8.x,也诞生了三中格式化输出的方式。

    那么什么叫格式化输出?

    符合某种规范的print

    什么叫格式化?

    符合的规范叫做格式化

    第一种格式化方式(python 3.0)

    占位符

    name = 'Thousand_Mesh'
    age = 16
    print('my name is %s my age is %s' % (name, age))
    my name is Thousand_Mesh my age is 16
    
    age = 16
    print('my age is %d' % age)
    my age is 16
    

    %s(针对所有数据类型)、%d(仅仅针对数字类型)

    format格式化 (python 3.4)

    讲真,很鸡肋的格式化的方法,如果你需要使用这个,遇到多参数的时候,还是需要在句子后面噼里啪啦传上一大堆参数。使用这个不如用占位符或下面的f-String格式化。

    name = 'Thousand_Mesh'
    age = 16
    print("Hello, {}. You are {}.".format(name, age))
    Hello, Thousand_Mesh. You are 16.
    

    f-String 格式化

    相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,这是目前我用的最多的方式,推荐使用这种方式。

    name = "Thousand_Mesh"
    age = 16
    print(f"Hello, {name}. You are {age}.")
    Hello, Thousand_Mesh. You are 16.
    

    大写的F也适用。

    name = "Thousand_Mesh"
    age = 16
    print(F"Hello, {name}. You are {age}.")
    Hello, Thousand_Mesh. You are 16.
    age = 16
    print(f'{age*2}')
    32
    

    .xf 可以去小数

    salary = 6.6666
    print(f'{salary:.2f}')
    

    02 基本运算符

    算术运算符

    算术运算符就是我们从小学就开始抓起的加减乘除,这里我就不多介绍,如果认为有问题的同学,可以抽空回到小学联系你小学班主任,让他给你补补课。

    print(1+2)
    3
    x = 10
    y = 20
    res = x+y
    print(res)
    30
    # /有零有整除,得到一个浮点型
    print(10/3)
    3.3333333333333335
    # 地板除,只取整数部分
    print(10//3)
    print(10//4)
    3
    2
    # %:取余
    print(10 % 3)
    1
    # **,幂
    print(10**3)
    1000
    

    029-基本运算符-算术运算符.jpg?x-oss-process=style/watermark

    比较运算符

    此处直接贴图了,以下假设变量a为10,变量b为20。

    029-基本运算符-比较运算符.jpg?x-oss-process=style/watermark

    pwd = '123'
    print(pwd != '123')
    print(pwd == '123')
    False
    True
    l1 = [1, 'a', 3]
    l2 = [3]
    print(l1 < l2)  # False
    True
    try:
        l3 = [1, 3]
        print(l1 < l3)  # 报错,列表比较大小仅限于同一位置的对应的值是相同的类型
    except Exception as e:
        print(e)
    name 'l1' is not defined
    

    赋值运算符

    此处直接贴图了,以下假设变量a为10,变量b为20。

    029-基本运算符-赋值运算符.jpg?x-oss-process=style/watermark

    age = 19 #(一元赋值运算符)
    age = age + 1
    print(age)
    20
    age = 19
    age += 1 #(二元赋值运算符)
    print(age)
    20
    age = 19
    age *= 10
    print(age)
    190
    

    逻辑运算符

    返回True或Flase(二元运算符)

    此处直接贴图了,以下假设变量a为10,变量b为20。

    029-基本运算符-逻辑运算符.jpg?x-oss-process=style/watermark

    # 从左到右的方式找到逻辑运算符,找到逻辑运算符的左边,左边成立,再去找到逻辑运算符的右边
    print(3 > 3 and 1 > 2 or 2 > 1)  # False
    True
    

    身份运算符

    身份运算符用于比较两个对象的存储单元。比较的是两者id返回布尔值

    029-基本运算符-身份运算符.jpg?x-oss-process=style/watermark

    is和==的区别:is用于判断两个变量引用对象是否为同一个(是否在同一块内存空间中), ==用于判断引用变量的值是否相等。

    x = 257
    y = x
    z = 257
    
    print(f'x is y:{x is y}')
    print(f'x == y:{x == y}')
    
    print(f'x is z:{x is z}')
    print(f'x == z:{x == z}')
    x is y:True
    x == y:True
    x is z:False
    x == z:True
    

    Python运算符优先级

    python运算符的优先级相当于数学中的先算乘除再算加减,但是这很愚蠢,优先级高的你括号括起来就行了...

    029-基本运算符-python运算符优先级.jpg?x-oss-process=style/watermark

    03 流程控制之if 判断

    你现在在十字路口,过马路。如果看到绿灯就过马路;否则看到红灯就等待

    if就是如果的意思

    light = 'red'

    if light == 'red':

    print('等')

    怎么使用if判断

    最简单的if(单分支结构)

    <代码块1>
    if <条件>:
    <代码块2> # 当条件为True的时候执行代码块2然后执行代码块3,否则不执行代码块2直接执行代码块3 # tab
    <代码块3> # 当条件不成立时直接运行代码块3

    light = 'green'
    
    if light == 'red':
    
    print('等')
    
    print('啥子')
    

    双分支结构

    <代码块1>
    if <条件>:
    <代码块2> # 当条件为True的时候执行代码块2然后执行代码块3 # tab
    else:
    <代码块4> # 当条件不成立时,运行代码块4,然后再运行代码块3
    <代码块3> # 当条件不成立时首先运行代码块4,然后运行代码块3

     light = 'yellow'  # 1
     if light == 'red':
         print('等')   # 2
     else:
         print('闯马路')  # 4
    print('shit')  # 3
    

    多分支结构

    elif <条件n>:
    <代码块n>
    else:
    <代码块4> # 当if和elif的所有条件都不成立时,执行代码块4,然后执行代码块3
    <代码块3>

    light = 'white'  # 1
    if light == 'red':
        print('等')  # 2
    elif light == 'yellow':
        print('注意')
    elif light == 'green':
        print('一起牵着手过马路吧')
    else:
        print('傻子,没有这个信号灯')  # 4
    print('shit')  # 3
    

    if 的嵌套

    多个if判断和if...elif...else的区别?

    对于猜年龄这个应用而言,多个if耗费更多的时间

    age = 18
    
    inp_age = int(input('age:'))  # 17
    
    if age > inp_age:  # a  # a成立就做,和b,c无关
        print('猜大了')
    if age < inp_age:  # b  # b成立就做,和a,c无关
        print('猜小了')
    if age == inp_age:  # c  # c成立就做,和a,b无关
        print('猜中了')
    
    if 条件1:
        pass
    if 条件2:
        pass
    
    age = 18
    
    inp_age = int(input('age:'))  # 17
    
    if age >= inp_age:   # a
        if age > inp_age:  # b
            if 'e':
                print('猜小了') #  a成立b也成立e也成立我才做
        else: # c
            print('猜中了') # a成立c成立我才做
    else: # d # a不成立我就做
        print('猜大了')
    

    多个if判断和if的嵌套的区别?

    if 条件1:
        if 条件2:
            pass
    
  • 相关阅读:
    Python 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
    crontab 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
    Python 好用第三方库 isort
    Python 接入钉钉机器人
    Effective Python(2) 遵循 PEP 8 风格指南
    fastapi(65) 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
    Mysql 如何决定用 datetime、timestamp、int 哪种类型存储时间戳?
    Effective Python(1) 查询自己使用的Python版本
    fastapi(66) 修改 uvicorn 的日志格式
    重要通知!重要通知!不是广告!不是广告!
  • 原文地址:https://www.cnblogs.com/TMesh/p/11278382.html
Copyright © 2020-2023  润新知