空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号
;
分割
分号的使用是必须的,若不使用分号,则导致程序报错:
代码组
缩进相同的一组语句构成一个代码块,我们称之为代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
如下实例:
if case1 : suite elif case2 : suite else : suite
模块导入
模块是一种组织代码的方式,用于将相关的功能集合在一起;在实现程序时我们经常要用到它们。
在 python 用 import 或者 from…import 来导入相应的模块。
- 将整个模块(somemodule)导入,格式为: import somemodule
举例如下
- 从某个模块中导入某个函数,格式为: from somemodule import somefunction
- 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
举例如下:
将某个模块中的全部函数导入,格式为: from somemodule import *
数值运算
在编写程序时,进行数值运算是必须的,我们也需要与各种各样的运算符打交道。
算术、比较运算符
对于算术和比较运算符,除加减乘、取余及大于小于与日常数学逻辑一致外,要注意的是**表示幂,除法中//表示向下取整,/表示取浮点数
这里需要注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。
如:
7.0//2 得到 3.0 7//2.0 得到 3.0 7//2 得到 3
赋值运算符
对于赋值运算符,与C语言无二异,给出表格如下。
在 Python 3.8 及更高版本中,引入了一种新的语法特性,称为"海象运算符"(Walrus Operator),它使用 := 符号。这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。
使用海象运算符可以在一些情况下简化代码,尤其是在需要在表达式中使用赋值结果的情况下。
举例如下:
# 传统写法 n = 10 if n > 5: print(n) # 使用海象运算符 if (n := 10) > 5: print(n)
位运算符
对于位运算符,需要把数字看作二进制来进行计算,如下给出表格:
实例如下:
逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 1,b为 2:
运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 | (a and b) 返回 2。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 1。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
成员运算符
除了以上的一些运算符之外,Python还支持成员运算符。
运算符 | 描述 | 实例 |
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
身份运算符
身份运算符用于比较两个对象的存储单元。
运算符 | 描述 | 实例 |
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
举例如下图:
这里要注意的是is 与 == 的区别
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
这里给出判断代码:
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。
运算符 | 描述 |
(expressions...) , [expressions...] , {key: value...} , {expressions...} |
圆括号的表达式 |
x[index] , x[index:index] , x(arguments...) , x.attribute |
读取,切片,调用,属性引用 |
await x | await 表达式 |
** |
乘方(指数) |
+x , -x , ~x |
正,负,按位非 NOT |
* , @ , / , // , % |
乘,矩阵乘,除,整除,取余 |
+ , - |
加和减 |
<< , >> |
移位 |
& |
按位与 AND |
^ |
按位异或 XOR |
` | ` |
in,not in, is,is not, <, <=, >, >=, !=, == |
比较运算,包括成员检测和标识号检测 |
not x |
逻辑非 NOT |
and |
逻辑与 AND |
or |
逻辑或 OR |
if -- else |
条件表达式 |
lambda |
lambda 表达式 |
:= |
赋值表达式 |
本文内容到此为止,在下一篇文章中将介绍列表、元组、集合等知识点。