Utoljára aktív 1731421149

Revízió a360f9e136cba14f75e6b6dd36f60840f677a37e

TastyHint3.md Eredeti

I'm struggling to see where we take the user input for the task name.

the command variable will have exit or whatever, right?

and the new <task> will actually look like new Buy Milk

so take the string and split it into a list of strings, breaking each string on the character.

txt = "welcome to the jungle"

x = txt.split()

print(x)

# ['welcome', 'to', 'the', 'jungle']

BUT Ulas says

txt = "new Buy Milk"
t = txt.split()
print(t)
command = t[0]
rest = t[1:]
rest = " ".join(rest)
print(command, ' - ', rest)

and after hacking a bit in the python interpreter, you may end up with

  line = input(prompt)
  #print(line)
  while not line:
    line = input(prompt)
  words = line.split()
  #print(words)
  command = words[0]
  #print(command)
  rest = words[1:]
  rest = " ".join(rest)
  #print(rest)

and maybe the right thing to do is to change the command = input("Tasty> ") to something like command, rest = tasty.prompt_user("Tasty> ")

then all the "words" after the "new" will be what you pull together to name the task?

so prompt-user(self, prompt) becomes a method which asks for the user's input (using input(prompt))

def prompt_user(self, prompt):
  inp = input(prompt)
  # lookup how to split words into words[]

saving? a Hint

with open("saved_data.json", "w") as fp:
  json.dump(self.tasks,fp)

loading? a Hint

with open(filename) as json_file:
  self.tasks = json.load(json_file)

And you should embed this stuff into a method.

When you get to the point where you are puzzling over how to save/load multiple dicts (say, tasks, trash, and important), you might consider putting all this in another dictionary and just saving that.

You still have to load the one dict and then split it into three for use by the methods. This should be done in load tasks method.

The data structure might be created by

dict_to_save = { "tasks": self.tasks, "trash": self.trash, "impt": self.important }