5 变量
大约 7 分钟
本篇是 Python 系列教程第 5 篇,更多内容敬请访问我的 Python 合集
1 定义变量
在Python中定义变量非常简单,你只需要给变量赋值即可。Python会自动检测变量的数据类型。下面是一些基本的例子来展示如何定义不同类型的变量:
1.1 整数
age = 251.2 浮点数
height = 1.751.3 字符串
name = "Alice"1.4 布尔
is_student = True1.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不是关键字andasassertasyncawaitbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinislambdanonlocalnotorpassraisereturntrywhilewithyield
这些关键字都不能作为变量名使用。例如,你不能将一个变量命名为if、for或class等。如果尝试这样做,Python解释器会抛出一个SyntaxError错误。
示例:
# 错误用法
if = 5 # SyntaxError: invalid syntax正确的做法是选择一个合法变量名,它应该符合以下规则:
- 只能由字母、数字和下划线组成。
- 必须以字母或下划线开头。
- 区分大小写。如
Variable,variable, 和VARIABLE是三个不同的变量。
例如:
# 正确用法
my_variable = 53 命名规则
在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) # 结果是 35.2 将其他类型转换为浮点数 (float())
- 使用
float()函数可以将整数、字符串等转换成浮点数,如果字符串不能被解析为浮点数,则会抛出异常。 - 示例:
float(42) # 结果是 42.0
float("3.14") # 结果是 3.145.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") # 结果是 True5.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}注意事项:
- 在进行类型转换时需要注意源数据的有效性和兼容性。
- 如果源数据不能正确地转换为目标类型,可能会引发异常。