Python学习手册

0 阅读15分钟

第一章 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())