一、变量、数据类型 与 类型交换
1. 变量
1.1 变量定义
在 Python 中,变量用来存储数据。与其他编程语言不同,Python 是动态类型语言,即在定义变量时不需要显式声明其类型。Python 会根据赋给变量的值来自动推断变量的类型。
定义变量的语法如下:
variable_name = value
例如:
x = 10
name = "Alice"
is_active = True
在上述示例中:
x
存储一个整数10
。name
存储一个字符串"Alice"
。is_active
存储一个布尔值True
。
1.2 关键字
关键字是 Python 语言中预定义的保留字,具有特殊意义,不能用作变量名。关键字在 Python 中有明确的语法用途,例如 if
、for
、while
等。
我们可以通过以下代码查看 Python 中所有的关键字:
import keyword
print(keyword.kwlist)
常见的 Python 关键字包括:
def
:定义函数if
、else
:条件语句for
、while
:循环语句try
、except
:异常处理
1.3 命名规则
在 Python 中,变量名必须遵循一定的规则和规范:
- 变量名只能包含字母、数字和下划线(
_
)。 - 变量名不能以数字开头。
- 变量名不能是 Python 的关键字。
- 变量名对大小写敏感,即
myVar
和myvar
是两个不同的变量。
Python 提倡使用 蛇形命名法(snake_case),即单词之间用下划线分隔,所有字母小写。例如:my_variable
。
2. 基本数据类型
Python 中的基本数据类型包括整数(int
)、浮点数(float
)、字符串(str
)、布尔值(bool
)等。
2.1 整数(int)
整数是没有小数部分的数字。Python 中可以直接使用整数类型定义一个变量:
age = 25
2.2 浮点数(float)
浮点数表示带有小数点的数字。可以直接定义浮点数:
height = 1.75
2.3 字符串(str)
字符串用于存储文本数据。字符串可以用单引号('
)或双引号("
)括起来:
name = "Alice"
greeting = 'Hello, World!'
2.4 布尔值(bool)
布尔值只有两个取值:True
或 False
。它通常用于条件判断:
is_valid = True
has_permission = False
2.5 列表(list)
列表是有序的可变集合,可以包含多种类型的元素,使用方括号([]
)表示:
fruits = ["apple", "banana", "cherry"]
2.6 元组(tuple)
元组与列表类似,但它是不可变的。使用圆括号(()
)表示:
coordinates = (10, 20)
3. 类型转换
在 Python 中,有时需要将一种数据类型转换为另一种数据类型。Python 提供了几种内建函数来进行类型转换。
3.1 显式类型转换
可以使用以下内建函数将数据转换为指定的类型:
int()
:将数据转换为整数类型。float()
:将数据转换为浮点数类型。str()
:将数据转换为字符串类型。bool()
:将数据转换为布尔值类型。
例如:
x = "10"
y = int(x) # 将字符串 '10' 转换为整数 10
z = 3.14
w = int(z) # 将浮点数 3.14 转换为整数 3
3.2 隐式类型转换(自动转换)
在某些情况下,Python 会自动进行类型转换。例如,在数学运算中,整数和浮点数进行运算时,Python 会自动将整数转换为浮点数:
x = 5
y = 2.0
result = x + y # 自动将 5 转换为 5.0,然后进行浮点数加法
print(result) # 输出 7.0
二、运算符和表达式
1. 运算符概述
运算符是执行特定操作的符号,可以操作数据类型并返回结果。Python 提供了多种不同类型的运算符,包括算术运算符、比较运算符、逻辑运算符等。
1.1 算术运算符
算术运算符用于执行基本的数学运算。Python 支持常见的加、减、乘、除等操作。
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法 | 5 + 3 |
- |
减法 | 5 - 3 |
* |
乘法 | 5 * 3 |
/ |
除法 | 5 / 3 |
// |
整除 | 5 // 3 |
% |
取余 | 5 % 3 |
** |
幂运算 | 5 ** 3 |
示例:
a = 5
b = 3
print(a + b) # 输出 8
print(a - b) # 输出 2
print(a * b) # 输出 15
print(a / b) # 输出 1.6666666666666667
print(a // b) # 输出 1
print(a % b) # 输出 2
print(a ** b) # 输出 125
1.2 比较运算符
比较运算符用于比较两个值,并返回布尔值 True
或 False
。它们在条件判断中非常常用。
运算符 | 描述 | 示例 |
---|---|---|
== |
等于 | 5 == 3 |
!= |
不等于 | 5 != 3 |
> |
大于 | 5 > 3 |
< |
小于 | 5 < 3 |
>= |
大于等于 | 5 >= 3 |
<= |
小于等于 | 5 <= 3 |
示例:
x = 5
y = 3
print(x == y) # 输出 False
print(x != y) # 输出 True
print(x > y) # 输出 True
print(x < y) # 输出 False
print(x >= y) # 输出 True
print(x <= y) # 输出 False
1.3 逻辑运算符
逻辑运算符用于进行布尔值的操作,常用于控制流语句(如 if
)中。
运算符 | 描述 | 示例 |
---|---|---|
and |
逻辑与 | True and False |
or |
逻辑或 | True or False |
not |
逻辑非 | not True |
示例:
a = True
b = False
print(a and b) # 输出 False
print(a or b) # 输出 True
print(not a) # 输出 False
1.4 赋值运算符
赋值运算符用于将值赋给变量。Python 还支持多种增强型赋值运算符,可以简化代码的书写。
运算符 | 描述 | 示例 |
---|---|---|
= |
赋值 | a = 10 |
+= |
加法赋值 | a += 5 |
-= |
减法赋值 | a -= 5 |
*= |
乘法赋值 | a *= 5 |
/= |
除法赋值 | a /= 5 |
//= |
整除赋值 | a //= 5 |
%= |
取余赋值 | a %= 5 |
**= |
幂运算赋值 | a **= 5 |
示例:
x = 5
x += 3 # 相当于 x = x + 3
print(x) # 输出 8
x *= 2 # 相当于 x = x * 2
print(x) # 输出 16
1.5 成员运算符
成员运算符用于检查一个值是否存在于序列(如列表、元组、字符串等)中。
运算符 | 描述 | 示例 |
---|---|---|
in |
存在于 | 3 in [1, 2, 3] |
not in |
不存在于 | 4 not in [1, 2, 3] |
示例:
numbers = [1, 2, 3, 4]
print(3 in numbers) # 输出 True
print(5 not in numbers) # 输出 True
1.6 身份运算符
身份运算符用于比较两个对象的内存地址是否相同。
运算符 | 描述 | 示例 |
---|---|---|
is |
是(对象相同) | x is y |
is not |
不是(对象不同) | x is not y |
示例:
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # 输出 True
print(a is c) # 输出 False
print(a == c) # 输出 True
1.7 位运算符
位运算符用于对整数进行位级操作。
运算符 | 描述 | 示例 |
---|---|---|
& |
位与 | 5 & 3 |
` | ` | 位或 |
^ |
位异或 | 5 ^ 3 |
~ |
位非 | ~5 |
<< |
左移 | 5 << 1 |
>> |
右移 | 5 >> 1 |
示例:
x = 5 # 0101
y = 3 # 0011
print(x & y) # 输出 1 (0001)
print(x | y) # 输出 7 (0111)
print(x ^ y) # 输出 6 (0110)
print(~x) # 输出 -6 (补码表示)
print(x << 1) # 输出 10 (1010)
print(x >> 1) # 输出 2 (0010)
2. 表达式
表达式是由运算符和操作数组合而成的,用于计算并返回一个结果。表达式可以是简单的算术运算,也可以是复杂的函数调用或变量操作。
2.1 简单表达式
简单表达式由一个或多个常量、变量以及运算符构成。例如:
a = 5
b = 10
result = a + b * 2 # 结果是 25,因为乘法优先级高
2.2 复杂表达式
复杂表达式可以包含多个运算符和括号,用来控制运算顺序。括号中的内容会优先计算。
a = 5
b = 10
c = 3
result = (a + b) * c # 结果是 45,括号中的加法先计算
2.3 条件表达式
条件表达式使用 if
语句和逻辑运算符来根据条件选择结果。例如:
x = 20
result = "Even" if x % 2 == 0 else "Odd"
print(result) # 输出 "Even"
三、流程控制
1. 条件分支
条件分支允许我们根据不同的条件执行不同的代码块。在 Python 中,条件分支是通过 if
、elif
和 else
语句来实现的。
1.1 if 语句
if
语句用于测试一个条件,如果条件为真(True
),则执行相应的代码块。
语法:
if condition:
# 执行代码
示例:
x = 10
if x > 5:
print("x 大于 5")
输出:
x 大于 5
1.2 if…else 语句
if...else
语句用来处理两种情况:如果条件为真执行 if
后的代码块,否则执行 else
后的代码块。
语法:
if condition:
# 条件为真时执行的代码
else:
# 条件为假时执行的代码
示例:
x = 3
if x > 5:
print("x 大于 5")
else:
print("x 小于或等于 5")
输出:
x 小于或等于 5
1.3 if…elif…else 语句
当有多个条件需要判断时,可以使用 elif
(即“else if”)语句。在 if
和 elif
条件不成立时,执行 else
语句。
语法:
if condition1:
# 条件1为真时执行的代码
elif condition2:
# 条件2为真时执行的代码
else:
# 条件1和条件2都不成立时执行的代码
示例:
x = 7
if x > 10:
print("x 大于 10")
elif x > 5:
print("x 大于 5 但小于或等于 10")
else:
print("x 小于或等于 5")
输出:
x 大于 5 但小于或等于 10
1.4 嵌套条件语句
在某些情况下,条件语句可能需要嵌套使用,即在 if
或 else
块中再写一个条件语句。
不需要通过括号表示子语句,通过tab键即可。
语法:
if condition1:
if condition2:
# 条件1和条件2都为真时执行的代码
else:
# 条件1为真,条件2为假时执行的代码
else:
# 条件1为假时执行的代码
示例:
x = 10
y = 5
if x > 0:
if y > 0:
print("x 和 y 都大于 0")
else:
print("x 大于 0,y 小于或等于 0")
else:
print("x 小于或等于 0")
输出:
x 和 y 都大于 0
2. 循环
循环结构用于重复执行某段代码,直到满足特定条件。Python 提供了两种常用的循环结构:for
循环和 while
循环。
2.1 for 循环
for
循环通常用于遍历序列(如列表、字符串、元组等)中的元素。
语法:
for item in iterable:
# 遍历过程中的操作
示例:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
输出:
apple
banana
cherry
2.2 range() 函数
range()
函数通常与 for
循环一起使用,用于生成一个整数序列。
语法:
# 如果 range 仅填一个参数,为stop
range(start, stop, step)
start
: 起始值,默认为 0。stop
: 结束值(不包括该值)。step
: 步长,默认为 1。
示例:
for i in range(5):
print(i)
输出:
0
1
2
3
4
range(5)
会生成一个从 0
到 4
的整数序列。如果要指定起始值或步长,可以使用 range(start, stop, step)
。
示例:
for i in range(2, 10, 2):
print(i)
输出:
2
4
6
8
2.3 while 循环
while
循环在条件为真时重复执行代码块。通常需要使用 break
或者修改条件,避免出现死循环。
语法:
while condition:
# 条件为真时执行的代码
示例:
x = 0
while x < 5:
print(x)
x += 1
输出:
0
1
2
3
4
2.4 循环控制语句
在循环中,我们还可以使用 break
、continue
和 pass
来控制循环的行为。
2.4.1 break
break
语句用于提前终止循环。无论条件是否满足,break
都会终止循环并跳出。
语法:
break
示例:
for i in range(10):
if i == 5:
break
print(i)
输出:
0
1
2
3
4
2.4.2 continue
continue
语句跳过当前循环的剩余部分,直接进入下一次循环。
语法:
continue
示例:
for i in range(5):
if i == 3:
continue
print(i)
输出:
0
1
2
4
2.4.3 pass
pass
语句什么也不做,通常用于占位符,表示“此处需要代码,但暂时不做任何操作”。
语法:
pass
示例:
for i in range(5):
if i == 3:
pass # 暂时不做任何操作
else:
print(i)
输出:
0
1
2
4