Python入门(4)

唉 断了一周的学习 又玩了一个国庆 也就是鸽置了两周
看看群友们的讨论 这群人的Python基础竟然如此牢固
进群以为大家都是萌新 后来发现只有我是。。。 不吐槽了,,,撸起袖子加油学
话说这几天下雨 天还有点冷
凛冬将至 Winter is coming, Because we are coming.

>>> print(1 > 2 > 3)
False
>>> print(1 < 3 > 2)
True
>>> print(1 < 2 > 3)
False
>>> print(3 > 2 > 2.5)
False

这个我理解一直有误区 应该等同与下面吧 很容易误以为是前俩个比较后,最大的那个再与第三个比较
然而第四个结果直接推翻了 果然机器不会错 出错应该是人

 print(1 > 2 and 2 > 3)
 print(1 < 3 and 3 > 2)
 print(1 < 2 and 2 > 3)
 print(3 > 2 and 2 > 2.5)

算术运算符

1.+
拼接字符串
数学中加法运算
2.-
数学中减法运算
不支持字符串运算
3.*
数学中乘法运算
字符串与数字相乘

>>> print('-'*5)
-----

4./

>>> print(12/4)
3.0
>>> print(12/7)
1.7142857142857142

除法运算符总会返回一个浮点类型的值
5.**

>>> print(2**4)
16

取1个数几次幂,也就是一个数的几次方
6.//

>>> print(12//5)
2

整除只会保留计算后的整数位,只会返回一个整型
7.开平方根

>>> print(16**0.5)
4.0

0.5 => 1/2 16的1/2次幂 即平方根
8.%

>>> print(12%5)
2

求模(取余数)

赋值运算符

将一个数据赋值给一个变量,由=连接,=就是赋值运算符

 x += 3 相当于 x = x + 3
 x -= 3 相当于 x = x - 3
 x *= 3 相当于 x = x * 3
 x /= 3 相当于 x = x / 3
 x //= 3 相当于 x = x // 3
 x %= 3 相当于 x = x % 3

比较运算符

比较运算符就是用来比较两个值之间的关系,总会返回一个布尔值

>>> print("abc">"ab")
True
>>> max('python Hello')
'y'
>>> ord('P')
80
>>> ord('p')
112
>>> min('python Hello')
' '
>>> ord(' ')
32
>>>

字符串之间的比较是按ascll码来比,如果一个字符串有多个字符,那么比较的方式是对位比较,也就是按位置一个一个的比。如果前面的能比出结果就输出相应的结果,如果不能比出结果,继续比,直到比出结果

如果我们想比较id 怎么办? 可以用到 is 和 is not

>>> a = 123
>>> b = a
>>> print(id(a))
1854438240
>>> print(id(b))
1854438240
>>> print(a is b)
True
>>> 

is 比较两个对象是否是一个对象 比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id

逻辑运算符

  • 逻辑非 not
    可以对符号右侧的值进行非运算
    对于非布尔值,会先将其转换为布尔值,然后在取反
>>> a = 1
>>> a = not a
>>> print(a)
False
>>> a = None
>>> a = not a
>>> print(a)
True

例如 0 空串 None还有一些其他是空性的值会转换成False,剩下的都是True

  • 逻辑与 and
    可以对符号两侧的值进行与运算
    只有在符号两侧都是True的情况下才会返回True,只要有一个Fasle就会返回False(说白了与运算就是找Fasle)
>>> a = True and True
>>> print(a)
True
>>> True and print("22")
22
  • 逻辑或 or
    or 可以对符号两侧的值进行或运算
    或运算两个值只要有一个True,就会返回True, 或运算就是找True
>>> a = False or True
>>> print(a)
True
>>> False or print("11")
11

非布尔值的与或运算

当我们对非布尔值进行与或运算的时候,Python会将其当做布尔值进行运算,最终会返回原值

  • 与运算的规则
    与运算找Fasle,如果第一个值是Fasle,就不看第二个值
    如果第一个值不是False,则直接返回第二个值
>>> print(0 and 2)
0
>>> print(1 and 0)
0
>>> print(1 and 4)
4
  • 或运算的规则
    或运算就是找True,如果第一个值是True,则不看第二个值
    如果第一个值是Fasle,则返回第二个值
>>> print(1 or 3)
1
>>> print(0 or 3)
3
>>> print(None or 0)
0

条件运算符

  • 又叫三元运算符
  • 语法: 语句1 if 条件表达式 else 语句2
    条件表达式成立 执行语句1 条件表达式不成立 执行语句2
>>> a = 30
>>> b = 40
>>> print('a的值大') if a>b else print('b的值大')
b的值大

//比较三个数哪个最大  
>>> a = 30
>>> b = 40
>>> c = 20
>>> max=a if (a>b and a>c) else (b if b>c else c)
>>> print(max)
40
//巧妙的在 首先判断a是不是最大值后排除a或就是a 然后 最大值就常规的两数比较 四数 五数比较最大值 也可以这样子

运算符的优先级

>>> print(3 and 4)
4
>>> print(2 or 3)
2
>>> print(2 or 3 and 4 )
2
说明and的优先级要比or高
1.png

越往下,优先级越高

>>> print(not 4>2 and 5<6 or 3<4)
True
// 首先 4 > 2 的非 是 False  
// 之后直接看3 < 4
// 所以 True

你可能感兴趣的:(Python入门(4))