Python从入门到精通】专栏往期课程:
一、运算符
1.1 算数运算符
Python中的算数运算符如下所示:
+
:加法-
:减法*
:乘法/
:除法//
:整除%
:取模(取余数)**
:幂运算
num1 = 20
num2 = 30
print('-----------加法-------')
print(num1 + num2)
print('-----------减法-------')
print(num1 - num2)
print('-----------乘法-------')
print(num1 * num2)
print('-----------除法-------')
print(num1 / num2)
print('-----------整除-------')
print(num1 // num2)
print('-----------取模(获取余数)-------')
print(num1 % num2)
print('-----------幂运算-------')
print(num1 ** 2)
注意:我们在使用运算符的时候变量和运算符应该加上空格,这样可以使代码变得优雅,例如:
a + b 。
1.2 比较运算符
比较运算符主要是用于比较两个变量之间的关系,若符合条件就返回True否则返回False,例如:10 > 20,10比20小,对此10 > 20返回False。
Python中的关系运算符如下所示:
==
:等于!=
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于
num1 = 20
num2 = 30
print('-----------等于-------')
print(num1 == num2)
print('-----------大于等于-------')
print(num1 >= num2)
print('-----------大于-------')
print(num1 > num2)
print('-----------小于等于-------')
print(num1 <= num2)
print('-----------小于-------')
print(num1 < num2)
print('----------不等于-------')
print(num1 != num2)
1.3 赋值运算符
Python中的赋值运算符如下所示:
=
:简单赋值+=
:加法赋值-=
:减法赋值*=
:乘法赋值/=
:除法赋值//=
:整除赋值%=
:取模赋值**=
:幂赋值
num1 = 20
num2 = 30
print('-----------(=)-------')
num3 = num1
print(num3)
print('-----------(+=)-------')
num4 = num1
num5 = num1
num4 += 10
num5 = num5 + 10
print(num4)
print(num5)
print('-----------(-=)-------')
num6 = num1
num6 -= 10
print(num6)
print('-----------(*=)-------')
num7 = num1
num7 *= 6
print(num7)
print('-----------(/=)-------')
num8 = num1
num8 /= 2
print(num8)
print('----------(//=)-------')
num9 = num1
num9 //= 2
print(num9)
print('----------(%=)-------')
num10 = num1
num10 %= 2
print(num10)
print('----------(**=)-------')
num11 = num1
num11 **= 2
print(num11)
1.4 逻辑运算符
在Python中,逻辑运算符用于执行布尔逻辑运算,处理布尔值(True或False)。Python中的逻辑运算符如下所示:
-
and(逻辑与):
- 语法:
x and y
- 如果x为False,则返回False,否则返回y的值。
- 语法:
-
or(逻辑或):
- 语法:
x or y
- 如果x为True,则返回True,否则返回y的值。
- 语法:
-
not(逻辑非):
- 语法:
not x
- 如果x为True,则返回False;如果x为False,则返回True。
- 语法:
x = True
y = False
result_and = x and y # 结果为False,因为y为False
print(result_and)
print('-------------------')
# 逻辑或示例
result_or = x or y # 结果为True,因为x为True
print(result_or)
print('-------------------')
# 逻辑非示例
result_not = not x # 结果为False,因为x为True
print(result_not)
1.5 成员运算符
在Python中,成员运算符用于检查一个值是否存在于一个序列对象中,例如列表、元组、字典等。
Python中成员运算符如下所示:
-
in(存在):
- 语法:
x in sequence
- 如果x存在于序列sequence中,则返回True;否则返回False。
- 语法:
-
not in(不存在):
- 语法:
x not in sequence
- 如果x不存在于序列sequence中,则返回True;否则返回False。
- 语法:
numbers = [1, 2, 3, 4, 5]
# 检查值是否存在于列表中
result1 = 3 in numbers # 结果为True,因为3存在于列表中
result2 = 6 not in numbers # 结果为True,因为6不存在于列表中
print(result1) # 输出 True
print(result2) # 输出 True
1.6 身份运算符
在Python中,身份运算符用于比较两个对象的内存地址是否相同,而不是比较它们的值是否相同。Python中的身份运算符如下所示:
-
is(是):
- 语法:
x is y
- 如果x和y指向同一个对象,则返回True;否则返回False。
- 语法:
-
is not(不是):
- 语法:
x is not y
- 如果x和y指向不同的对象,则返回True;否则返回False。
- 语法:
注意:这些运算符用于比较对象的身份,即它们是否在内存中具有相同的地址。在Python中,每个对象都有一个唯一的内存地址,因此可以使用身份运算符来检查两个对象是否是同一个对象的引用。
x = [1, 2, 3]
y = [1, 2, 3]
result1 = x is y # 结果为False,因为x和y指向不同的对象
result2 = x is not y # 结果为True,因为x和y指向不同的对象
print(result1) # 输出 False
print(result2) # 输出 True
1.7 位运算符
在Python中,位运算符用于对整数在二进制位级别上进行操作。这些运算符允许你直接操作整数的二进制表示。Python中的位运算符如下所示:
-
按位与(&):
- 语法:
x & y
- 对x和y的每个二进制位执行与操作。如果两个对应的位都为1,则结果中的相应位也为1,否则为0。
- 语法:
-
按位或(|):
- 语法:
x | y
- 对x和y的每个二进制位执行或操作。如果两个对应的位中至少有一个为1,则结果中的相应位为1,否则为0。
- 语法:
-
按位异或(^):
- 语法:
x ^ y
- 对x和y的每个二进制位执行异或操作。如果两个对应的位不同,则结果中的相应位为1,否则为0。
- 语法:
-
按位取反(~):
- 语法:
~x
- 对x的每个二进制位执行取反操作,即0变为1,1变为0。
- 语法:
-
左移(<<):
- 语法:
x << n
- 将x的二进制表示向左移动n位,并在右边用0填充。
- 语法:
-
右移(>>):
- 语法:
x >> n
- 将x的二进制表示向右移动n位,并根据需要在左边使用符号位或0进行填充。
- 语法:
x = 10 # 二进制表示为 1010
y = 6 # 二进制表示为 0110
result_and = x & y # 结果为 2,二进制表示为 0010
result_or = x | y # 结果为 14,二进制表示为 1110
result_xor = x ^ y # 结果为 12,二进制表示为 1100
# 结果为 -11,二进制表示为 1111 0101(因为Python中的整数使用补码表示)
result_not_x = ~x
result_left_shift = x << 1 # 结果为 20,二进制表示为 10100
result_right_shift = x >> 1 # 结果为 5,二进制表示为 0101
print(result_and) # 输出 2
print(result_or) # 输出 14
print(result_xor) # 输出 12
print(result_not_x) # 输出 -11
print(result_left_shift) # 输出 20
print(result_right_shift) # 输出 5
二、代码块
在Python中,代码块是由缩进的一组语句组成的,用于表示一段相互关联的代码。Python不使用花括号 {}
或类似的关键字符来定义代码块,而是通过缩进来表示代码块的开始和结束。
注意:Python是严格讲究缩进的。
下面代码简单演示一下代码块:
if condition:
# 这是一个代码块
# 所有缩进的语句都属于这个代码块
statement1
statement2
statement3
# 代码块结束
# 在这里,代码块已经结束,不再缩进
statement_after_if
在上述示例中,if condition:
下面的缩进的语句组成了一个代码块。缩进的空格数通常是4个,但可以根据个人或项目的偏好选择其他数量。重要的是要保持一致性,确保同一代码块中的缩进相同。
三、控制语句
控制语句是编程语言中用于控制程序执行流程的结构。在Python中,常见的控制语句包括条件语句(if、elif、else)、循环语句(for、while)、以及控制循环流程语句(break、continue、pass)等。
3.1 条件语句
3.1.1 单分支条件语句
if condition:
# 如果条件成立,则执行这里的代码
statement
注意:上述语法中condition为布尔条件表达式,例如: 3 > 4,statement表示一个代码块
单分支条件语句的语意:如果.......就.........
grade = 90
if grade >= 90:
print('本次成绩大于等于90')
3.1.2 双分支条件语句
if condition:
# 如果条件成立,则执行这里的代码
statement
else:
# 如果条件不成立,则执行这里的代码
statement
双分支条件语句的语意:如果.......就.........否则就...........
grade = 80
if grade >= 90:
print('本次成绩大于等于90')
else:
print('本次成绩小于90')
3.1.3 多分支条件语句
if condition1:
# 如果条件1成立,则执行这里的代码
statement1
elif condition2:
# 如果条件1不成立且条件2成立,则执行这里的代码
statement2
else:
# 如果条件1和条件2都不成立,则执行这里的代码
statement3
多分支条件语句的语意:如果.......就.........否则如果........就.........否则就........
if、elif、else在开发的时候可以随意组合。
grade = 80
if grade >= 90:
print('本次成绩大于等于90')
elif grade >= 80:
print('本次成绩小于90且大于80分')
else:
print('本次成绩小于80分')
3.2 循环语句
Python 中的循环语句用于重复执行特定的代码块,直到满足特定条件。
3.2.1 for循环语句
for
循环用于遍历可迭代对象(如列表、元组、字符串等)中的元素。
for item in iterable:
# 对可迭代对象中的每个元素执行这里的代码
statement1
上述语法中item表示的是iterable可迭代对象里面的每一个具体元素
iter1 = [1,2,3,4,5,6,7,8,9]
for item in iter1:
print(item)
3.2.2 while循环
while
循环根据条件重复执行代码块,直到条件不再满足为止。
while condition:
# 当条件成立时,重复执行这里的代码
statement2
sum = 0
i = 1
while i < 10:
sum += i
i += 1
print(sum)
3.2.3 控制循环流程语句
在 Python 中,控制循环流程的语句包括 break
、continue
、pass、return
。
1、break语句
break
语句用于中断循环,并立即跳出循环体。当某个条件满足时,执行 break
语句后,循环将被终止,程序将跳转到循环之后的代码继续执行。
for i in range(5):
if i == 3:
break
print(i)
2、continue语句
continue
语句用于跳过当前循环的剩余代码,然后继续进行下一次循环迭代。当某个条件满足时,执行 continue
语句后,当前循环迭代中 continue
语句后面的代码将被跳过,然后进行下一次迭代。
for i in range(5):
if i == 2:
continue
print(i)
3、pass语句
pass
语句用作占位符,表示不执行任何操作,仅用于保持语法结构的完整性。通常在需要语法上需要语句但不需要执行任何操作的情况下使用。
for i in range(5):
if i == 2:
pass
else:
print(i)
3.3 match语句
Python 3.10 引入了 Match-Case 语句,它是一种更加强大和灵活的替代品,用于取代部分情况下的复杂的 if-elif-else 结构。
match expression:
case pattern1:
# 如果匹配 pattern1,则执行这里的代码
statement1
case pattern2:
# 如果匹配 pattern2,则执行这里的代码
statement2
case _:
# 如果上述任何模式都不匹配,则执行这里的代码
statement3
def weekday_name(weekday_number):
match weekday_number:
case 1:
return "Monday"
case 2:
return "Tuesday"
case 3:
return "Wednesday"
case 4:
return "Thursday"
case 5:
return "Friday"
case 6:
return "Saturday"
case 7:
return "Sunday"
case _:
return "Invalid weekday number"
# 使用示例
print(weekday_name(1)) # 输出: Monday
print(weekday_name(3)) # 输出: Wednesday
print(weekday_name(8)) # 输出: Invalid weekday number
关于Python更多的内容可以关注《Python从入门到精通》,该专栏主要用于分享Python学习教程,在系列教程只有干货没有花里胡哨,欢迎大家一起来学习探讨一起进步。