5 变量
大约 7 分钟
本篇是 Python 系列教程第 5 篇,更多内容敬请访问我的 Python 合集
1 定义变量
在Python中定义变量非常简单,你只需要给变量赋值即可。Python会自动检测变量的数据类型。下面是一些基本的例子来展示如何定义不同类型的变量:
1.1 整数
age = 25
1.2 浮点数
height = 1.75
1.3 字符串
name = "Alice"
1.4 布尔
is_student = True
1.5 列表
numbers = [1, 2, 3, 4, 5]
1.6 元组
(类似于列表,有序但不可变)
colors = ("red", "green", "blue")
1.7 字典
person = {"name": "Bob", "age": 30}
1.8 集合
fruits = {"apple", "banana", "cherry"}
我们可以直接使用这些变量而无需事先声明它们的类型。例如:
print(age)
print(name)
print(numbers)
如果我们需要查看变量的类型,可以使用 type()
函数:
print(type(age)) # <class 'int'>
print(type(name)) # <class 'str'>
print(type(numbers)) # <class 'list'>
2 关键字
在Python中,有一些保留的关键字是不能被用作变量名、函数名或其他标识符的名字的。这些关键字具有特殊的含义,用于语言结构和控制流等。以下是Python中的关键字列表:
False
小写的false不是关键字None
小写的none不是关键字True
小写的true不是关键字and
as
assert
async
await
break
class
continue
def
del
elif
else
except
finally
for
from
global
if
import
in
is
lambda
nonlocal
not
or
pass
raise
return
try
while
with
yield
这些关键字都不能作为变量名使用。例如,你不能将一个变量命名为if
、for
或class
等。如果尝试这样做,Python解释器会抛出一个SyntaxError
错误。
示例:
# 错误用法
if = 5 # SyntaxError: invalid syntax
正确的做法是选择一个合法变量名,它应该符合以下规则:
- 只能由字母、数字和下划线组成。
- 必须以字母或下划线开头。
- 区分大小写。如
Variable
,variable
, 和VARIABLE
是三个不同的变量。
例如:
# 正确用法
my_variable = 5
3 命名规则
在Python中,变量命名遵循一定的规则和约定。下面是关于如何正确命名Python变量的一些指导原则:
- 只能包含字母、数字和下划线:
- 字母可以是大写(A-Z)或小写(a-z)。
- 数字可以是0到9。
- 下划线(_)可以用作单词之间的分隔符。
- 必须以字母或下划线开头:
- 不能以数字开头,例如
1variable
是非法的,但variable1
是合法的。
- 区分大小写:
Variable
,variable
, 和VARIABLE
是三个不同的变量。
- 避免使用Python关键字和内置函数名:
- 虽然不是语法错误,但是使用如
list
,str
,print
等作为变量名可能会导致意外的行为或混淆。
- 建议使用小写字母和下划线:
- 按照PEP 8(Python的官方编码风格指南),变量名一般采用小写字母加下划线的方式,如
first_name
或total_cost
。
- 模块名、包名、类名和其他标识符也有各自的命名约定:
- 模块名通常使用小写字母。
- 类名通常使用驼峰式命名法(CamelCase),例如
MyClass
。 - 常量(值不会改变的变量)通常全部使用大写字母,并用下划线分隔单词,如
PI
或MAX_CONNECTIONS
。
- 私有属性和方法的命名:
- 如果希望某个类的属性或方法不被外部直接访问,可以使用单个前导下划线
_
(例如_secret
),这表示这是一个内部实现细节。 - 如果希望完全隐藏一个属性或方法,可以使用双前导下划线
__
(例如__private
)。这将触发名称改编机制,使得该属性或方法在类的外部无法直接访问。
- 避免使用过于简短的变量名:
- 使用有意义的名称可以让代码更易读,例如使用
student_id
而不是sid
。
下面是一些合法的变量名示例:
# 合法的变量命名
first_name = 'John'
last_name = 'Doe'
age = 30
pi = 3.14159
max_connections = 1000
is_student = True
下面是一些不合法的变量名示例:
# 不合法的变量命名
1_first_name = 'John' # 不能以数字开头
if = 5 # 不能使用关键字
my-variable = 'test' # 不能包含特殊字符
4 基本数据类型
Python支持多种基本数据类型,这些类型可以用来存储不同类型的数据。以下是Python中最常见的几种基本数据类型:
- 整数 (
int
):
- 用于表示整数值,如
42
或-7
。
- 浮点数 (
float
):
- 用于表示带有小数部分的数值,如
3.14
或-0.001
。
- 复数 (
complex
):
- 用于表示复数值,如
3+4j
或5.6j
。
- 字符串 (
str
):
- 用于表示文本数据,可以使用单引号
'hello'
或双引号"world"
来创建字符串。
- 布尔值 (
bool
):
- 表示逻辑值
True
或False
。
- 列表 (
list
):
- 用于存储有序且可变的元素集合,如
[1, 2, 3]
。
- 元组 (
tuple
):
- 类似于列表,有序但不可变,如
(1, 2, 3)
。
- 集合 (
set
):
- 用于存储无序且不重复的元素集合,如
{1, 2, 3}
。
- 字典 (
dict
):
- 用于存储键值对,如
{'name': 'Alice', 'age': 30}
。
示例:
# 整数
age = 25
# 浮点数
height = 1.75
# 复数
complex_number = 3 + 4j
# 字符串
name = "Alice"
# 布尔值
is_student = True
# 列表
numbers = [1, 2, 3, 4, 5]
# 元组
colors = ("red", "green", "blue")
# 集合
fruits = {"apple", "banana", "cherry"}
# 字典
person = {"name": "Bob", "age": 30}
除了这些基本数据类型之外,Python还支持其他一些高级数据类型,例如:
- 范围 (
range
):
- 用于生成一系列连续的整数,如
range(1, 10)
。
- 字节 (
bytes
):
- 用于表示不可变的字节序列,如
b'hello'
。
- 字节数组 (
bytearray
):
- 与
bytes
类似,但可变,如bytearray(b'hello')
。
- 内存视图 (
memoryview
):
- 提供了一个对象的内存视图,允许高效地操作二进制数据,如
memoryview(bytearray(b'hello'))
。
这些数据类型为Python提供了强大的功能,使其能够处理各种数据结构和计算任务。
5 类型转换
在Python中进行类型转换非常简单,你可以使用内置的类型转换函数来实现。下面是一些常用的类型转换方法及其例子:
5.1 将其他类型转换为整数 (int()
)
- 将其他类型转换为整数 (
int()
)
- 使用
int()
函数可以将字符串、浮点数等转换成整数,如果字符串不能被解析为整数,则会抛出异常。 - 示例:
int("42") # 结果是 42
int(3.14) # 结果是 3
5.2 将其他类型转换为浮点数 (float()
)
- 使用
float()
函数可以将整数、字符串等转换成浮点数,如果字符串不能被解析为浮点数,则会抛出异常。 - 示例:
float(42) # 结果是 42.0
float("3.14") # 结果是 3.14
5.3 将其他类型转换为字符串 (str()
)
- 使用
str()
函数可以将几乎所有类型的变量转换为字符串形式。 - 示例:
str(42) # 结果是 "42"
str(3.14) # 结果是 "3.14"
str(True) # 结果是 "True"
5.4 将其他类型转换为布尔值 (bool()
)
- 使用
bool()
函数可以将其他类型的值转换为布尔值。通常情况下,空值(如None
,False
,0
,""
,[]
,{}
, 等)会被转换为False
,非空值则转换为True
。 - 示例:
bool(0) # 结果是 False
bool(1) # 结果是 True
bool("") # 结果是 False
bool("hello") # 结果是 True
5.5 将其他类型转换为列表 (list()
)
- 使用
list()
函数可以将字符串、元组等转换成列表。 - 示例:
list("abc") # 结果是 ['a', 'b', 'c']
list((1, 2, 3)) # 结果是 [1, 2, 3]
5.6 将其他类型转换为元组 (tuple()
)
- 使用
tuple()
函数可以将列表、字符串等转换成元组。 - 示例:
tuple([1, 2, 3]) # 结果是 (1, 2, 3)
tuple("abc") # 结果是 ('a', 'b', 'c')
5.7 将其他类型转换为集合 (set()
)
- 使用
set()
函数可以将列表、元组等转换成集合。 - 示例:
set([1, 2, 3, 3]) # 结果是 {1, 2, 3}
set("abracadabra") # 结果是 {'a', 'r', 'b', 'c', 'd'}
5.8 将其他类型转换为字典 (dict()
)
- 使用
dict()
函数可以将元组列表转换成字典。 - 示例:
dict([("name", "Alice"), ("age", 30)]) # 结果是 {'name': 'Alice', 'age': 30}
注意事项:
- 在进行类型转换时需要注意源数据的有效性和兼容性。
- 如果源数据不能正确地转换为目标类型,可能会引发异常。