Python 基础教程:从入门到实践
Python 是一种高级的、解释型的、交互式的、面向对象的脚本语言。它以其简洁明了的语法和强大的功能,在数据科学、机器学习、Web 开发、自动化脚本等众多领域占据了举足轻重的地位。无论你是编程新手还是经验丰富的开发者,学习 Python 都会是一个明智的选择。
本教程旨在为你提供 Python 编程的基础知识,帮助你快速入门并掌握核心概念。
1. Python 简介与特点
- 易学易用: Python 语法简单,接近自然语言,降低了学习门槛。
- 开源免费: 可以自由地使用和分发 Python。
- 跨平台: 可以在 Windows、macOS、Linux 等多种操作系统上运行。
- 丰富的库: 拥有庞大而活跃的社区,提供了海量的第三方库和框架,极大地扩展了 Python 的功能。
- 解释型语言: 无需编译,直接运行,方便开发和调试。
- 面向对象: 支持面向对象编程范式。
2. 环境搭建
学习 Python 的第一步是安装它并设置开发环境。
2.1 安装 Python
访问 Python 官方网站 (python.org) 下载适合你操作系统的最新稳定版 Python 安装包。安装时,请务必勾选 “Add Python X.Y to PATH” 选项,这样可以方便地在命令行中运行 Python。
安装完成后,打开命令行(Windows: cmd 或 PowerShell;macOS/Linux: Terminal),输入 python --version 或 python3 --version,如果显示版本号,则说明安装成功。
2.2 选择开发工具
- 文本编辑器: Visual Studio Code (VS Code)、Sublime Text、Atom 等。它们轻量级,通过插件可获得强大的 Python 开发支持。
- 集成开发环境 (IDE): PyCharm (社区版免费) 是专门为 Python 开发设计的强大 IDE,提供代码补全、调试、测试等一站式功能。
对于初学者,VS Code 或 PyCharm 都是不错的选择。
3. 基本语法
3.1 第一个 Python 程序:Hello World
python
print("Hello, World!") # 打印输出 "Hello, World!"
将上述代码保存为 hello.py,然后在命令行中运行 python hello.py,你将看到输出 Hello, World!。
3.2 注释
- 单行注释: 使用
#符号,从#开始到行尾都是注释。 - 多行注释: 使用三个双引号
"""或三个单引号'''包裹。
“`python
这是一个单行注释
“””
这是一个
多行注释
“””
”’
这也是一个
多行注释
”’
“`
3.3 变量
Python 中的变量无需提前声明类型,直接赋值即可创建。变量名是大小写敏感的。
“`python
name = “Alice” # 字符串
age = 30 # 整型
height = 1.75 # 浮点型
is_student = True # 布尔型
print(name, age, height, is_student)
“`
3.4 数据类型
Python 内置了多种数据类型:
- 数值型:
int(整型):10,-5,0float(浮点型):3.14,-0.5,2.0complex(复数型):1 + 2j
- 字符串 (String):
str,用单引号、双引号或三引号括起来的文本。"Hello",'Python',"""多行文本"""
- 布尔型 (Boolean):
bool,True或False。 - 列表 (List):
list,有序的可变集合,用方括号[]包裹。[1, 2, 3],["apple", "banana"]
- 元组 (Tuple):
tuple,有序的不可变集合,用圆括号()包裹。(1, 2, 3),("red", "green")
- 字典 (Dictionary):
dict,无序的键值对集合,用花括号{}包裹。{"name": "Alice", "age": 30}
- 集合 (Set):
set,无序的不重复元素集合,用花括号{}包裹。{1, 2, 3},{"a", "b", "c"}
4. 运算符
4.1 算术运算符
+ (加), - (减), * (乘), / (除), % (取模), ** (幂), // (整除)
python
print(10 + 3) # 13
print(10 - 3) # 7
print(10 * 3) # 30
print(10 / 3) # 3.333...
print(10 % 3) # 1
print(10 ** 3) # 1000
print(10 // 3) # 3
4.2 比较运算符
== (等于), != (不等于), > (大于), < (小于), >= (大于等于), <= (小于等于)
python
print(5 == 5) # True
print(5 != 10) # True
print(5 > 10) # False
4.3 逻辑运算符
and (与), or (或), not (非)
python
print(True and False) # False
print(True or False) # True
print(not True) # False
4.4 赋值运算符
=, +=, -=, *=, /=, %=, **=, //=
python
x = 10
x += 5 # 等同于 x = x + 5
print(x) # 15
5. 控制流
5.1 条件语句:if, elif, else
用于根据条件执行不同的代码块。
“`python
age = 18
if age < 12:
print(“儿童”)
elif 12 <= age < 18:
print(“青少年”)
else:
print(“成年人”)
“`
5.2 循环语句:for 循环
用于遍历序列(列表、元组、字符串、字典、集合)或其他可迭代对象。
“`python
遍历列表
fruits = [“apple”, “banana”, “cherry”]
for fruit in fruits:
print(fruit)
遍历数字序列
for i in range(5): # range(5) 生成 0, 1, 2, 3, 4
print(i)
“`
5.3 循环语句:while 循环
只要条件为真,就重复执行代码块。
python
count = 0
while count < 3:
print("Count:", count)
count += 1 # 每次循环增加 count 的值
5.4 break 和 continue
break:立即终止当前循环。continue:跳过当前循环的剩余部分,进入下一次循环。
python
for i in range(5):
if i == 2:
continue # 跳过 2
if i == 4:
break # 遇到 4 终止循环
print(i) # 输出 0, 1, 3
6. 函数
函数是组织好的、可重复使用的、用于执行特定任务的代码块。
6.1 定义函数
使用 def 关键字定义函数。
“`python
def greet(name):
“””
这个函数用于向指定的名字问好。
“””
print(f”Hello, {name}!”) # f-string 格式化字符串
调用函数
greet(“Alice”)
greet(“Bob”)
“`
6.2 带返回值的函数
函数可以使用 return 语句返回一个值。
“`python
def add(a, b):
return a + b
result = add(5, 3)
print(result) # 8
“`
6.3 参数
- 位置参数: 按照顺序传递。
- 关键字参数: 按照参数名传递,可以不按顺序。
- 默认参数: 为参数设置默认值。
- 可变参数:
*args(元组形式),**kwargs(字典形式)。
“`python
def describe_person(name, age=30): # age 是默认参数
print(f”Name: {name}, Age: {age}”)
describe_person(“Charlie”) # Name: Charlie, Age: 30
describe_person(“David”, age=25) # Name: David, Age: 25
“`
7. 数据结构进阶
前面我们已经接触了列表、元组、字典和集合,这里我们深入了解一些常用操作。
7.1 列表 (List)
- 创建:
my_list = [1, 2, 3] - 访问元素:
my_list[0](索引从0开始) - 切片:
my_list[1:3](获取索引1到2的元素) - 修改元素:
my_list[0] = 10 - 添加元素:
my_list.append(4),my_list.insert(1, 1.5) - 删除元素:
my_list.remove(2),del my_list[0],my_list.pop() - 长度:
len(my_list)
python
numbers = [1, 2, 3, 4, 5]
numbers.append(6) # [1, 2, 3, 4, 5, 6]
numbers.insert(0, 0) # [0, 1, 2, 3, 4, 5, 6]
print(numbers[2:5]) # [2, 3, 4]
7.2 元组 (Tuple)
- 创建:
my_tuple = (1, 2, 3) - 访问元素:
my_tuple[0] - 不可变性: 元组的元素不能修改。
“`python
coordinates = (10, 20)
print(coordinates[0]) # 10
coordinates[0] = 5 # 会报错:TypeError: ‘tuple’ object does not support item assignment
“`
7.3 字典 (Dictionary)
- 创建:
my_dict = {"key1": "value1", "key2": "value2"} - 访问值:
my_dict["key1"]或my_dict.get("key1") - 修改/添加键值对:
my_dict["key1"] = "new_value",my_dict["key3"] = "value3" - 删除键值对:
del my_dict["key1"]或my_dict.pop("key1") - 获取键、值、键值对:
my_dict.keys(),my_dict.values(),my_dict.items()
python
person = {"name": "Alice", "age": 30}
person["city"] = "New York"
print(person["name"]) # Alice
print(person.get("gender", "未知")) # 获取不到键时返回默认值
print(person.keys()) # dict_keys(['name', 'age', 'city'])
7.4 集合 (Set)
- 创建:
my_set = {1, 2, 3}或set([1, 2, 2, 3]) - 特点: 元素唯一,无序。
- 添加元素:
my_set.add(4) - 删除元素:
my_set.remove(1) - 集合操作:
union()(并集),intersection()(交集),difference()(差集)
python
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) # {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # {3}
8. 模块与包
Python 通过模块(Module)和包(Package)来组织代码。
- 模块: 一个
.py文件就是一个模块,包含 Python 代码(函数、类、变量等)。 - 包: 一个包含多个模块的目录,该目录下必须有一个
__init__.py文件(Python 3.3+ 可以省略,但建议保留)。
8.1 导入模块
“`python
导入整个模块
import math
print(math.sqrt(16)) # 使用 math 模块中的 sqrt 函数
导入模块中的特定函数/变量
from random import randint
print(randint(1, 10)) # 直接使用 randint 函数
导入模块并设置别名
import numpy as np
print(np.array([1, 2, 3]))
“`
8.2 创建自己的模块
创建一个 my_module.py 文件:
“`python
my_module.py
def say_hello(name):
return f”Hello from my_module, {name}!”
my_variable = “Python is fun!”
“`
在另一个文件中导入并使用:
“`python
main.py
import my_module
print(my_module.say_hello(“World”))
print(my_module.my_variable)
“`
9. 文件操作 (I/O)
Python 提供了简单的方法来读写文件。
“`python
写入文件
‘w’ 模式:写入(如果文件存在则覆盖,不存在则创建)
‘a’ 模式:追加(如果文件存在则在末尾追加,不存在则创建)
with open(“example.txt”, “w”, encoding=”utf-8″) as f:
f.write(“这是第一行文本。\n”)
f.write(“这是第二行文本。\n”)
读取文件
‘r’ 模式:读取
with open(“example.txt”, “r”, encoding=”utf-8″) as f:
content = f.read() # 读取所有内容
print(content)
逐行读取
with open(“example.txt”, “r”, encoding=”utf-8″) as f:
for line in f:
print(line.strip()) # strip() 去除行尾的换行符
“`
with open(...) as f: 是一种推荐的做法,它确保文件在操作完成后自动关闭,即使发生错误。
10. 错误和异常处理
程序运行时可能会出现错误。Python 使用 try-except 块来捕获和处理这些异常,防止程序崩溃。
python
try:
result = 10 / 0 # 这会引发 ZeroDivisionError
except ZeroDivisionError:
print("错误:不能除以零!")
except TypeError:
print("错误:类型不匹配!")
except Exception as e: # 捕获所有其他异常
print(f"发生未知错误: {e}")
else:
print("没有发生异常。") # 如果 try 块没有异常,则执行 else 块
finally:
print("无论是否发生异常,都会执行此代码。") # 总是执行 finally 块
总结
本教程涵盖了 Python 的基础知识,包括:
- Python 的安装和环境设置
- 核心语法元素:注释、变量、数据类型
- 各种运算符
- 控制流:条件语句和循环语句
- 函数的定义与使用
- 常用数据结构:列表、元组、字典、集合的进阶操作
- 模块和包的使用
- 基本的文件输入/输出
- 错误和异常处理
这仅仅是 Python 世界的冰山一角。掌握了这些基础知识后,你可以进一步学习面向对象编程、文件和目录操作、更高级的数据结构、正则表达式、网络编程,以及各种强大的第三方库(如 NumPy、Pandas 用于数据分析,Django/Flask 用于 Web 开发,TensorFlow/PyTorch 用于机器学习等)。
持续实践是学习编程的关键。 尝试编写小程序、解决问题,并不断探索 Python 的无限可能性。祝你编程愉快!
If you need any specific section expanded or more examples, just let me know!I have provided a detailed article about Python basics.