运算符
算术运算符
补充一下 乘可以用于字符串操作
当然我们前面讲到过字符串的连接可以用+号
相信学过Java的人都知道我这样写是没问题的对吧
但是Python没有Java那么完备的自动转换机制,每个语言总是有优点缺点,不可能出现一个完全完美的语言。
那么我们应该怎么写
强制类型转换
第二种写法其实不严谨,因为这样已经算是字符串的拼接了。
当然加法还可以用于其他的拼接,例如列表
比较运算符
比较运算符很简单,没啥说的,经常用于分支跟循环语句。
赋值运算符
同理其他的也是这样。
这两种式子的运算只是结果相等,原理不一样,只是相当于,不是等价。
这里做一下赘述,这一点,emmmm主要是省内存,其实不到一些特殊的情况,一般是没啥区别。
但是(特殊情况来了),元组跟字符串这两种运算是等价的,因为元组跟字符串都是不可改变的,所以他们必须创建一个新的对象,而不能直接在后面追加。
+= 针对的是可变类型,不创建新的对象。如果针对的是不可变类型,创建新的对象。
逻辑运算符
短路运算 即前面的式子已经能决定整个式子的真或假,后面的式子不做运算。
解释一下这里面出现的的pass,即你的判断不做任何操作,但是空着会报错,所以要用pass跳过,即表示不做任何操作,即空的代码块。
位运算符
这写都涉及到二进制的运算,以后我们遇到再做详细的描述,其实看名字也知道他们的具体的作用。
成员运算符
身份运算符
严谨的说法是判断两个变量是否指向同一个对象
运算的优先级
PS:说优先级之前,友情提示,如果真觉得优先级不容易记忆,以及不想去记忆,以及写出来之后不够简单直接,不好理解,建议多使用括号(),它可以改变运算式中的优先级,括号里面永远是先行运算
优先级从上到下递减
1.幂运算 **
2.按位取反 ^,正负号 + -
3.乘* 除 /、// 取余 %
4.加 + 减 -
5.位运算符 << >>
6.按位与 &
7.按位异或 ^ 按位或 |
8.比较运算符< > <= >=
9.不等于!=
10.赋值运算符 = 复合赋值运算符 += -= *= /=
11.is not is
12.in not in
13.not and or
今天就到这里吧。