当前位置:首页>python>Python零基础入门:列表与基础背包系统

Python零基础入门:列表与基础背包系统

  • 2026-10-10 16:21:31
Python零基础入门:列表与基础背包系统

大家好,欢迎来到Python零基础入门系列。上节课我们学习了input()用户输入、while/for循环以及break/continue控制语句,最后我们一起完成了一个简单的游戏循环菜单,就是这段我们已经写好的代码:

# 上节课我们完成的循环菜单系统while True:    # 1. 打印菜单    print("====== 游戏菜单 ======")    print("1. 开始游戏")    print("2. 查看帮助")    print("3. 退出游戏")    print("======================")    # 2. 获取用户输入    choice = input("请输入你的选择(1/2/3):")    # 3. 根据选择执行功能    if choice == "1":        print("游戏开始!冲呀!")    elif choice == "2":        print("帮助:输入1开始,3退出")    elif choice == "3":        print("退出成功,欢迎下次再来!")        break  # 退出循环,结束程序    else:        print("输入错误,请重新输入!")    # 空行分隔,界面更整洁    print()

但是你有没有发现,这个菜单太简单了?我们的勇者去冒险,打怪会捡到各种道具,比如小红药水、铁剑、铜钥匙... 这些东西要放在哪里呢?

之前的代码里,我们没有地方存这些道具,也没法查看背包、使用道具。今天我们就来解决这个问题,学习Python中最常用的数据结构——列表,然后我们一起给上节课的菜单加上背包系统,让我们的勇者可以捡道具、存道具、用道具!

一、为什么我们需要列表?

在这之前,我们学过的变量都只能存一个值:

name = "小勇者"  # 存一个名字hp = 100         # 存一个血量attack = 15      # 存一个攻击力

但是如果我们要存背包里的一堆道具呢?难道要定义一堆单独的变量吗?

item1 = "小红药水"item2 = "铁剑"item3 = "铜钥匙"item4 = "金币"# ... 如果捡了新道具,还要再定义item5, item6... 太麻烦了!

而且更麻烦的是,我们根本不知道用户会捡多少个道具,没法提前定义这么多变量。这时候,列表(List)就派上用场了!

列表就像一个有序的储物格,你可以把一堆东西放进去,随时添加、删除、查看,而且它的大小是动态的,想加多少加多少(只要内存够),完美适合做我们的背包!

二、认识列表:你的背包格子

2.1 创建你的第一个列表

在Python里,列表用方括号[]来表示,里面的元素用逗号隔开。就这么简单!

# 1. 创建空列表(就像一个空背包)backpack = []print(backpack)  # 输出: []# 2. 创建带初始元素的列表(初始背包里有药水和剑)backpack = ["小红药水", "铁剑"]print(backpack)  # 输出: ['小红药水', '铁剑']# 列表里的元素可以是不同类型哦!字符串、数字、布尔都可以放mixed_list = ["药水", 100, True, 3.14]print(mixed_list)  # 输出: ['药水', 100, True, 3.14]

2.2 访问列表里的道具:索引

列表是有序的,每个元素都有自己的位置,我们叫它索引(Index)。

⚠️ 新手踩坑提醒:

Python的列表索引是从0开始的!很多刚学编程的同学会搞错,以为第一个元素的索引是1,这会导致"索引越界"的错误哦!

举个例子:列表有3个元素,索引分别是0、1、2,最大的索引是2,刚好等于 len(列表)-1。

backpack = ["小红药水", "铁剑", "铜钥匙"]# 访问第一个元素(索引0)print(backpack[0])  # 输出: 小红药水# 访问第二个元素(索引1)print(backpack[1])  # 输出: 铁剑# 访问最后一个元素(索引2)print(backpack[2])  # 输出: 铜钥匙# 也可以用负数索引!-1代表最后一个,-2代表倒数第二个print(backpack[-1]) # 输出: 铜钥匙print(backpack[-2]) # 输出: 铁剑

2.3 往背包里加道具:append()

当你冒险捡到新道具的时候,要把它加到背包里,最常用的就是append()方法,它会把新元素加到列表的最后面。

backpack = ["小红药水", "铁剑"]print("捡道具前的背包:", backpack) # 输出: 捡道具前: ['小红药水', '铁剑']# 捡到了铜钥匙,加到背包里backpack.append("铜钥匙")print("加了钥匙后:", backpack) # 输出: 加了钥匙后: ['小红药水', '铁剑', '铜钥匙']# 又捡到了金币backpack.append("金币")print("现在的背包:", backpack) # 输出: 现在的背包: ['小红药水', '铁剑', '铜钥匙', '金币']

💡 小技巧:append()是最常用的添加元素的方法,它的速度非常快,大部分时候我们都用它来加新元素。

2.4 从背包里删道具:remove()和pop()

当你用了道具,或者要丢东西的时候,就要删除列表里的元素。我们有两个常用的方法:

  • remove(元素值)
    :根据元素的内容删除,比如直接删除"小红药水"
  • pop(索引)
    :根据索引删除,比如删除第3个位置的元素,不写索引默认删最后一个
backpack = ["小红药水", "铁剑", "铜钥匙", "金币"]# 1. 用了小红药水,按内容删除backpack.remove("小红药水")print("用了药水后:", backpack) # 输出: 用了药水后: ['铁剑', '铜钥匙', '金币']# 2. 丢掉了最后一个道具(金币),用pop()backpack.pop()print("丢了金币后:", backpack) # 输出: 丢了金币后: ['铁剑', '铜钥匙']# 3. 丢掉第一个道具(铁剑),按索引popbackpack.pop(0)print("丢了铁剑后:", backpack) # 输出: 丢了铁剑后: ['铜钥匙']

2.5 看看背包有多大:len()

len()函数可以告诉你列表里有多少个元素,也就是背包里现在有多少道具。我们可以用它来判断背包是不是满了!

backpack = ["小红药水", "铁剑", "铜钥匙"]# 背包当前的道具数量count = len(backpack)print(f"背包里有 {count} 个道具") # 输出: 背包里有 3 个道具# 假设背包最大容量是5MAX_CAPACITY = 5if len(backpack) < MAX_CAPACITY:    print("背包还有空间,可以捡新道具!")else:    print("背包满了,捡不了新东西了!")

2.6 遍历背包:把所有道具都列出来

当你要查看背包里的所有东西的时候,就需要遍历列表,也就是把每个元素都拿出来看一遍。用我们上节课学的for循环就可以轻松做到!

backpack = ["小红药水", "铁剑", "铜钥匙", "金币"]print("你的背包里有:")# 遍历列表,每个item就是列表里的元素for item in backpack:    print(f"- {item}")

运行结果:

你的背包里有: - 小红药水 - 铁剑 - 铜钥匙 - 金币

如果你想要给每个道具加个编号,比如1. 小红药水,2. 铁剑,就可以用enumerate()函数,它可以同时拿到索引和元素:

backpack = ["小红药水", "铁剑", "铜钥匙", "金币"]print("你的背包:")# enumerate会返回 (索引, 元素),注意索引从0开始,所以我们加1变成从1开始for index, item in enumerate(backpack):    print(f"{index+1}. {item}")

运行结果:

你的背包: 1. 小红药水 2. 铁剑 3. 铜钥匙 4. 金币

2.7 快速判断:道具在不在背包里?

用in关键字,可以快速判断某个元素是不是在列表里,比如判断你有没有小红药水:

backpack = ["小红药水", "铁剑"]if "小红药水" in backpack:    print("你有小红药水,可以使用!")else:    print("你没有小红药水!")if "大蓝药水" in backpack:    print("你有大蓝药水!")else:    print("你没有大蓝药水!")

这个方法非常方便,我们后面会经常用到它!

三、实战:给上节课的菜单加背包系统!

好了,知识点都学完了!现在我们回到上节课的菜单代码,一步步给它加上背包功能,让它变成一个完整的冒险游戏!

我们要做的修改很简单:

  1. 先加背包的变量,用来存道具
  2. 给菜单加新的选项:查看背包、使用药水
  3. 把原来的"开始游戏"改成"外出打怪",打怪可以捡道具
  4. 把我们今天学的列表操作都加进去!

下面是修改后的完整代码,你可以对比一下上节课的代码,看看我们加了哪些东西:

# 导入随机数工具,用来随机掉落道具import random# ========== 我们新增的部分:初始化背包 ==========player_hp = 100backpack = ["小红药水", "铁剑"]MAX_BACKPACK_CAPACITY = 5# ==============================================# 上节课的主循环,我们修改了里面的菜单和功能while True:    # ========== 我们修改了菜单,加了新选项 ==========    print("====== 游戏菜单 ======")    print("1. 外出打怪")    print("2. 查看背包")    print("3. 使用小红药水")    print("4. 查看帮助")    print("5. 退出游戏")    print("======================")    # ==============================================    choice = input("请输入你的选择:")    if choice == "1":        # ========== 新增:外出打怪捡道具 ==========        print("你进入了森林,遇到了一只史莱姆!")        print("你挥起铁剑,轻松击败了它!")        # 随机掉落道具        drops = ["小红药水", "金币", "皮革"]        got_item = random.choice(drops)        print(f"史莱姆掉落了:{got_item}!")        # 检查背包容量,把捡到的道具加进去        if len(backpack) < MAX_BACKPACK_CAPACITY:            backpack.append(got_item)            print(f"你把{got_item}放进了背包!")        else:            print("背包满了,捡不了了!")        # =========================================    elif choice == "2":        # ========== 新增:查看背包功能 ==========        print(f"\n【你的背包】")        print(f"容量:{len(backpack)} / {MAX_BACKPACK_CAPACITY}")        for index, item in enumerate(backpack):            print(f"{index+1}. {item}")        # =======================================    elif choice == "3":        # ========== 新增:使用药水功能 ==========        if "小红药水" in backpack:            backpack.remove("小红药水")            player_hp += 30            print(f"你喝下了小红药水,恢复了30点生命!当前生命:{player_hp}")        else:            print("你没有小红药水了!")        # =======================================    elif choice == "4":        # 上节课的帮助,我们更新了一下        print("帮助:1打怪 2看背包 3用药水 5退出")    elif choice == "5":        # 上节课的退出,没变        print("退出成功,欢迎下次再来!")        break    else:        print("输入错误,请重新输入!")    print()

你看!我们只在上节课的代码基础上,加了一点点内容,就把一个简单的菜单,变成了一个可以捡道具、存道具、用道具的冒险游戏!这就是列表的威力!

你可以把这段代码复制到Python里运行一下,体验一下我们做的背包系统,看看捡道具、用道具的效果!

四、课后小练习

来试试自己动手,给我们的背包系统加新功能吧!

  1. 添加丢弃道具功能
    :在菜单里加一个"丢弃道具"的选项,让用户可以选择要丢掉背包里的哪个道具。
  2. 背包扩容
    :做一个"扩容卷轴"道具,使用后可以把背包的最大容量从5增加到8!

五、本节课总结

今天我们学到了什么?

  • ✅ 列表:可以存储多个元素的有序集合,完美用来做我们的背包
  • ✅ 列表的基本操作:
    • 创建列表:用[],比如backpack = []
    • 访问元素:用索引,backpack[0],注意索引从0开始
    • 添加元素:append(),把元素加到列表末尾
    • 删除元素:remove()按内容删,pop()按索引删
    • 查看长度:len(),获取列表的元素数量
    • 遍历列表:用for循环,逐个处理每个元素
    • 成员判断:用in关键字,判断元素是否在列表里
  • ✅ 实战:在上节课的菜单代码基础上,我们实现了完整的背包系统,把课程内容紧密衔接了起来!

下节课我们会学习字典,用它来实现更强大的道具堆叠和属性系统,让我们的背包系统更完善!

最新文章

随机文章