当前位置:首页>python>Day01:Python基础学习

Day01:Python基础学习

  • 2026-10-21 13:28:17
Day01:Python基础学习

点击上方 蓝字 关注mini猴👆 

免费获取最新最全的100+AI知识库  一起学 AI 大模型

1. 环境安装和对 Python 认识

  • Anaconda 环境配置 + PyCharm 安装

  • Conda 是什么:Conda 是一个环境管理 + 包管理工具,最常见于 Anaconda / Miniconda 这套生态里。

  • Notebook 使用说明:适合交互式编程和数据分析。

  • Python 本质:Python 编译器是用 C 语言实现的,并能够调用 C 语言的库文件。

2. 基础语法

2.1 字符串 (String)

  • 定义:单引号、双引号、三引号(多行字符串)

  • 转义字符:使用 \ 进行转义

  • 输入输出:变量名 = input("提示信息")

  • 常用方法:

  • 变量名.replace('待替换', '替换为')

  • 变量名.upper():转大写

  • 变量名.lower():转小写

  • 变量名.strip():去两端空格 (配合 lstrip / rstrip)

  • 字符串格式化:

  • .format 方法

  • f-string (推荐):f".. {变量名/表达式} .."

2.2 运算符

  • 浮点数精度问题:浮点数运算可能会损失精度,因为计算机底层是基于二进制来进行数据的存储和处理的,二进制无法准确表示所有的小数。
  • 除法:/ 除法运算结果始终为浮点数。

2.3 流程控制

模式匹配 match...case (Python 3.10+)

案例:基于 match...case 实现一个简易的计算器。

num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))
oper = input("请输入运算符(+ - * /):")

match oper:
    case "+":
        print(f"{num1} + {num2} = {num1 + num2}")
    case "-":
        print(f"{num1} - {num2} = {num1 - num2}")
    case "*":
        print(f"{num1} * {num2} = {num1 * num2}")
    case "/"if num2 != 0:  # if条件成立,才匹配这个case
        print(f"{num1} / {num2} = {num1 / num2}")
    case _:
        print("操作不支持!!!")

循环与随机数

  • for i in range(start, end):左闭右开区间。
  • random.randint(1, 100):生成 1-100 的随机整数。

2.4 数据存储容器 (序列都能进行切片)

2.4.1 列表 (List)

  • 特点:可以存储不同类型的元素、元素可重复、可修改、元素有序。
  • 切片语法:s[start:end:step]
  • 常用统计:sum(list) 求和,len(list) 求长度,min(list) 最小值,max(list) 最大值。
  • 列表合并:
  • List = list1 + list2
  • 解包合并:List = [*list1, *list2]

常用方法表:

方法
作用
样例
append()
在列表的尾部追加元素
s.append(10086)
insert()
在指定索引之前,插入该元素
s.insert(0, 92)
remove()
移除列表中第一个匹配到的值
s.remove(75)
pop()
删除指定索引元素(默认删最后一个),并返回该元素
s.pop(2)
 / s.pop()
sort()
对列表进行排序(数据类型需一致),默认从小到大
s.sort()
reverse()
反转列表元素
s.reverse()

列表案例代码:

# 案例1:合并两个列表并去重
num_list1 = [19, 23, 54, 64, 875, 20, 109, 232, 123, 54]
num_list2 = [55, 80, 72, 35, 60, 123, 54, 29, 91]

# 1. 解包合并
num_list = [*num_list1, *num_list2]
print("合并后的原始列表:", num_list)

# 2. 去重
new_list = []
for num in num_list:
if num notin new_list:
        new_list.append(num)
print("去重后的列表:", new_list)

# --------------------------------------------------------

# 案例2:列表推导式生成 1-20 的平方列表
# 语法:[要插入的值 for i in 序列]
num_list2 = [i**2for i in range(1, 21)]
print(num_list2)

# --------------------------------------------------------

# 案例3:提取偶数并计算平方
# 语法:[要插入的值 for i in 序列 if 条件]
num_list = [12, 32, 45, 77, 80, 92, 33, 57, 97, 98, 110, 111, 122]
new_list = [i**2for i in num_list if i % 2 == 0]
print(new_list)

2.4.2 字符串 (Str) 容器特性

  • 特点:不可变、有序性、可迭代。

常用操作方法:

方法
作用
样例
find()
查找子串,返回第一次出现的索引,找不到返 -1
s.find('Python')
count()
统计子串出现的次数
s.count('H')
upper()
所有字母转大写
s.upper()
lower()
所有字母转小写
s.lower()
split()
按指定分隔符分割成列表
s.split(' ')
strip()
去除两端空白或指定字符
s.strip()
 / s.strip('*')
replace()
替换子串
s.replace('H','C')
startswith()
检查是否以指定子串开头 (bool)
s.startswith('P')

2.4.3 元组 (Tuple)

  • 特点:不可变序列,元素可重复、有序。
  • 注意:定义单元素元组需加逗号,如 t = (10,)。
  • 常用方法:count() 统计个数,index() 获取索引。

元组的组包与解包:

# 组包
t1 = 5, 7, 9, 10, 2, 23, 12# 自动封装为元组

# 基础解包 (变量数 = 元素数)
a, b, c, d, e, f, g = t1
print(a, b)

# * 扩展解包 (* 收集剩余元素为列表)
first, second, *other, last = t1
print(other)  # 输出:[9, 10, 2, 23]

# 经典案例:变量交换
a = 10
b = 20
a, b = b, a  # 极简写法(底层原理是组包+解包)
print(a, b)  # 输出:20 10

元组综合案例:学生成绩分析

students = (
    ("S001", "王林", 85, 92, 78),
    ("S002", "李蔡婉", 92, 88, 95),
    ("S003", "十三", 78, 85, 82),
# ... (省略部分数据以节省空间)
    ("S010", "通天", 66, 59, 72)
)

print("学号\t\t姓名\t\t语文\t\t数学\t\t英语\t\t总分\t\t平均分")

# 1. 计算总分与平均分 (元组解包遍历)
for id, name, chinese, math, english in students:
    total = chinese + math + english
    avg = total / 3
    print(f"{id} \t {name} \t {chinese} \t {math} \t {english} \t {total} \t {avg:.1f}")

# 2. 统计各科最值 (列表推导式提取数据)
chinese_scores = [s[2] for s in students]
math_scores = [s[3] for s in students]

print(f"语文---最低:{min(chinese_scores)},最高:{max(chinese_scores)}")
# ... (其他科目同理)

# 3. 查找优秀学生 (avg > 90)
for id, name, chinese, math, english in students:
if (chinese + math + english) / 3 > 90:
        print(f"优秀学生:{name}")

2.4.5 集合 (Set)

  • 特点:无序、不可重复、可修改。
  • 定义:空集合必须用 set(),{} 代表空字典。
  • 不支持:下标索引访问。

常用方法表:

方法
作用
样例
add()
添加元素
s1.add('t')
remove()
移除指定元素 (不存在报错)
s1.remove('t')
pop()
随机删除并返回元素
e = s1.pop()
clear()
清空集合
s1.clear()
difference()
差集 (s1 - s2)
s1.difference(s2)
union()
并集 (s1
s2)
intersection()
交集 (s1 & s2)
s1.intersection(s2)

集合综合案例:选课系统

football_set = {"王林", "曾牛", "徐立国", "遁天", "紫灵"}
basketball_set = {"张铁", "王林", "曾牛", "韩立", "厉飞雨"}
french_set = {"许木", "王卓", "十三", "韩立", "曾牛"}
art_set = {"遁天", "韩立", "紫灵"}

# 1. 交集:同时选修法语和艺术
print(french_set & art_set)

# 2. 连续交集:选修所有四门课
print(football_set & basketball_set & french_set & art_set)

# 3. 差集:选足球但没选篮球 (集合推导式写法)
print({s for s in football_set if s notin basketball_set})

# 4. 统计每人选课数 (利用并集获取全员名单)
all_set = football_set | basketball_set | french_set | art_set
# 将所有名单拼成一个大列表用于计数
all_list = [*football_set, *basketball_set, *french_set, *art_set]

for s in all_set:
    print(f"{s} 选修了 {all_list.count(s)} 门课程")

2.4.6 字典 (Dict)

  • 特点:键值对 (key:value),Key 唯一且不可变,Value 可修改。
  • 定义:d = {} 或 d = dict()。

增删改查 (CRUD) 操作:

类型
操作
样例
添加/修改dict[key] = valued["涛哥"] = 688
 (key存在即修改,不存在即添加)
删除dict.pop(key)d.pop("涛哥")
 (删除并返回值)
删除del dict[key]del d["涛哥"]
查询dict[key]d["涛哥"]
 (不存在会报错)
查询dict.get(key)d.get("涛哥")
 (不存在返回 None)
获取所有.keys()
, .values(), .items()
获取键、值、键值对

字典综合案例:购物车管理系统

shopping_cart = {}
menu = """
############# 购物车系统 #############
# 1. 添加  2. 修改  3. 删除  4. 查询  5. 退出 #
#####################################
"""


print("欢迎使用购物管理系统 ~")

whileTrue:
    print(menu)
    choice = input("请选择操作(1-5):")

    match choice:
        case "1":  # 添加
            name = input("商品名称:")
if name in shopping_cart:
                print("商品已存在")
else:
                price = float(input("价格:"))
                num = int(input("数量:"))
                shopping_cart[name] = {"price": price, "num": num}
                print("添加成功")

        case "2":  # 修改
            name = input("要修改的商品:")
if name notin shopping_cart:
                print("商品不存在")
continue
            shopping_cart[name]["price"] = float(input("新价格:"))
            shopping_cart[name]["num"] = int(input("新数量:"))
            print("修改成功")

        case "3":  # 删除
            name = input("要删除的商品:")
if name in shopping_cart:
del shopping_cart[name]
                print("删除成功")
else:
                print("商品不存在")

        case "4":  # 查询
for k, v in shopping_cart.items():
                print(f"商品:{k},价格:{v['price']},数量:{v['num']}")

        case "5":
            print("再见!")
break
        case _:
            print("输入错误")

2.4.7 数据容器总结对比

特性
字符串 (str)
列表 (list)
元组 (tuple)
集合 (set)
字典 (dict)
有序性
有序
有序
有序
无序
有序 (3.7+)
重复元素
允许
允许
允许
不允许Key不允许
可变性不可变
可变
不可变
可变
可变
索引访问
支持
支持
支持
不支持不支持
 (用Key)
切片操作
支持
支持
支持
不支持不支持
使用场景
文本处理
有序数据集合
固定记录
去重/交并集
键值对存储

欢迎扫描下方二维码 🔗 领取AI大模型资料

如果觉得本文有用的话,感谢点赞、在看➕关注👆,我是mini猴,咱们下次再见❗️

#AI #大模型

最新文章

随机文章