程序员入门:Python 基础全实操教程(附可运行代码示例)
对刚接触 Python 的程序员来说,基础教程不仅要讲清概念,更需落地到实际开发场景。本文跳出传统 “知识点罗列” 模式,以 “解决问题” 为导向,从环境搭建、核心语法到实用场景,通过 15 + 个可直接复制运行的代码示例,帮你快速掌握 Python 基础,同时培养 “用代码解决问题” 的编程思维 —— 所有示例均经过 Python 3.10 + 版本验证,兼顾规范性与实用性。
环境与工具:搭建稳定的 Python 开发环境
工欲善其事,必先利其器。Python 开发环境的搭建直接影响后续学习效率,本节重点解决 “环境配置”“工具选择”“版本管理” 三个核心问题,确保你能快速进入编码状态。
跨平台环境搭建(Windows/macOS/Linux)
Python 环境搭建的核心是 “安装解释器 + 配置环境变量”,不同系统操作略有差异,但最终目标是确保终端能正常调用 Python 命令:
# 1. 验证是否已安装Python(先检查系统是否自带)
python --version # Windows/macOS/Linux通用,若显示3.x.x则已安装
# 若提示“命令不存在”,需手动安装:
# - Windows:从官网(https://www.python.org/downloads/)下载安装包,勾选“Add Python to PATH”
# - macOS:推荐用Homebrew:brew install python3
# - Linux(Ubuntu/Debian):sudo apt install python3 python3-pip
# 2. 配置pip(Python包管理工具,安装后自动附带)
pip --version # 验证pip是否可用,输出类似“pip 23.3.1 from ...”
# 3. (可选)配置国内镜像源(解决pip安装包速度慢问题)
# Windows:在用户目录创建pip/pip.ini文件,写入:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
# macOS/Linux:在用户目录创建.config/pip/pip.conf文件,写入内容同上
# 4. 安装基础开发工具(代码格式化+语法检查)
pip install black flake8
# black:自动格式化代码,符合PEP8规范
# flake8:检查代码语法错误与不规范写法
开发工具选择与配置
推荐新手使用 VS Code(轻量、免费、插件丰富),以下是 Python 开发的必备配置:
# 1. 安装VS Code插件(打开VS Code后在插件市场搜索安装)
# - Python(微软官方插件,提供语法高亮、调试支持)
# - Pylance(代码补全增强,支持类型提示)
# - Code Runner(右键一键运行代码,无需终端)
# 2. 配置VS Code Python解释器(关键!避免使用错误版本)
# 步骤:
# ① 打开VS Code,按Ctrl+Shift+P(Windows)/Cmd+Shift+P(macOS)
# ② 输入“Python: Select Interpreter”
# ③ 选择已安装的Python 3.x版本(如Python 3.10.12)
# 3. 配置Code Runner插件(右键运行代码时使用正确环境)
# ① 打开设置(Ctrl+,),搜索“Code Runner: Executor Map”
# ② 编辑Python对应的命令,确保使用选定的解释器路径:
# Windows示例:"python": "C:\\Users\\YourName\\AppData\\Local\\Programs\\Python\\Python310\\python.exe -u $fullFileName"
# macOS示例:"python": "/usr/local/bin/python3 -u $fullFileName"
# 4. 测试配置是否成功(创建第一个Python文件test.py)
print("Hello, Python!")
# 右键选择“Run Code”,终端输出“Hello, Python!”即配置成功
核心语法:从基础到实用的代码实践
Python 语法简洁但不简单,本节聚焦 “变量与数据类型”“流程控制”“函数与模块” 三个高频场景,通过 “语法解释 + 问题示例 + 代码实现” 的模式,帮你理解并灵活运用基础语法。
变量与数据类型(实战避坑)
Python 是动态类型语言,无需声明变量类型,但需注意数据类型转换与常见陷阱:
# 1. 基础数据类型与操作(字符串、数字、布尔值)
# 字符串操作(开发中最常用,重点掌握)
username = "dev_alice" # 字符串赋值
print(username[0:3]) # 切片:取前3个字符,输出"dev"
print(username.replace("dev", "code")) # 替换,输出"code_alice"
print(f"Hello, {username}! Your ID is {1001}") # f-string格式化(Python 3.6+),输出"Hello, dev_alice! Your ID is 1001"
# 数字类型(注意整数与浮点数运算差异)
num1 = 10 # 整数
num2 = 3.5 # 浮点数
print(num1 // num2) # 整除,输出2.0(而非2)
print(round(num1 / num2, 2)) # 除法并保留2位小数,输出2.86
# 布尔值与空值(判断场景必备)
is_valid = True
user_data = None # 空值,代表“无数据”
print(is_valid and (user_data is not None)) # 逻辑运算,输出False
# 2. 容器类型(列表、字典、元组,开发高频使用)
# 列表(有序、可修改,适合存储序列数据)
user_ids = [1001, 1002, 1003]
user_ids.append(1004) # 添加元素,列表变为[1001,1002,1003,1004]
print(user_ids[-2:]) # 取最后2个元素,输出[1003,1004]
# 列表推导式(简洁生成列表,避免循环冗余)
even_ids = [id for id in user_ids if id % 2 == 0]
print(even_ids) # 输出[1002, 1004]
# 字典(键值对,适合存储结构化数据)
user_info = {
"id": 1001,
"name": "Alice",
"roles": ["developer", "tester"]
}
print(user_info.get("name")) # 安全获取键值,输出"Alice"
print(user_info.get("age", 25)) # 键不存在时返回默认值,输出25
# 遍历字典(开发中常用)
for key, value in user_info.items():
print(f"{key}: {value}")
流程控制(逻辑实现核心)
流程控制是代码 “思考” 的基础,重点掌握条件判断、循环及异常处理,避免逻辑漏洞:
# 1. 条件判断(if-elif-else,注意缩进规范)
def check_user_role(role):
if role == "admin":
return "拥有全部权限"
elif role in ["developer", "tester"]:
return "拥有开发/测试权限"
else:
return "权限不足,请联系管理员"
print(check_user_role("developer")) # 输出"拥有开发/测试权限"
# 2. 循环(for-in遍历,while条件循环)
# for-in遍历容器(最常用,避免下标操作)
products = ["phone", "laptop", "tablet"]
for product in products:
print(f"商品:{product},价格:{1000 * len(product)}元") # 模拟价格计算
# while循环(适合未知循环次数场景)
count = 0
while count < 3:
print(f"尝试登录第{count+1}次")
count += 1
if count == 2:
print("登录成功!")
break # 跳出循环,避免继续尝试
# 3. 异常处理(try-except,避免程序崩溃)
def divide_numbers(a, b):
try:
result = a / b
return f"结果:{result}"
except ZeroDivisionError:
return "错误:除数不能为0"
except TypeError:
return "错误:请输入数字类型"
print(divide_numbers(10, 2)) # 输出"结果:5.0"
print(divide_numbers(10, "2")) # 输出"错误:请输入数字类型"
函数与模块(代码复用关键)
函数与模块是 Python 代码复用的核心,掌握其写法能大幅提升开发效率:
# 1. 函数定义与调用(含参数默认值、返回值)
def calculate_order_total(products, discount=0.0):
"""
计算订单总金额
:param products: 商品列表,每个元素是(价格, 数量)元组
:param discount: 折扣率(默认0,无折扣)
:return: 折扣后总金额
"""
total = sum(price * quantity for price, quantity in products)
return round(total * (1 - discount), 2)
# 调用函数(传入参数,使用默认折扣)
order_products = [(999, 1), (199, 2)]
print(calculate_order_total(order_products)) # 输出1397.0
# 调用函数(指定折扣率)
print(calculate_order_total(order_products, 0.1)) # 输出1257.3
# 2. 模块导入与使用(代码拆分,避免文件过大)
# 步骤1:创建模块文件utils.py,写入工具函数
# # utils.py
# def format_date(date_str):
# """将"2025-10-01"格式化为"2025年10月01日"."""
# year, month, day = date_str.split("-")
# return f"{year}年{month}月{day}日"
# 步骤2:在主文件中导入模块并使用
from utils import format_date # 导入指定函数
print(format_date("2025-10-01")) # 输出"2025年10月01日"
# 3. 常用内置模块(无需安装,直接导入使用)
import os # 文件路径操作
import time # 时间处理
# 获取当前目录路径
print(os.getcwd()) # 输出当前工作目录,如"C:\\Users\\Alice\\Code"
# 延迟执行(模拟任务耗时)
print("开始执行任务...")
time.sleep(2) # 延迟2秒
print("任务执行完成!")
实用场景:用基础语法解决实际问题
学习 Python 基础的最终目的是 “解决问题”,本节通过 “文件操作”“数据处理”“简单接口调用” 三个高频场景,展示如何将基础语法组合成实用工具,培养 “学以致用” 的思维。
文件操作(读写数据必备)
Python 处理文件无需复杂库,内置open函数即可完成大部分操作,重点掌握 “读写模式” 与 “上下文管理器”:
# 1. 读取文件(处理配置文件、日志等场景)
# 方式1:使用with语句(自动关闭文件,避免资源泄漏)
with open("user_config.txt", "r", encoding="utf-8") as f:
# 逐行读取文件内容
for line in f:
line = line.strip() # 去除换行符与空格
if line.startswith("#"): # 跳过注释行
continue
if "=" in line:
key, value = line.split("=", 1) # 分割键值对
print(f"{key}: {value}")
# 2. 写入文件(保存数据、生成报告等场景)
# 写入列表数据到CSV文件(简单数据交换格式)
user_data = [
["id", "name", "role"],
[1001, "Alice", "developer"],
[1002, "Bob", "tester"]
]
with open("user_list.csv", "w", encoding="utf-8", newline="") as f:
for row in user_data:
# 将列表元素转为字符串,用逗号分隔(CSV格式)
line = ",".join(str(item) for item in row) + "\n"
f.write(line)
print("用户数据已写入user_list.csv")
# 3. 追加文件(日志记录场景常用)
def log_operation(operation):
"""记录操作日志到log.txt"""
from datetime import datetime # 导入日期时间模块
now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 格式化时间
with open("log.txt", "a", encoding="utf-8") as f:
f.write(f"[{now}] {operation}\n")
log_operation("用户Alice登录系统")
log_operation("用户Bob修改密码")
print("操作日志已追加到log.txt")
简单数据处理(统计与分析)
用 Python 基础语法处理数据,无需复杂库也能完成常见统计任务:
# 分析销售数据:计算总销售额、热销商品等
def analyze_sales_data(file_path):
"""
分析销售数据CSV文件
:param file_path: CSV文件路径(格式:商品名,销量,单价)
:return: 统计结果字典
"""
sales_stats = {
"total_sales": 0, # 总销售额
"top_product": ("", 0), # 热销商品(名称,销量)
"product_count": {} # 各商品销量统计
}
with open(file_path, "r", encoding="utf-8") as f:
next(f) # 跳过表头
for line in f:
line = line.strip()
if not line:
continue
product, quantity, price = line.split(",")
quantity = int(quantity)
price = float(price)
total = quantity * price
# 更新总销售额
sales_stats["total_sales"] += total
# 更新商品销量统计
sales_stats["product_count"][product] = sales_stats["product_count"].get(product, 0) + quantity
# 更新热销商品
if quantity > sales_stats["top_product"][1]:
sales_stats["top_product"] = (product, quantity)
# 格式化总销售额(保留2位小数)
sales_stats["total_sales"] = round(sales_stats["total_sales"], 2)
return sales_stats
# 测试数据(创建sales_data.csv)
# 商品名,销量,单价
# 手机,50,2999
# 电脑,20,5999
# 平板,30,1999
# 分析数据并输出结果
stats = analyze_sales_data("sales_data.csv")
print(f"总销售额:{stats['total_sales']}元")
print(f"热销商品:{stats['top_product'][0]}(销量:{stats['top_product'][1]})")
print("各商品销量:")
for product, count in stats["product_count"].items():
print(f"- {product}:{count}件")
调用简单 API(对接外部服务)
Python 基础语法结合requests库(需安装),可轻松调用外部 API 获取数据:
# 先安装requests库
pip install requests
import requests
def get_weather(city):
"""
调用天气API获取城市天气(使用公开测试API)
:param city: 城市名(如"北京")
:return: 天气信息字符串
"""
# 公开测试API(实际开发需替换为正式API并处理密钥)
api_url = f"https://v0.yiketianqi.com/api?unescape=1&version=v91&appid=23734771&appsecret=5G4F4I1P1q&city={city}"
try:
# 发送GET请求
response = requests.get(api_url, timeout=5)
response.raise_for_status() # 若状态码非200,抛出异常
data = response.json() # 解析JSON响应
# 提取关键天气信息
if data["code"] == 200:
weather = data["data"][0]
return (
f"{city}今日天气:{weather['wea']}\n"
f"温度:{weather['tem1']}°C ~ {weather['tem2']}°C\n"
f"风向:{weather['win']} {weather['win_speed']}\n"
f"提醒:{weather['air_tips']}"
)
else:
return f"获取天气失败:{data['msg']}"
except requests.exceptions.RequestException as e:</doubaocanvas>
更多推荐


所有评论(0)