作为一名使用Python多年的开发者,我依然记得第一次在终端输入python命令时的兴奋感。Python作为一门简洁优雅的语言,其基础语法设计处处体现着"简单即美"的哲学理念。让我们从最基础的交互式编程开始,逐步探索Python语法的精髓。
交互式编程是Python初学者最好的伙伴。在终端或命令行中直接输入python命令(Windows用户可以在开始菜单中找到Python IDLE),你会看到类似这样的提示符:
bash复制$ python
Python 3.9.0 (default, Oct 6 2021, 00:00:00)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
注意:不同操作系统和Python版本显示的提示信息可能略有不同,这完全正常。重要的是看到
>>>这个提示符,它表示Python解释器已经准备好接收你的命令了。
让我们尝试第一个Python程序——经典的"Hello World":
python复制>>> print("Hello, Python!")
Hello, Python!
交互式环境的优势在于即时反馈,特别适合:
当代码量增大或需要重复执行时,我们就需要将代码保存为.py文件。创建一个名为hello.py的文件,内容如下:
python复制#!/usr/bin/env python3
# -*- coding: utf-8 -*-
print("Hello, Python Script!")
执行这个脚本有两种方式:
bash复制$ python hello.py
bash复制$ chmod +x hello.py
$ ./hello.py
实用技巧:脚本开头的
#!/usr/bin/env python3称为shebang行,它指定了执行该脚本的解释器路径。使用env查找python3比直接写固定路径更灵活可靠。
Python标识符是用来标识变量、函数、类等对象的名称。其规则比许多语言更为严格:
myVar和myvar是不同的变量特殊形式的标识符有约定俗成的含义:
_var:暗示"内部使用"的变量__var:名称改写(name mangling),用于类私有成员__var__:Python特殊方法命名建议:遵循PEP8规范,变量用小写字母加下划线(如
user_name),类名用驼峰式(如ClassName),常量全大写(如MAX_SIZE)。
Python有一组保留关键字,这些单词有特殊含义,不能用作标识符。Python 3.10的关键字列表如下:
| 关键字 | 用途说明 |
|---|---|
| False | 布尔假值 |
| None | 空值对象 |
| True | 布尔真值 |
| and | 逻辑与 |
| as | 别名声明 |
| assert | 断言检查 |
| async | 异步声明 |
| await | 异步等待 |
| break | 循环中断 |
| class | 类定义 |
| continue | 循环继续 |
| def | 函数定义 |
| del | 删除引用 |
| elif | else if条件 |
| else | 条件分支 |
| except | 异常捕获 |
| finally | 最终处理 |
| for | 循环语句 |
| from | 模块导入 |
| global | 全局变量声明 |
| if | 条件语句 |
| import | 模块导入 |
| in | 成员测试 |
| is | 同一性测试 |
| lambda | 匿名函数 |
| nonlocal | 非局部变量声明 |
| not | 逻辑非 |
| or | 逻辑或 |
| pass | 空操作 |
| raise | 抛出异常 |
| return | 函数返回 |
| try | 异常处理 |
| while | 循环语句 |
| with | 上下文管理器 |
| yield | 生成器返回值 |
注意:随着Python版本更新,关键字列表可能会有变化。可以使用以下代码查看当前解释器的关键字:
python复制import keyword print(keyword.kwlist)
Python最具特色的语法特性就是使用缩进来定义代码块,而不是像其他语言那样使用大括号。这种设计强制开发者写出结构清晰的代码。
基本缩进规则:
IndentationError示例:
python复制if x > 10:
print("x大于10") # 缩进4个空格
y = x * 2 # 必须保持相同缩进
else:
print("x不大于10")
y = x + 1
常见错误:混合使用制表符和空格会导致难以调试的缩进错误。建议在编辑器中设置"将制表符转换为空格"。
Python中通常一行就是一条语句,但有时为了可读性需要将长语句分成多行:
显式行连接:使用反斜杠()
python复制total = item_one + \
item_two + \
item_three
隐式行连接:在括号(圆括号、方括号、花括号)中的内容会自动连接
python复制days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
Python支持多种字符串表示方式:
'single quotes'"double quotes"'''triple single quotes'''或"""triple double quotes"""三引号字符串的特殊用途:
示例:
python复制def calculate_sum(a, b):
"""这是一个文档字符串示例
参数:
a: 第一个加数
b: 第二个加数
返回:
两个数的和
"""
return a + b
良好的注释习惯是专业开发者的标志。Python支持两种注释方式:
单行注释:以#开头
python复制# 这是一个单行注释
x = 1 # 也可以在代码后添加注释
多行注释:使用三引号(虽然技术上这是字符串,但常用作注释)
python复制"""
这是一个多行注释示例
可以跨越多行
常用于模块或函数的总体说明
"""
文档编写建议:遵循PEP257规范,为每个公共模块、函数、类和方法编写文档字符串。使用reStructuredText或Google风格格式。
获取用户输入:
Python 3中使用input()函数获取用户输入(Python 2中是raw_input()):
python复制name = input("请输入你的名字:")
print(f"你好,{name}!")
控制输出:
print()函数是主要的输出方式,支持多种控制:
python复制# 基本输出
print("Hello World")
# 输出多个值,默认用空格分隔
print("Name:", name, "Age:", age)
# 更改分隔符
print("192", "168", "1", "1", sep=".")
# 控制结束符(默认是换行)
print("Loading", end="...")
print("Done!")
格式化输出技巧:Python 3.6+推荐使用f-string:
python复制price = 19.99 print(f"价格:{price:.2f}元") # 输出:价格:19.99元
虽然Python 2已经于2020年停止支持,但仍有部分遗留系统在使用。了解两个版本的主要区别很重要:
print函数:
print "Hello"(语句)print("Hello")(函数)整数除法:
5 / 2返回2(整数除法)5 / 2返回2.5(真除法)Unicode支持:
u前缀b前缀xrange与range:
range()返回列表,xrange()返回生成器range()行为同Python 2的xrange()缩进错误:
python复制if True:
print("IndentationError") # 缺少缩进
解决方案:统一使用4个空格缩进,配置编辑器显示空白字符
名称错误:
python复制print(var_name) # NameError: name 'var_name' is not defined
解决方案:确保变量在使用前已正确声明和赋值
类型错误:
python复制"2" + 2 # TypeError: can only concatenate str to str
解决方案:进行显式类型转换:int("2") + 2
语法错误:
python复制if x > 5 # 缺少冒号
print(x)
解决方案:仔细检查语法结构,使用代码高亮编辑器
调试技巧:使用
pdb模块进行交互式调试:python复制import pdb; pdb.set_trace() # 在代码中插入断点
PEP8是Python官方的风格指南,主要内容包括:
lower_case_with_underscores)CapWords)ALL_CAPS)可以使用autopep8工具自动格式化代码:
bash复制$ pip install autopep8
$ autopep8 --in-place --aggressive <filename.py>
掌握Python基础语法只是编程之旅的第一步。在实际开发中,你会不断发现Python设计中的巧妙之处。记住,Python之禅(通过import this查看)是指导我们写出优雅代码的哲学。