🐸

使命

Python 基础python-architect-29-the-mission
奖励: 120 XP
|

第四阶段:使命 (The Mission).

我们的魔像已经有了生命 (__init__),能活动 (work),而且懂得自我保护 (if energy < loss)。 但它现在只是在漫无目的地闲逛。我们需要给它一个 目标

我们在 tasks.txt 中有一份任务清单。我们需要把它们加载到魔像的大脑 (self.tasks) 中。

加载数据

我们将添加一个 load_tasks(self, filename) 方法。 它应该:

  1. 使用 with 打开文件。
  2. 读取所有行。
  3. 清理内容(去除 \n)并将它们存储到 self.tasks 中。
    def load_tasks(self, filename):
      with open(filename, 'r') as f:
          for line in f:
              # 去除首尾空格/换行符
              clean_task = line.strip() 
              self.tasks.append(clean_task)
      print("任务已加载!")
1
初始化列表

__init__ 中,添加 self.tasks = [] 来创建一个空的任务列表。

2
定义 load_tasks

创建方法 load_tasks(self, filename)

3
读取并存储

打开文件,对每一行进行 strip 清理,然后追加到 self.tasks

为什么用列表? 列表是任务队列的完美结构。先进先出!

参考答案
点击展开
参考答案:
import random

class Golem:
  def __init__(self, name):
      self.name = name
      self.energy = 20
      self.tasks = [] # 新的大脑存储区

  def work(self):
      loss = random.randint(5, 15)
      if self.energy < loss:
          raise ValueError("Low Battery!")
      self.energy -= loss
      print(f"{self.name} works. Energy: {self.energy}")

  def load_tasks(self, filename):
      with open(filename, 'r') as f:
          for line in f:
              self.tasks.append(line.strip())
      print(f"Loaded {len(self.tasks)} tasks.")

bob = Golem("Bob")
bob.load_tasks("tasks.txt")
print(bob.tasks)
Loading...
终端输出
Terminal
Ready to run...