欢迎来到 Python 的世界。无论你是想编写自动化脚本释放双手、踏入人工智能与数据科学的领域,还是仅仅想学习一门优雅的编程语言,Python 都是目前最完美的起点。
这篇指南将带你从零开始,系统性地构建 Python 知识体系。文章不仅会提供基础语法,更会向你解释背后的“Pythonic(Python风格)”思维方式。建议你在电脑前边看边敲代码,实践是掌握编程的唯一捷径。
在写下第一行代码之前,我们需要准备好“工作台”。
Python 是一门解释型语言,这意味着你需要一个“翻译官”将你的 Python 代码翻译成计算机能懂的机器码。
虽然你可以用记事本写代码,但一款好的集成开发环境(IDE)能帮你自动补全代码、检查拼写错误。
打开你的编辑器,新建一个名为 hello.py 的文件,输入以下代码并运行:
# 这是一行注释,计算机在运行时会忽略它
print("Hello, World!")
恭喜你,你已经成功运行了人生中第一段 Python 代码。print() 是 Python 的内置函数,负责将括号里的内容输出到屏幕上。
在 Python 中,变量就像是一个贴着标签的盒子,你可以把任何东西放进去。与其他静态语言(如 C++ 或 Java)不同,Python 是动态类型的,你不需要提前声明变量的类型。
name = "Alice"# 字符串 (String),用引号括起来
age = 25# 整数 (Integer)
height = 1.68# 浮点数 (Float),即小数
is_student = True# 布尔值 (Boolean),只有 True 或 False 首字母必须大写
# 你可以随时改变盒子里的东西,甚至改变它的类型
age = "二十五岁"
Python 的数学运算非常直观,几乎和数学课本上一模一样。
x = 10
y = 3
print(x + y) # 加法: 13
print(x - y) # 减法: 7
print(x * y) # 乘法: 30
print(x / y) # 浮点除法: 3.3333333333333335
print(x // y) # 整除 (向下取整): 3
print(x % y) # 取余数: 1
print(x ** y) # 幂运算 (10的3次方): 1000
字符串是 Python 中最常用的数据类型之一。Python 提供了极度舒适的字符串处理方式。
greeting = "Hello"
target = "World"
# 字符串拼接
message = greeting + ", " + target + "!"
# F-String (格式化字符串) - 极力推荐的现代写法
# 在字符串前面加 'f',可以直接将变量塞进大括号 {} 里
modern_message = f"{greeting}, {target}! I am {age} years old."
print(modern_message)
# 字符串的常用方法
text = " python programming "
print(text.strip()) # 去除两端空格: "python programming"
print(text.upper()) # 全部大写: " PYTHON PROGRAMMING "
print(text.replace("p", "P")) # 替换字符
当你有一大堆数据需要管理时,单个变量就不够用了。Python 提供了四种强大的内置数据结构。
列表是一个有序的、可变的集合。你可以把它想象成一个可以随时伸缩的货架。
# 使用方括号创建列表
fruits = ["apple", "banana", "cherry"]
# 索引访问 (Python 的索引从 0 开始)
print(fruits[0]) # 输出: apple
print(fruits[-1]) # 负数索引表示从后往前数,输出: cherry
# 修改列表
fruits.append("orange") # 在末尾追加元素
fruits.insert(1, "mango") # 在索引 1 的位置插入
fruits.remove("banana") # 删除指定元素
popped_fruit = fruits.pop() # 移除并获取最后一个元素
# 列表切片 [起始位置:结束位置:步长] (左闭右开)
numbers = [0, 1, 2, 3, 4, 5]
print(numbers[1:4]) # 输出: [1, 2, 3]
元组和列表几乎一样,唯一的区别是:元组是不可变的。一旦创建,就不能修改、添加或删除里面的元素。通常用于存储那些不应该被改变的数据(如地理坐标、数据库配置)。
# 使用圆括号创建元组
coordinates = (40.7128, -74.0060)
# coordinates[0] = 41.0 # 这行代码会报错,因为元组不可变
字典是一种键值对 (Key-Value) 结构。就像查真实的字典一样,你通过“词条(Key)”去查找“解释(Value)”。
# 使用大括号创建字典
student = {
"name": "Bob",
"age": 20,
"major": "Computer Science"
}
# 查找数据
print(student["name"]) # 输出: Bob
# 新增或修改键值对
student["grade"] = "A"# 新增
student["age"] = 21 # 修改
# 安全地查找数据(如果键不存在,不会报错程序崩溃,而是返回 None)
print(student.get("height"))
集合是一个无序且不包含重复元素的容器。它非常适合用来去重或进行数学上的交集、并集运算。
unique_numbers={1,2,2,3,3,4}
print(unique_numbers)# 输出: {1, 2, 3, 4} 自动去重
程序不能总是从头执行到尾,它需要根据不同的条件做出决策,或者重复执行某些动作。注意:Python 使用缩进(通常是 4 个空格)来划分代码块,而不是像其他语言那样使用大括号 {}。缩进错误会导致程序无法运行。
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好") # 这里的缩进告诉 Python,这是属于 elif 的代码块
elif score >= 60:
print("及格")
else:
print("不及格")
for 循环用于遍历任何可迭代对象(如列表、字符串、字典)。
# 遍历列表
heroes = ["Batman", "Superman", "Flash"]
for hero in heroes:
print(f"{hero} is saving the world!")
# 使用 range() 生成数字序列
# range(5) 会生成 0, 1, 2, 3, 4
for i in range(5):
print(f"这是第 {i+1} 次循环")
while 循环会在条件为 True 时一直执行,直到条件变为 False。
countdown = 3
while countdown > 0:
print(countdown)
countdown -= 1 # 等同于 countdown = countdown - 1
print("Launch!")
在软件工程中有一个著名的原则叫 DRY (Don't Repeat Yourself - 不要重复自己)。如果你发现某段代码被复制粘贴了多次,就应该把它封装成一个“函数”。
# 使用 def 关键字定义函数
defgreet_user(name, greeting="Hello"):
"""
这是一个文档字符串(Docstring),用于解释函数的作用。
greeting 拥有一个默认值 "Hello",如果调用时不提供,就使用默认值。
"""
full_message = f"{greeting}, {name}!"
return full_message # 将结果返回给调用者
# 调用函数
result1 = greet_user("Alice")
result2 = greet_user("Bob", "Welcome")
print(result1) # 输出: Hello, Alice!
print(result2) # 输出: Welcome, Bob!
在真实世界中,程序总是会遇到各种意想不到的错误:用户输入了字母而不是数字、试图打开一个不存在的文件、网络突然断开。优秀的程序不能一遇到错误就直接崩溃,而是要优雅地处理它们。这就是异常处理的作用。
# 模拟一个用户输入除数的操作
user_input = "0"
try:
# 尝试执行可能会出错的代码
divisor = int(user_input)
result = 100 / divisor
print(f"结果是: {result}")
except ZeroDivisionError:
# 如果发生除以零的错误,执行这里的代码
print("数学错误:不能除以零!请检查你的输入。")
except ValueError:
# 如果用户输入的不是数字(无法转换为int),执行这里
print("类型错误:请输入一个有效的数字!")
finally:
# 无论是否发生错误,这里的代码最终都会执行(常用于清理资源)
print("计算尝试结束。")
Python 读写文本文件非常简单,推荐使用 with 上下文管理器,它会在操作完成后自动帮你关闭文件,防止内存泄漏。
# 写入文件 ("w" 模式代表 write,如果文件不存在会自动创建)
withopen("diary.txt", "w", encoding="utf-8") asfile:
file.write("这是我学习 Python 的第一天。\n")
file.write("感觉还不错!")
# 读取文件 ("r" 模式代表 read)
withopen("diary.txt", "r", encoding="utf-8") asfile:
content = file.read()
print("文件内容如下:")
print(content)
Python 之所以强大,是因为它有着极其丰富的“标准库”和第三方包。你不需要重复造轮子,只需将它们 import 进来即可。
import random # 导入随机数模块
import math # 导入数学模块
import time # 导入时间模块
# 使用模块中的功能
print(math.pi) # 打印圆周率
print(random.randint(1, 100)) # 生成 1 到 100 之间的随机整数
time.sleep(2) # 让程序暂停 2 秒钟
print("等待结束。")
理论知识已经足够,让我们把上面的变量、循环、条件判断、内置模块综合起来,写一个完整的小游戏程序:
import random
defguess_number_game():
print("=== 欢迎来到猜数字游戏 ===")
print("我已经想好了一个 1 到 100 之间的数字。")
secret_number = random.randint(1, 100)
attempts = 0
max_attempts = 7
while attempts < max_attempts:
try:
guess = input(f"\n你有 {max_attempts - attempts} 次机会,请输入你的猜测: ")
guess = int(guess) # 将输入的字符串转换为整数
attempts += 1
if guess < 1or guess > 100:
print("⚠️ 请输入 1 到 100 之间的范围!")
continue# 跳过本次循环的剩余部分,直接进入下一次循环
if guess < secret_number:
print(" 太小了!")
elif guess > secret_number:
print(" 太大了!")
else:
print(f" 恭喜你!你在第 {attempts} 次猜中了数字 {secret_number}!")
return# 游戏胜利,退出函数
except ValueError:
print("❌ 错误:请输入有效的整数数字!")
print(f"\n 游戏结束!我的数字其实是 {secret_number}。")
# 启动游戏
# guess_number_game() # 只要取消这行的注释,即可在本地运行游戏
掌握了以上基础后,你已经跨过了编程的门槛。接下来的路该怎么走,取决于你的兴趣:
编程就像学习一门外语,不要试图一口气背下整本字典。最好的学习方法就是带着需求去写代码——遇到问题,查阅资料,解决问题,反复循环。