Python 基础语法(二)
目录
算数运算符
+、-、*、/
%、**、//
关系运算符
==、!=、<、>、<=、>=
小数的比较
逻辑运算符
赋值运算符
本期继续进行 Python 基本语法的学习。
算数运算符
算数运算符主要用于变量之间的算数运算。Python 中的算数运算符主要包含,+(加)、-(减)、*(乘) 、/(除)、%(取余)、**(乘方),//(向下取整除法)。
+、-、*、/
代码如下。
a = 1 + 2 * 8 / 4
print(a)a = (1 + 2) * 3 /4
print(a)
运行结果如下。
与 C++ 中的加减乘除一样,Python 中的优先级依然是,先计算乘除,后计算加减。但是,如果想让优先级较低的运算符先进行运算,必须使用 () 提升其优先级。
同时,我们通过上述的运行结果可以看出,Python 中的乘法的结果可以是小数,这一点区别于 C++ ,C++ 中乘法的结果一定是满足 同类型的变量/同类型的变量=同类型的变量这一规则。
%、**、//
代码如下。
a = 10
b = a % 3
print(b)a = 4
b = 4**2
c = 4**0.5
print(b)
print(c)a = 5
b = 5 // 2
c = 5 // -2
print(b)
print(c)
运行结果如下。
取模和乘方很简单,这里不做过多阐述,向下取整除法,就是将最终的计算结果向下取整,注意区分正整数和负整数的向下取整的方向。
关系运算符
关系运算符主要用于判断变量之间的大小关系,Python 中的关系运算符主要有 ==(等于),!=(不等于),>(大于),<(小于),>=(大于等于),<=(小于等于)。
关系运算符比较之后的结果为 bool 类型,结果之后 true 和 false 两种类型。
==、!=、<、>、<=、>=
代码如下。
a = 10
b = 20
print(a == b)
print(a != b)
print(a < b)
print(a > b)
print(a <= b)
print(a >= b)a = 'hello'
b = 'ihello'
print(a > b)
运行结果如下。
这里需要注意一点,在 Python 中也是支持字符串的比较的,主要是从字符串的第一个字符开始,按照字符的字典序进行比较,从 a~z 的顺序,字母越靠前,字符越大,如果相等就继续判断下一个字符。
正如上述的 hello 和 ihello,从第一个字符开始进行比较,因为 h 在 i 之前,所以 h 比 i 小,所以 hello 就比 ihello 小。
小数的比较
在 Python 中,小数的精度会在计算时丢失,所以不能单单的以关系运算符作为大小比较的标准。
代码如下。
a = 0.1
b = 0.2
print((a + b) == 0.3)
print(a + b)
代码运行结果如下。
通过运行结果不难看出,在 Python 中 0.1 + 0.2 的结果因为精度的丢失,在最终计算出的结果并不是 0.3 ,所以要比较小数的相等,必须手动的指定误差范围,如果两个小数相减之后的结果在误差范围内,我们就认为这两个数相等。
代码如下。
a = 0.1
b = 0.2
print( -0.000001 < (a + b) - 0.3 < 0.000001 )
如上代码,在差值设定的范围内,我们就认为两个小数相等。
运行结果如下。
逻辑运算符
Python 也有自己的逻辑运算符,分别为 and(逻辑与) ,or(逻辑或),not(逻辑反)。
与 C++ 逻辑运算符的含义一样,逻辑与为一假则假,逻辑或为一真则帧,逻辑反则给整个逻辑取反。
代码如下。
a = 1
b = 2
c = 3#逻辑与,都为真则整体为真
print(a < b and b < c)
#逻辑与,一假则假
print(a > b and b < c)
print("---------------------------------------------")
#逻辑或,都为假则整体为假
print(a > b and b > c)
#逻辑或,一真则真
print(a > b or b < c )
print("---------------------------------------------")
#逻辑非,给计算记过取反
print(not a < b)
代码运行结果如下。
运行结果符合预期。
赋值运算符
在 Python 中,赋值运算符与 C++ 中的复制运算符一致,都为 = ,表示将一个常量值赋值给一个变量,或者将一个变量的值赋值给另一个变量。
这里一定要区分 = 和 == 的区别,= 表示赋值,而 == 为关系运算符,用于判断两个变量的值是否相等。
代码如下。
#语法不允许
1 = 2
#常量赋值给变量
a = 1
#变量赋值给变量
b = 2
a = b
在 Python 中,支持连续赋值和多元赋值,连续赋值可以同时给多个变量赋相同的值,这个多元赋值有什么用呢?
多元赋值可以用来简化两个变量值交换的代码。
代码如下。
#连续赋值
c = d = 3
print(c,d)
print("-------------------------------------------------")#多元赋值
e,f = 4,5
print(e,f)
print("-------------------------------------------------")#交换 e 和 f 的值
#传统写法
temp = e
e = f
f = temp
print(e,f)
print("-------------------------------------------------")#多元赋值写法
e,f = f,e
print(e,f)
我们先让 e 和 f 以传统的方式进行值的交换,然后最终让 e 和 f 以多元赋值的方式进行值的交换。
上述代码运行结果如下。
我们发现,确实通过多元赋值的方法实现了两个变量值的交换,具体的原理简单理解为两个变量同时进行互相赋值。
在 Python 中,还有 += ,-=,*=,\=、**= 的操作,以 += 为例,其他符号同理,代码如下。
a = 3
print(a)
a += 1
print(a)
运行结果如下。
a += 1 ,展开其实就可以理解为 a = a + 1。
在 C++ 中我们学过了自增 ++ 和自减 -- 操作,但是在 Python 中是不支持这样的语法的。
代码如下。
a = 1
print(a)
++a
print(a)
a++
代码运行结果如下。
++a 表示给 a 连续取了正号,所以最终 a 的值还是 1,但是 a++ 在 Python 中是不支持这种语法的。
至此,Python 的基本语法全部学习结束,后续会为大家带来 Python 的进阶语法。
本期内容到此结束^0^