Python基本语法与规范|第一部分:Python入门与环境搭建 (Python Foundations)
我们已经成功搭建了开发环境,现在是时候学习Python这门语言的“语法规则”了。就像学习一门外语需要先掌握字母和语法一样,学习编程也需要从最基本的语法和规范开始。本章将为您打下坚实的语法基础。
3.1 关键字与标识符 (Keywords & Identifiers)
关键字 (Keywords)
关键字是Python语言中被赋予了特殊含义的单词,它们是语言结构的组成部分,绝对不能用作变量名、函数名或任何其他标识符的名称。
Python的关键字是固定的,你可以通过以下代码来查看当前版本的所有关键字:
import keyword
print(keyword.kwlist)
运行后,你会看到一个列表,包含了类似 False
, None
, True
, if
, for
, while
, class
, def
等单词。我们将在后续的课程中逐一学习它们。
标识符 (Identifiers)
标识符就是我们给变量、函数、类等对象起的名字。可以把它们想象成我们在现实世界中给事物起的名字,比如“张三”、“桌子”等。
命名规则 (必须遵守):
- 只能包含字母 (a-z, A-Z)、数字 (0-9) 和下划线 (
_
)。 - 第一个字符不能是数字。
- 区分大小写。例如,
myVar
和myvar
是两个完全不同的标识符。 - 不能使用关键字。
示例:
- 合法的标识符:
user_name
,age
,_internal_data
,Car1
- 非法的标识符:
1st_place
(以数字开头),user-name
(包含连字符-
),class
(是关键字)
命名规范 (建议遵守的“潜规则” - PEP 8风格指南):
遵循良好的命名规范能让你的代码更易于阅读和维护。
- 变量和函数名: 使用蛇形命名法 (snake_case),即所有字母小写,单词间用下划线连接。
- 示例:
user_age
,calculate_tax()
- 示例:
- 类名: 使用帕斯卡命名法 (PascalCase),也叫大驼峰命名法,即每个单词首字母大写。
- 示例:
Person
,CarModel
- 示例:
- 常量名: 所有字母大写,单词间用下划线连接。
- 示例:
MAX_CONNECTIONS
,PI
- 示例:
3.2 注释 (Comments)
注释是代码中用于解释说明的文字,它们会被Python解释器完全忽略,只供程序员阅读。编写清晰的注释是良好编程习惯的重要组成部分。
单行注释
以井号 #
开头,从 #
到行尾的所有内容都是注释。
# 这是一个单行注释,用来解释下面的代码功能
user_age = 30 # 也可以把注释写在代码行的末尾
多行注释 (文档字符串 Docstrings)
Python没有像其他语言那样 /* ... */
形式的块注释语法。但是,你可以使用三个单引号 '''
或三个双引号 """
来创建跨越多行的字符串。当这种字符串出现在模块、函数或类的开头时,它就成为了文档字符串 (Docstring),这是一个非常重要的概念。
"""
这是一个多行注释(文档字符串)。
它可以跨越多行,
通常用来详细描述一个函数或类的功能、参数和返回值。
"""
def add(a, b):
"""
这个函数接收两个数字作为参数,并返回它们的和。
:param a: 第一个数字
:param b: 第二个数字
:return: a 和 b 的和
"""
return a + b
# 你可以通过 help() 函数或 __doc__ 属性查看文档字符串
help(add)
# 或者
print(add.__doc__)
3.3 语句与缩进 (Statements & Indentation)
语句 (Statements)
一条Python语句就是一条完整的指令。通常,我们每行只写一条语句。
name = "Alice" # 这是一条赋值语句
print(name) # 这是一条函数调用语句
x = 1 + 2 # 这也是一条语句
缩进 (Indentation)
这是Python最具特色的地方,也是初学者最容易犯错的地方。在Python中,缩进不是为了好看,而是语法的一部分,用来定义代码块的层级关系。 其他许多语言(如C++, Java)使用花括号 {}
来组织代码块,而Python使用缩进。
- 规范: 统一使用 4个空格 作为一级缩进。
- 作用:
if
判断、for
/while
循环、def
函数定义、class
类定义等下面的代码块都必须缩进。
正确缩进的例子:
age = 18
if age >= 18:
print("你已经是成年人了。") # <- 这一行属于 if 代码块,必须缩进
print("你需要为自己的行为负责。") # <- 这一行也属于 if 代码块
else:
print("你还是未成年人。") # <- 这一行属于 else 代码块,必须缩进
print("程序结束。") # <- 这一行没有缩进,不属于任何代码块
错误缩进的例子:
age = 20
if age >= 18:
print("成年了") # 错误!这里缺少了必要的缩进
# 上面的代码会直接导致 IndentationError: expected an indented block
3.4 变量与多重赋值
变量 (Variables)
变量就像一个贴有标签的盒子,你可以把数据(比如数字、文字)放进去。在Python中,你不需要预先声明变量的类型,直接使用 =
赋值即可。
# 创建变量并赋值
name = "Bob"
age = 25
height = 1.75
# 打印变量的值
print(name)
print(age)
# 变量的值可以被改变
age = 26
print(age) # 输出将是 26
# 变量的类型也可以改变(动态类型)
my_var = 100 # my_var 是整数
my_var = "一百" # 现在 my_var 变成了字符串
多重赋值 (Multiple Assignment)
Python支持一些非常便捷的赋值方式。
-
链式赋值: 将同一个值赋给多个变量。
x = y = z = 0 print(x, y, z) # 输出: 0 0 0
-
多元赋值: 将多个值同时赋给多个变量。
name, age, city = "Charlie", 35, "New York" print(f"Name: {name}, Age: {age}, City: {city}") # 输出: Name: Charlie, Age: 35, City: New York # 这个特性常用于交换两个变量的值,非常优雅 a = 10 b = 20 a, b = b, a # a和b的值被交换了 print(f"a = {a}, b = {b}") # 输出: a = 20, b = 10
3.5 从控制台获取用户输入 (input()
函数)
程序常常需要与用户交互,input()
函数就是实现这一功能的桥梁。它会暂停程序的执行,等待用户在控制台输入内容,并按下回车键。
关键点:input()
函数接收到的任何内容,一律被当作字符串(str)类型来处理。
基础示例:
user_name = input("请输入你的名字: ")
print(f"你好, {user_name}!")
当你运行这段代码,程序会显示 "请输入你的名字: ",然后光标会停在那里等待你输入。假设你输入 "David" 并回车,程序会接着打印 "你好, David!"。
处理数字输入的示例:
如果你想获取一个数字并进行计算,必须手动将 input()
返回的字符串转换为数字类型(如 int
或 float
)。
# 错误的做法
# age = input("请输入你的年龄: ")
# next_year_age = age + 1 # 这会引发 TypeError,因为不能把字符串和数字相加
# 正确的做法
age_str = input("请输入你的年龄: ")
age_int = int(age_str) # 使用 int() 函数将字符串转换为整数
next_year_age = age_int + 1
print(f"明年,你就 {next_year_age} 岁了。")
章节小结
在本章中,我们掌握了Python最基础的语法元素:如何命名(标识符)、如何写注释、代码块如何组织(缩进)、如何存储数据(变量)以及如何与用户交互(input()
)。这些是构建任何复杂程序的基石。在下一章中,我们将深入探讨Python中丰富的数据类型。