《基本概念》将介绍Python编程中的一些基础概念,包括常量、字符串、变量、数据类型、对象以及代码的缩进规则。
字面意义上的常量:
在编程中,字面意义上的常量(Literal Constants)是指在代码中直接表示的固定值,它们在程序执行过程中不会被改变。在Python中,常量可以是任何基本数据类型的值,包括数字、字符串和布尔值。以下是Python中几种常见的字面意义上的常量:
- 常量是固定值,在程序中用于表示不变的数据,如数字和字符串。
- 数字常量包括整数、浮点数和复数。
- 字符串常量用于表示文本数据,可以用单引号、双引号或三引号定义。
数字常量
- 整数(Integers):没有小数部分的数字,可以是正数、负数或零。例如:
5
,-3
,0
。 - 浮点数(Floating-point numbers):带有小数点的数字。例如:
3.14
,-0.001
,2.0
(尽管看起来像整数,但因为有一个显式的小数点,所以是浮点数)。 - 复数(Complex numbers):由实部和虚部组成的数,虚部以
j
或J
结尾。例如:3 + 4j
,-2.5e-3 + 1j
。 - 普通字符串(String literals):由单引号或双引号包围的字符序列。例如:
'hello'
,"world"
。 - 多行字符串(Multi-line strings):由三个单引号或三个双引号包围的字符序列,可以跨越多行。例如:
""" This is a multi-line string literal. """
- 原始字符串(Raw string literals):由
r
前缀和单引号或双引号包围的字符串,不会处理转义字符。例如:r"\n"
表示包含换行符的原始字符串。 - 布尔值(Boolean values):表示逻辑真或假的常量,有两个可能的值:
True
和False
。 - None:表示空或“无”的常量。它通常用于初始化变量或表示函数没有返回值。
- Ellipsis:表示三个连续的点(
...
),在某些上下文中有特殊含义,如在切片操作中表示省略。 -
示例
在Python代码中使用这些常量的例子:
# 数字常量 、 integer_value = 42 float_value = 3.14 complex_value = 1 + 2j # 字符串常量 string_value = 'Hello, World!' multi_line_string = """This spans multiple lines.""" raw_string = r'This\ncontains a newline character.' # 布尔常量 bool_true = True bool_false = False # 空值常量 none_value = None # 特殊常量 ellipsis_value = ...
在Python中,这些常量在定义时就被赋予了特定的值,并且在程序的整个生命周期内都不会改变。它们是构建程序逻辑和数据处理的基础。
字符串:
- 字符串是字符序列,可以包含字母、数字和其他字符。
- 字符串可以通过加号(
+
)进行连接。 - 字符串是不可变的,意味着一旦创建,其内容不能更改。
- 字符串可以使用索引访问单个字符,也支持切片操作。
变量:
- 变量用于存储数据,其值可以在程序执行过程中改变。
- 变量名(标识符)必须遵循特定的命名规则,如不能以数字开头、不能包含空格等。
- Python中的变量不需要事先声明类型,可以直接赋值。
标识符的命名:
命名规则:
-
基本规则:
- 标识符的第一个字符必须是字母(大写或小写)或下划线(
_
)。 - 标识符的其他部分可以由字母、数字和下划线组成。
- 标识符不能以数字开头。
- 标识符不能是Python的保留字(如
if
、for
、class
等)。
- 标识符的第一个字符必须是字母(大写或小写)或下划线(
-
大小写敏感:
- Python是大小写敏感的语言,这意味着
MyVariable
和myvariable
是两个不同的标识符。
- Python是大小写敏感的语言,这意味着
-
保留字:
- 你不能使用Python的保留字作为标识符,例如
if
、else
、while
、def
等。
- 你不能使用Python的保留字作为标识符,例如
-
私有变量:
- 如果你想定义一个私有变量(只在类内部使用),通常以双下划线(
__
)开头,例如__privateVar
。
- 如果你想定义一个私有变量(只在类内部使用),通常以双下划线(
最佳实践:
-
可读性:
- 选择有意义的名称,使其他开发者能够轻松理解变量的用途。
- 避免使用单个字符(如
x
、y
)作为标识符,除非你在数学计算或算法实现中使用它们作为临时变量。
-
命名风格:
- 小写字母:使用小写字母和下划线来分隔单词,例如
my_variable
。 - 驼峰命名法:首字母小写的驼峰式命名(CamelCase)通常用于类名,例如
myClass
。 - 帕斯卡命名法:首字母大写的驼峰式命名(PascalCase)也用于类名,但在Python中较少见。
- 小写字母:使用小写字母和下划线来分隔单词,例如
-
单字符标识符:
- 虽然技术上允许,但应避免使用单个字符作为标识符,除非在循环或迭代中作为临时变量。
-
描述性命名:
- 使用描述性的名称,避免使用模糊的名称,如
data
、info
,而应该使用更具描述性的名称,如customerName
、orderTotal
。
- 使用描述性的名称,避免使用模糊的名称,如
-
避免冲突:
- 避免使用与内置类型、函数或模块名称相同的标识符,以减少命名冲突的可能性。
-
私有属性和方法:
- 对于类的私有成员,使用双下划线前缀,如
_ClassName__privateMethod
。
- 对于类的私有成员,使用双下划线前缀,如
通过遵循这些规则和最佳实践,你可以确保你的代码易于理解和维护,同时避免潜在的命名冲突。
数据类型:
- Python中的变量可以存储不同类型的数据,称为数据类型。
- 基本数据类型包括数字(整数、浮点数、复数)和字符串。
- 后续章节将介绍如何使用类来创建自定义数据类型。
对象:
- 在Python中,一切皆为对象,包括数字、字符串和函数。
- 对象是类的实例,可以拥有属性和方法。
逻辑行与物理行:
重要性: 正确理解逻辑行与物理行的区别对于编写清晰、易读的Python代码非常重要。尤其是在编写较长的表达式或声明时,合理地使用这些连接方式可以使代码更加整洁和维护性更好。同时,避免不必要的反斜杠和正确使用括号可以使代码更加Pythonic。
- 解释了逻辑行和物理行的概念,以及它们在Python代码中的区别。
- 讨论了如何在物理行中使用分号(
;
)和反斜杠(\
)来连接逻辑行。 -
在Python中,逻辑行与物理行是两个重要的概念,它们定义了代码的结构和布局。
物理行(Physical Line): 物理行是指在源代码文件中实际出现的行,即你在编辑器中看到的、由换行符分隔的每一行代码。物理行的末尾通常有一个换行符(
\n
),这是编辑器用来表示行结束的标准方式。例如:print("Hello, World!") # 这是一个物理行 print("This is another physical line.") # 这是另一个物理行
逻辑行(Logical Line): 逻辑行是指Python解释器在执行时视为单个语句的代码单元。在Python中,逻辑行通常与物理行一一对应,但有时一个逻辑行可以通过特定的语法延伸到多个物理行。逻辑行的结束不一定需要换行符,而是可以由语句的结构决定。
连接逻辑行: 在某些情况下,你可能会希望将一个长语句分布在多个物理行上,这可以通过以下几种方式实现:
-
使用反斜杠(
\
):在物理行的末尾使用反斜杠可以将下一个物理行与当前物理行连接起来,形成一个更长的逻辑行。例如:a_very_long_variable_name = value_1 + \ value_2 + value_3 # 这里的反斜杠表示逻辑行将继续到下一行
-
使用圆括号、方括号或花括号:在这些括号内部的表达式会自动连接,不需要使用反斜杠。例如:
a_list = [1, 2, 3, 4, 5] # 列表跨越多行,但不需要反斜杠 a_dict = { 'key1': 'value1', 'key2': 'value2' } # 同样,字典也自动连接 a_tuple = (1, 2, 3, 4, 5) # 元组也是如此
-
三引号(
'''
或"""
)定义的多行字符串:使用三引号定义的字符串可以自然地跨越多行,不需要额外的连接符。例如:long_string = """ This is a multi-line string. It can span multiple physical lines. But it's treated as a single logical line. """
缩进:
- 缩进在Python中非常重要,用于表示代码块的结构。
- 强调了使用一致的缩进风格(如每个缩进层次使用四个空格)的重要性。
- 介绍了如何正确地使用缩进来避免语法错误。