写在之前

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

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

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

01 三种格式化输出的方式

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

那么什么叫格式化输出?

符合某种规范的print

什么叫格式化?

符合的规范叫做格式化

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

占位符

  1. name = 'Thousand_Mesh'
  2. age = 16
  3. print('my name is %s my age is %s' % (name, age))
  4. my name is Thousand_Mesh my age is 16
  1. age = 16
  2. print('my age is %d' % age)
  3. my age is 16

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

format格式化 (python 3.4)

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

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

f-String 格式化

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

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

大写的F也适用。

  1. name = "Thousand_Mesh"
  2. age = 16
  3. print(F"Hello, {name}. You are {age}.")
  4. Hello, Thousand_Mesh. You are 16.
  5. age = 16
  6. print(f'{age*2}')
  7. 32

.xf 可以去小数

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

02 基本运算符

算术运算符

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

  1. print(1+2)
  2. 3
  3. x = 10
  4. y = 20
  5. res = x+y
  6. print(res)
  7. 30
  8. # /有零有整除,得到一个浮点型
  9. print(10/3)
  10. 3.3333333333333335
  11. # 地板除,只取整数部分
  12. print(10//3)
  13. print(10//4)
  14. 3
  15. 2
  16. # %:取余
  17. print(10 % 3)
  18. 1
  19. # **,幂
  20. print(10**3)
  21. 1000

比较运算符

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

  1. pwd = '123'
  2. print(pwd != '123')
  3. print(pwd == '123')
  4. False
  5. True
  6. l1 = [1, 'a', 3]
  7. l2 = [3]
  8. print(l1 < l2) # False
  9. True
  10. try:
  11. l3 = [1, 3]
  12. print(l1 < l3) # 报错,列表比较大小仅限于同一位置的对应的值是相同的类型
  13. except Exception as e:
  14. print(e)
  15. name 'l1' is not defined

赋值运算符

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

  1. age = 19 #(一元赋值运算符)
  2. age = age + 1
  3. print(age)
  4. 20
  5. age = 19
  6. age += 1 #(二元赋值运算符)
  7. print(age)
  8. 20
  9. age = 19
  10. age *= 10
  11. print(age)
  12. 190

逻辑运算符

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

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

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

身份运算符

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

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

  1. x = 257
  2. y = x
  3. z = 257
  4. print(f'x is y:{x is y}')
  5. print(f'x == y:{x == y}')
  6. print(f'x is z:{x is z}')
  7. print(f'x == z:{x == z}')
  8. x is y:True
  9. x == y:True
  10. x is z:False
  11. x == z:True

Python运算符优先级

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

03 流程控制之if 判断

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

if就是如果的意思

light = 'red'

if light == 'red':

print('等')

怎么使用if判断

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

<代码块1>

if <条件>:

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

<代码块3> # 当条件不成立时直接运行代码块3

  1. light = 'green'
  2. if light == 'red':
  3. print('等')
  4. print('啥子')

双分支结构

<代码块1>

if <条件>:

<代码块2> # 当条件为True的时候执行代码块2然后执行代码块3 # tab

else:

<代码块4> # 当条件不成立时,运行代码块4,然后再运行代码块3

<代码块3> # 当条件不成立时首先运行代码块4,然后运行代码块3

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

多分支结构

elif <条件n>:

<代码块n>

else:

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

<代码块3>

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

if 的嵌套

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

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

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

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

  1. if 条件1
  2. if 条件2:
  3. pass

python 运算和流程控制的更多相关文章

  1. python操作符与流程控制

    操作符: 算术运算: +   -   *  /  %  //   ** 逻辑运算:and or  not 身份运算: is     not is 不可变数据类型:数字  字符串  字典key 可变数据 ...

  2. Python基础之:Python中的流程控制

    目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样 ...

  3. python中的流程控制

    目录 引言 流程控制的分类 分支结构 单if结构 if与else结构 if与elif与else结构 if分支的嵌套 循环结构 while循环 while + break循环 while + conti ...

  4. Python成员运算,身份运算和流程控制

    成员运算 in #判断--在--里面 print('a' in 'abcd') # 字符串判断a是否在abcd里面 print('you' in 'how are you') # 这种整体也可以判断 ...

  5. Python赋值运算及流程控制

    1. 内置函数 1> len:统计元素长度 str1 = 'wonderful' print(len(str1)) result: li = [,,] print(len(li)) result ...

  6. python全栈 流程控制;while 循环 格式化输出 运算符 及编码

    python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...

  7. Python自动化开发 - 流程控制

    一.拾遗主题 1.变量 理解变量在计算机内存中的表示 >>> a = "ABC" Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存 ...

  8. Python编码、流程控制、格式化输出

    Python编码 初始编码: 电脑的传输,还有储存,实际上都是010101010 ASCII码: (American Standard Code for Information Interchange ...

  9. python 运算符与流程控制

    运算符与流程控制 运算符 赋值运算 用'='表示,'='的左边只能是变量 算术运算 +.-.*:加.减.乘 /:除法运算,运算结果为浮点数 //:除法运算,运算结果为整数(商) %:求余 **:求幂 ...

随机推荐

  1. java动态生成HTML文件

    在eclipse中,用java动态生成html文件. //用于存储html字符串 StringBuilder stringHtml = new StringBuilder(); try{ //打开文件 ...

  2. Java多线程核心知识(跳槽面试必备)

    多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲.在平时工作中如若使用不当会出现数据错乱.执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关 ...

  3. Redis内存碎片率

    一. 内存碎片率mem_fragmentation_ratio = used_memory_rss / used_memoryused_memory :Redis使用其分配器分配的内存大小used_m ...

  4. git *** Please tell me who you are.错误

    GIT 中提示 please tell me who you are   如果使用git过程中出现了,please tell me who you are ,需要设置一下使用者的身份. 1.git c ...

  5. ThinkPhp中验证码不显示和配置项的问题解决方法

    1.验证码不显示在调用验证码之前加上 ob_clean();像这样: public function verify(){ ob_clean(); $verify = new \Think\Verify ...

  6. 转贴 使用正则表达式解析一般sql语句(C++)

    https://blog.csdn.net/dreamgchuan/article/details/47715743 --END--2019年9月5日11点58分

  7. 3709: [PA2014]Bohater

    3709: [PA2014]Bohater 或者:Bohater 题解 好狠啊这个题 z 要开 long long ,可能算掉血回血的时候会爆 long long 吧 首先把能回血的怪打死(不然你后面 ...

  8. MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》

    最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...

  9. LC 274. H-Index

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...

  10. vue 如何修改element.style样式

    在css样式表里面加入一个背景样式background:#FFFFFF ! important