第一章 Python环境搭建与入门
1.1 Python简介
Python是入门简单、语法简洁的编程语言,应用场景广泛,可做自动化、数据分析、人工智能、爬虫、后端开发,是零基础首选编程语言。代码量少、可读性强,调试维护便捷。
1.2 环境搭建(新手标配)
使用「Python解释器 + VSCode编辑器」组合,免费稳定、适配全程学习。
1. Python:安装3.10~3.13稳定版,安装时勾选Add Python to PATH,自动配置环境变量。
2. VSCode:安装官方编辑器,安装Python官方插件,开启代码高亮、纠错、一键运行功能。
1.3 输出语法与注释规范
print() 用于控制台输出内容,是最基础的输出函数。
# 单行注释
print("Hello Python!零基础入门")
'''
多行注释
用于批量说明代码功能
'''
注释仅作备注,不参与程序执行。单行注释用 #,多行注释用三引号。
1.4 章节练习题(含答案)
1. 编写代码打印自己的姓名,使用单行、多行注释。
# 打印个人姓名
print("张三")
'''
多行注释:实现控制台打印姓名
基础输出语法
'''
2. 简述两种注释的区别与适用场景。
单行注释 # 适用于单行简短备注,仅对当前行生效;三引号多行注释适用于批量说明、功能模块备注,可包裹多行文本,二者均不会被程序执行。
1. 编写代码打印自己的姓名,使用单行、多行注释。
2. 简述两种注释的区别与适用场景。
第二章 变量与基础数据类型(字符串高阶+类型转换)
2.1 变量概念与命名规则
变量用于存储数据,可随时调用、修改,简化重复代码。
变量命名硬性规则:
1. 只能由字母、数字、下划线组成;
2. 不能以数字开头;
3. 禁止使用Python关键字;
4. 区分大小写。
2.2 五大基础数据类型
2.2.1 整型 int
整数(正数、负数、0),用于计数、整数运算。
age = 20
num = -10
zero = 0
print(age, type(age))
2.2.2 浮点型 float
带小数点的数值,用于小数计算。
height = 175.5
price = 9.9
print(height, type(height))
2.2.3 字符串 str
文本、符号数据,必须用单/双/三引号包裹。
name = "小明"
sex = '男'
intro = '''零基础学习Python'''
print("我的名字是:" + name)
字符串常用高阶操作
# 切片取值(左闭右开)
s = "PythonStudy"
print(s[0:5])
print(s[-5:])
# 常用方法
text = " hello python "
print(text.strip()) # 去除首尾空格
print("a,b,c".split(","))# 字符串转列表
print("-".join(["2026","08","04"])) # 列表拼接字符串
print(text.replace("hello","hi"))
print(text.upper())
print(text.lower())
# 三种格式化输出
name = "小李"
score = 88
print(f"姓名:{name},分数:{score}")
print("姓名:{},分数:{}".format(name,score))
print("姓名:%s,分数:%d" % (name,score))
2.2.4 布尔型 bool
只有两个值:True真、False假,用于条件、逻辑判断。
is_study = True
is_sleep = False
print(is_study, type(is_study))
2.2.5 空值 None
代表空对象,和0、空字符串不同,多用于变量初始化。
data = None
print(data, type(data))
2.3 数据类型转换
不同类型不能直接运算、拼接,需要手动转换。
# 字符串转数字
a = "100"
print(int(a), float(a))
# 数字转字符串
b = 200
print(str(b))
2.4 章节练习题(含答案)
1. 定义姓名、年龄、身高变量,打印内容和数据类型。
name = "张三"
age = 20
height = 175.5
print(name, type(name))
print(age, type(age))
print(height, type(height))
2. 将字符串“666”转为整数、浮点数。
str_num = "666"
print(int(str_num))
print(float(str_num))
3. 截取“HelloWorld”前5个字符并转为大写。
s = "HelloWorld"
new_s = s[0:5].upper()
print(new_s)
1. 定义姓名、年龄、身高变量,打印内容和数据类型。
2. 将字符串“666”转为整数、浮点数。
3. 截取“HelloWorld”前5个字符并转为大写。
第三章 运算符
3.1 算术运算符
用于数值计算,包含常规运算与编程专属运算。
a = 10
b = 3
print(a + b) # 加
print(a - b) # 减
print(a * b) # 乘
print(a / b) # 浮点除(结果小数)
print(a // b) # 整除(取整数)
print(a % b) # 取余
print(a ** b) # 幂运算
3.2 比较运算符
对比两个数据,结果为布尔值,多用于条件判断。
x = 20
y = 15
print(x > y)
print(x < y)
print(x == y)
print(x != y)
print(x >= y)
print(x <= y)
3.3 逻辑运算符
拼接多个判断条件:and全真才真、or一真即真、not取反。
age = 18
print(age >= 18 and age <= 30)
print(age < 10 or age > 15)
print(not age > 20)
3.4 章节练习题(含答案)
1. 计算25整除4、余数、2的8次方。
print(25 // 4) # 整除
print(25 % 4) # 取余
print(2 ** 8) # 幂运算
2. 判断30是否大于20且小于40。
num = 30
print(num > 20 and num < 40)
1. 计算25整除4、余数、2的8次方。
2. 判断30是否大于20且小于40。
第四章 条件判断语句(含input输入交互)
4.1 input输入
接收用户键盘输入,默认字符串类型,数字运算需强制转换。
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
print(f"你好{name},明年年龄:{age+1}")
4.2 单分支if
条件成立执行代码,不成立直接跳过,代码需缩进。
age = 20
if age >= 18:
print("已成年")
4.3 双分支if-else
二选一执行,满足if执行if代码,否则执行else代码。
score = 55
if score >= 60:
print("考试及格")
else:
print("考试不及格")
4.4 多分支if-elif-else
多条件分段判断,从上至下匹配,命中即停止。
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
4.5 嵌套if
条件内嵌套次级判断,用于多层筛选场景。
age = 22
has_id = True
if age >= 18:
print("年龄符合")
if has_id:
print("可以入场")
else:
print("无证件,无法入场")
else:
print("年龄不足,禁止入场")
4.6 章节练习题(含答案)
1. 输入数字,判断正数、负数或0。
num = float(input("请输入一个数字:"))
if num > 0:
print("正数")
elif num < 0:
print("负数")
else:
print("0")
2. 判断输入年份是否为闰年。
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")
1. 输入数字,判断正数、负数或0。
2. 判断输入年份是否为闰年。
第五章 循环语句
5.1 while循环
条件为真持续循环,需设置终止条件,防止死循环。
i = 1
while i <= 5:
print(i)
i += 1
5.2 for循环
常用循环,适合遍历数据、固定次数循环,搭配range使用。
# 固定次数循环
for num in range(1,6):
print(num)
# 遍历字符串
for char in "Python":
print(char)
5.3 循环控制关键字
break:终止整个循环;continue:跳过本次,执行下一次。
# break
for i in range(1,6):
if i == 3:
break
print(i)
# continue
for i in range(1,6):
if i == 3:
continue
print(i)
5.4 嵌套循环
循环内嵌套循环,用于多层数据处理。
for i in range(1,4):
for j in range(1,i+1):
print(f"{j}*{i}={i*j}",end="\t")
print()
5.5 章节练习题(含答案)
1. 循环计算1-100所有数字和。
# while循环
i = 1
total = 0
while i <= 100:
total += i
i += 1
print("1-100总和:", total)
# for循环
sum_res = 0
for num in range(1, 101):
sum_res += num
print("1-100总和:", sum_res)
2. 打印1-10所有偶数。
for num in range(1, 11):
if num % 2 == 0:
print(num)
1. 循环计算1-100所有数字和。
2. 打印1-10所有偶数。
第六章 容器数据类型(列表/元组/字典/集合)
容器用于批量存储数据,四种容器各有特性,适配不同场景。
6.1 列表 list
有序、可修改、可重复,最常用容器,支持任意数据类型。
# 定义与取值
stu_list = ["小明",18,175.5,True]
print(stu_list[0])
print(stu_list[-1])
# 增删改
stu_list[1] = 19
stu_list.append("学生")
del stu_list[2]
# 常用方法
lst = [2,5,1,8,3]
lst.sort()
lst.reverse()
lst.extend([9,6])
print(lst.index(5))
6.2 元组 tuple
有序、不可修改、可重复,数据固定、安全性高。
info = ("北京",2026)
print(info[0])
6.3 字典 dict
键值对存储,键唯一、值可改,适合结构化数据。推荐get安全取值,避免报错。
user = {"name":"小红","age":19,"height":168}
# 增改删
user["sex"] = "女"
user["age"] = 20
del user["height"]
# 常用操作
print(user.get("sex","未知"))
print(user.keys())
print(user.values())
6.4 集合 set
无序、不可重复,核心用途:数据去重、集合运算。
# 自动去重
num_set = {1,2,2,3,3,4}
print(num_set)
# 列表快速去重
lst = [1,1,2,3,3]
new_lst = list(set(lst))
# 集合运算
a = {1,2,3,4}
b = {3,4,5,6}
print(a | b) # 并集
print(a & b) # 交集
print(a - b) # 差集
6.5 章节练习题(含答案)
1. 定义水果列表,完成删元素、新增、排序操作。
fruit = ["苹果", "香蕉", "橘子"]
del fruit[1]
fruit.append("葡萄")
fruit.sort()
print(fruit)
2. 对列表 [2,2,5,5,7,8,8] 快速去重。
old_lst = [2,2,5,5,7,8,8]
new_lst = list(set(old_lst))
print(new_lst)
3. 使用get方法获取字典不存在的键并设置默认值。
stu = {"name": "小明", "age": 18}
print(stu.get("score", "暂无分数"))
1. 定义水果列表,完成删元素、新增、排序操作。
2. 对列表 [2,2,5,5,7,8,8] 快速去重。
3. 使用get方法获取字典不存在的键并设置默认值。
第七章 函数基础与进阶
函数用于封装重复代码,实现一次定义、多次调用,简化代码、方便维护。
7.1 函数定义与调用
# 无参函数
def say_hello():
print("Hello 零基础Python")
say_hello()
# 带参函数
def calc_sum(a,b):
return a + b
print(calc_sum(10,20))
7.2 返回值return
return返回函数结果,供外部使用;无return默认返回None,支持多返回值。
7.3 常用参数
# 默认参数
def stu_info(name,age=18):
print(f"姓名:{name},年龄:{age}")
stu_info("小李")
7.4 可变参数
参数数量不固定时使用:*args接收多个位置参数,**kwargs接收多个关键字参数。
def sum_all(*args):
total = 0
for i in args:
total += i
return total
def user_info(**kwargs):
print(kwargs)
print(sum_all(1,2,3,4))
user_info(name="小王",sex="男")
7.5 变量作用域
全局变量定义在函数外,局部变量定义在函数内。函数内修改全局变量需用global声明。
num = 100
def change_num():
global num
num = 200
print("函数内:",num)
change_num()
print("函数外:",num)
7.6 匿名函数lambda
极简单行函数,用于简单逻辑、临时调用。
add = lambda a,b: a + b
is_even = lambda x: x % 2 == 0
print(add(10,20))
print(is_even(8))
7.7 章节练习题(含答案)
1. 定义函数,返回数字的平方。
def square(num):
return num ** 2
print(square(5))
2. 用lambda判断数字是否为奇数。
is_odd = lambda x: x % 2 == 1
print(is_odd(7))
3. 用可变参数实现任意数字求平均值。
def avg_all(*args):
if not args:
return 0
return sum(args) / len(args)
print(avg_all(10,20,30))
1. 定义函数,返回数字的平方。
2. 用lambda判断数字是否为奇数。
3. 用可变参数实现任意数字求平均值。
第八章 异常处理
代码报错即为异常,异常处理可防止程序崩溃,保证程序持续运行。
8.1 基础异常捕获
try:
num = 10 / 0
except:
print("运算出错,除数不能为0")
8.2 精准捕获与完整结构
try执行代码、except捕获异常、else无异常执行、finally无论是否报错必执行。
try:
lst = [1,2,3]
print(lst[10])
except IndexError as e:
print("索引错误:",e)
except ZeroDivisionError as e:
print("除零错误:",e)
else:
print("代码正常执行")
finally:
print("执行结束")
8.3 手动抛出异常
def check_age(age):
if age < 0:
raise ValueError("年龄不能为负数")
print("年龄合法")
check_age(-5)
第九章 面向对象基础
面向对象核心:类是模板,对象是实例。封装属性(特征)和方法(行为),实现代码复用。
9.1 类的定义与实例化
class Person:
# 构造方法:创建对象自动执行,初始化属性
def __init__(self,name,age):
self.name = name
self.age = age
def study(self):
print(f"{self.name}今年{self.age}岁,正在学习Python")
p1 = Person("小明",20)
p1.study()
print(p1.name,p1.age)
9.2 构造与析构方法
__init__初始化对象,__del__在对象销毁时执行,用于释放资源。
class Dog:
def __init__(self,name):
self.name = name
print(f"{self.name}创建成功")
def __del__(self):
print(f"{self.name}资源释放")
dog = Dog("旺财")
第十章 面向对象进阶
10.1 继承
子类继承父类所有属性和方法,无需重复编写代码。
class Animal:
def eat(self):
print("动物需要进食")
class Cat(Animal):
def meow(self):
print("小猫喵喵叫")
cat = Cat()
cat.eat()
cat.meow()
10.2 方法重写
子类重写父类同名方法,覆盖原有逻辑,适配自身需求。
class Animal:
def run(self):
print("动物可以移动")
class Fish(Animal):
def run(self):
print("鱼儿可以游水")
fish = Fish()
fish.run()
10.3 私有属性与方法
双下划线开头为私有内容,仅类内部可访问,用于保护核心数据。
class User:
def __init__(self,name,pwd):
self.name = name
self.__pwd = pwd
def get_pwd(self):
print("密码:",self.__pwd)
u = User("小红","123456")
u.get_pwd()
第十一章 迭代器与生成器
11.1 迭代器
列表、字符串、元组都是可迭代对象,迭代器可逐个读取数据,节省内存。
lst = [1,2,3,4]
it = iter(lst)
print(next(it))
print(next(it))
11.2 生成器
用yield创建,按需生成数据,内存占用极低。yield暂停函数并返回数据,不会终止函数。
def gen_num():
for i in range(1,6):
yield i
g = gen_num()
for num in g:
print(num)
11.3 生成器表达式
g = (x**2 for x in range(10))
print(list(g))
第十二章 装饰器
装饰器核心:不修改原函数代码,拓展函数功能,常用于日志、计时、权限校验。
12.1 基础装饰器
def log_decorator(func):
def wrapper():
print("函数执行前:记录日志")
func()
print("函数执行后:日志结束")
return wrapper
@log_decorator
def test():
print("原函数执行")
test()
12.2 通用多参数装饰器
def time_decorator(func):
def wrapper(*args,**kwargs):
print("开始执行")
res = func(*args,**kwargs)
print("执行结束")
return res
return wrapper
@time_decorator
def add(a,b):
return a+b
print(add(100,200))
第十三章 上下文管理器与文件操作
with语句可自动管理资源,代码执行完毕自动关闭文件,避免资源泄露。
13.1 文件四大读写模式
r只读、w清空写入、a追加写入、r+读写
# 清空写入
with open("test.txt","w",encoding="utf-8") as f:
f.write("零基础Python学习")
# 追加写入
with open("test.txt","a",encoding="utf-8") as f:
f.write("\n新增文本内容")
# 读取文件
with open("test.txt","r",encoding="utf-8") as f:
print(f.read())
13.2 自定义上下文管理器
class MyResource:
def __enter__(self):
print("开启资源")
return self
def work(self):
print("执行资源操作")
def __exit__(self,a,b,c):
print("关闭资源")
with MyResource() as res:
res.work()
第十四章 核心语法与常用模块
14.1 三大推导式
极简语法,一行代码完成循环筛选,替代冗余for循环。
# 列表推导式
lst = [x for x in range(1,11) if x%2==0]
print(lst)
# 字典推导式
dic = {x:x**2 for x in range(1,6)}
print(dic)
# 集合推导式
s = {x**2 for x in [1,2,2,3,3]}
print(s)
14.2 深浅拷贝
解决列表、字典赋值联动修改问题,是高频避坑点。
import copy
# 浅拷贝:表层独立,嵌套数据共享
a = [1,2,[3,4]]
b = copy.copy(a)
b[0] = 99
print(a,b)
# 深拷贝:完全独立,互不影响
c = copy.deepcopy(a)
c[2][0] = 88
print(a,c)
14.3 常用内置模块
# 时间模块
import time
print(time.time())
time.sleep(1)
# 随机数模块
import random
print(random.randint(1,10))
print(random.choice(["苹果","香蕉","橘子"]))
第十五章 综合实战案例
本章收录3个零基础综合实战案例,整合全书核心语法,可直接复制运行,用于综合实操巩固。
15.2 零基础实战案例(可直接运行)
案例一:猜数字小游戏
功能:随机生成1-100数字,用户猜测,提示大小,猜对结束。
import random
target_num = random.randint(1, 100)
print("===== 猜数字小游戏 =====")
while True:
try:
user_num = int(input("请输入猜测数字:"))
except ValueError:
print("请输入整数!")
continue
if user_num > target_num:
print("猜大了")
elif user_num < target_num:
print("猜小了")
else:
print(f"猜对了!答案是{target_num}")
break
案例二:学生成绩查询系统
功能:按姓名查成绩、自动评级,输入exit退出。
stu_score = {
"小明": 88,
"小红": 95,
"小李": 59,
"小王": 72,
"小张": 98
}
print("===== 成绩查询系统 | exit退出 =====")
while True:
name = input("\n输入学生姓名:")
if name == "exit":
print("系统退出")
break
score = stu_score.get(name, -1)
if score == -1:
print("无该学生信息")
else:
print(f"成绩:{score}分")
if score >= 90:
print("评级:优秀")
elif score >= 80:
print("评级:良好")
elif score >= 60:
print("评级:及格")
else:
print("评级:不及格")
案例三:文本批量读写工具
功能:批量写入、读取、追加文本,完整覆盖文件读写操作。
# 批量写入
note_list = [
"Python零基础学习笔记",
"1. 变量存储数据",
"2. 循环批量处理代码",
"3. 容器存储多组数据",
"4. 函数封装代码"
]
with open("python学习笔记.txt", "w", encoding="utf-8") as f:
for note in note_list:
f.write(note + "\n")
print("批量写入完成")
# 读取文件
with open("python学习笔记.txt", "r", encoding="utf-8") as f:
print("\n原有内容:\n", f.read())
# 追加内容
with open("python学习笔记.txt", "a", encoding="utf-8") as f:
f.write("5. 文件操作实现数据持久化\n")
print("追加完成")
# 最终读取
with open("python学习笔记.txt", "r", encoding="utf-8") as f:
print("\n最终内容:\n", f.read())