Python 是一种高级、解释型、通用的编程语言,因其简洁明了的语法和强大的功能库,在人工智能、数据分析、Web 开发、自动化脚本等领域广受欢迎。本文将从零开始,全面掌握 Python 的基础语法,为后续深入学习打下坚实基础。
一、Python 简介
Python 由荷兰程序员吉多·范罗苏姆(Guido van Rossum)于 1989 年圣诞节期间创建,其设计哲学强调代码的可读性和简洁性。Python 的名字来源于作者喜爱的英国喜剧团体“Monty Python”,而非爬行动物蟒蛇。
1.1 Python 的特点
- 简单易学:语法接近自然语言,新手友好。
- 跨平台:支持 Windows、macOS、Linux 等操作系统。
- 解释型语言:无需编译,边解释边执行。
- 丰富的标准库:内置大量模块,如文件操作、网络通信、正则表达式等。
- 动态类型:变量无需声明类型,运行时自动确定。
- 面向对象:支持类与对象,封装、继承、多态。
- 开源生态强大:拥有庞大的第三方库(如 NumPy、Pandas、Django、Flask)。
二、环境搭建与第一个程序
2.1 安装 Python
访问官网 https://www.python.org 下载最新版本的 Python(推荐使用 Python 3.x)。安装时务必勾选“Add Python to PATH”选项,以便在命令行中直接使用 python 命令。
验证是否安装成功:
输出类似 Python 3.11.5 即表示安装成功。
2.2 运行第一个 Python 程序
打开命令行或 IDLE(Python 自带的开发环境),输入以下代码:
按下回车,屏幕上会显示:
这就是经典的“Hello, World!”程序,标志着你正式踏入编程世界!
三、变量与数据类型
3.1 变量
变量是用于存储数据的容器。在 Python 中,定义变量非常简单,只需写出变量名并赋值即可:
name = "Alice"age = 25height = 1.68is_student = True
Python 是动态类型语言,变量的类型会在运行时根据值自动推断。
⚠️ 注意:变量名不能以数字开头,不能包含空格或特殊符号(可用下划线 _),且区分大小写。
合法变量名示例:
非法变量名示例:
2name(以数字开头)first-name(含连字符)class(关键字)
3.2 常见数据类型
字符串操作
greeting = "Hello"name = "Bob"message = greeting + ", " + name + "!" # 字符串拼接print(message) # 输出:Hello, Bob!# 使用 f-string 格式化(推荐)message = f"{greeting}, {name}!"print(message)
f-string 是 Python 3.6 引入的强大功能,可以在大括号 {} 中直接嵌入变量或表达式。
四、运算符
Python 支持多种运算符,用于执行数学计算、比较判断和逻辑操作。
4.1 算术运算符
print(2 ** 3) # 8print(10 // 3) # 3print(10 % 3) # 1
4.2 比较运算符
结果为布尔值(True 或 False)。
4.3 逻辑运算符
x = 5print(x > 3 and x < 10) # Trueprint(not (x == 4)) # True
五、控制流程
程序的执行顺序称为“流程控制”。Python 提供了条件判断和循环结构来控制程序走向。
5.1 条件语句(if-elif-else)
根据条件决定执行哪段代码。
age = 18if age < 13: print("你是儿童")elif age < 18: print("你是青少年")else: print("你是成年人")
输出:你是成年人
⚠️ 注意:Python 使用缩进来表示代码块,通常用 4 个空格。不要混用 Tab 和空格!
5.2 循环语句
(1)while 循环
当条件为真时重复执行代码。
i = 1while i <= 5: print(i) i += 1 # 相当于 i = i + 1
输出:
(2)for 循环
用于遍历序列(如列表、字符串、范围等)。
# 遍历数字范围for i in range(1, 6): # 从1到5 print(i)# 遍历字符串for char in "Python": print(char)# 遍历列表fruits = ["apple", "banana", "orange"]for fruit in fruits: print(fruit)
range() 函数常用形式:
range(5)→ 0,1,2,3,4range(2, 6)→ 2,3,4,5range(1, 10, 2)→ 1,3,5,7,9(步长为2)
六、数据结构
Python 提供了多种内置的数据结构,用于组织和管理数据。
6.1 列表(List)
列表是有序、可变的集合,允许重复元素。
numbers = [1, 2, 3, 4]names = ["Alice", "Bob", "Charlie"]# 访问元素(索引从0开始)print(names[0]) # Aliceprint(names[-1]) # Charlie(最后一个)# 修改元素names[1] = "David"# 添加元素names.append("Eva") # 末尾添加names.insert(1, "Frank") # 在指定位置插入# 删除元素names.remove("Frank") # 删除指定值del names[0] # 删除指定索引popped = names.pop() # 弹出最后一个元素# 遍历列表for name in names: print(name)
列表切片(Slice):
nums = [0, 1, 2, 3, 4, 5]print(nums[1:4]) # [1, 2, 3] —— 左闭右开print(nums[:3]) # [0, 1, 2]print(nums[2:]) # [2, 3, 4, 5]print(nums[::-1]) # [5,4,3,2,1,0] —— 反转
6.2 元组(Tuple)
元组与列表相似,但不可修改(immutable)。
point = (3, 5)colors = ("red", "green", "blue")# 访问方式与列表相同print(point[0]) # 3# 不能修改# point[0] = 4 # ❌ 报错
优点:更安全、性能略高,常用于函数返回多个值。
6.3 字典(Dictionary)
字典是键值对(key-value)的无序集合,通过键快速查找值。
student = { "name": "Alice", "age": 20, "major": "Computer Science"}# 访问值print(student["name"]) # Aliceprint(student.get("age")) # 20# 添加/修改student["grade"] = "A"student["age"] = 21# 删除del student["major"]# 遍历字典for key, value in student.items(): print(f"{key}: {value}")
输出:
name: Aliceage: 21grade: A
常见方法:
.keys():获取所有键.values():获取所有值.items():获取所有键值对
6.4 集合(Set)
集合是无序、不重复的元素集合,支持数学集合运算。
set1 = {1, 2, 3}set2 = {3, 4, 5}# 并集print(set1 | set2) # {1,2,3,4,5}# 交集print(set1 & set2) # {3}# 差集print(set1 - set2) # {1,2}# 添加元素set1.add(4)# 删除元素set1.discard(1)
七、函数
函数是一段可重复使用的代码块,用来完成特定任务。
7.1 定义函数
使用 def 关键字定义函数:
def greet(name): """打招呼函数""" print(f"Hello, {name}!")# 调用函数greet("Tom") # 输出:Hello, Tom!
7.2 返回值
使用 return 返回结果:
def add(a, b): return a + bresult = add(3, 5)print(result) # 8
7.3 参数类型
- 位置参数:按顺序传递
- 默认参数:提供默认值
- 关键字参数:调用时指定参数名
def introduce(name, age=18): print(f"我叫{name},今年{age}岁。")introduce("Lucy") # 我叫Lucy,今年18岁。introduce("Mike", 25) # 我叫Mike,今年25岁。introduce(age=30, name="Jane") # 我叫Jane,今年30岁。
7.4 匿名函数(lambda)
用于定义简单的单行函数:
square = lambda x: x ** 2print(square(4)) # 16# 常用于排序、过滤numbers = [3, 1, 4, 2]sorted_nums = sorted(numbers, key=lambda x: -x) # 降序
八、文件操作
Python 可以轻松读写文件。
8.1 打开与关闭文件
# 方法一:手动关闭file = open("data.txt", "r", encoding="utf-8")content = file.read()print(content)file.close()# 方法二:推荐使用 with(自动关闭)withopen("data.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
常见模式:
"r":读取(默认)"w":写入(覆盖原内容)"a":追加"b":二进制模式(如 "rb")
8.2 逐行读取
with open("data.txt", "r", encoding="utf-8") as f: for line in f: print(line.strip()) # strip() 去除换行符
8.3 写入文件
with open("output.txt", "w", encoding="utf-8") as f: f.write("第一行\n") f.write("第二行\n")
九、异常处理
程序运行中可能出现错误(如文件不存在、除零等),使用 try-except 捕获异常,防止程序崩溃。
try: num = int(input("请输入一个数字:")) result = 10 / num print(f"结果是:{result}")except ValueError: print("输入的不是有效数字!")except ZeroDivisionError: print("不能除以零!")except Exception as e: print(f"发生未知错误:{e}")else: print("计算成功!")finally: print("程序结束")
try:可能出错的代码except:捕获特定异常else:没有异常时执行finally:无论是否有异常都会执行
十、模块与包
随着项目变大,代码需要分模块管理。
10.1 导入模块
Python 标准库提供了许多模块,如 math、random、datetime。
import mathprint(math.sqrt(16)) # 4.0from random import randintprint(randint(1, 10)) # 随机输出1~10之间的整数from datetime import datetimeprint(datetime.now())
10.2 创建自己的模块
新建文件 mymodule.py:
# mymodule.pydef say_hello(): print("Hello from mymodule!")
在另一个文件中导入:
import mymodulemymodule.say_hello()
十一、面向对象编程(OOP)
Python 支持面向对象编程,核心概念包括类、对象、封装、继承、多态。
11.1 定义类与对象
class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print(f"{self.name} 在汪汪叫!")# 创建对象dog1 = Dog("旺财", 3)dog2 = Dog("小黑", 2)dog1.bark() # 旺财 在汪汪叫!print(dog2.name) # 小黑
__init__是构造函数,创建对象时自动调用self表示当前实例,类似于 Java 中的this
11.2 继承
子类可以继承父类的属性和方法。
class Animal: def speak(self): passclass Cat(Animal): def speak(self): print("喵喵喵")class Dog(Animal): def speak(self): print("汪汪汪")# 多态def make_sound(animal): animal.speak()make_sound(Cat()) # 喵喵喵make_sound(Dog()) # 汪汪汪
十二、实用技巧与建议
12.1 使用 IDE 或编辑器
推荐工具:
- PyCharm(专业版功能强大)
- VS Code(轻量免费,插件丰富)
- Jupyter Notebook(适合数据分析和教学)
12.2 学习资源推荐
- 官方文档:https://docs.python.org
- 菜鸟教程:https://www.runoob.com/python
12.3 编码规范
遵循 PEP 8 规范:
总结
本文系统介绍了 Python 的基础语法,包括:
掌握这些基础知识后,可以进一步学习:
- 网络爬虫(requests + BeautifulSoup)
- 数据分析(pandas + matplotlib)
- 机器学习(scikit-learn, TensorFlow)
Python 的学习曲线平缓,但能力强大。坚持动手实践,多写代码,会越来越熟练。编程不仅是技术,更是一种思维方式。祝在 Python 的世界里越走越远!
✅ 附录:常用内置函数速查表