二手产品经理

二手产品经理

THIS IS RENO

操作文件 - 51天 - 在线學python100天

記錄#

  1. 今天學習文件的讀寫操作。
  2. 比較特別的意思是將陣列或字典寫入到文件的時候,需要使用 str () 函數把這種資料轉為字串。
  3. 那再讀取的時候,就需要用 eval () 函數把字串轉為動態可執行的程式碼。
  4. 今天這節課剛開始的時候有點迷迷糊糊,在 eval () 的使用上紐結了很久。直到在練習今天編碼的時候才明白其中的邏輯,為什麼要 str 和 eval。
  5. 還是有一點,寫文件和 RAM 有什麼關係?這節課 RAM 的用法或知識點在什麼地方體現了?我還是不明白。
  6. 今天的練習是對 45 的編碼進行完善,增加寫文件和讀文件的操作。第一次運行程式碼會報錯,光頭大哥說明天解決這個問題,哈哈哈!

CODE#

import os

print("🌟生活組織者🌟")
print()
todolist = []
todoinfo = []
f = open("to.do", "r")
todolist = eval(f.read())
f.close


def todoprint():
  for row in todolist:
    for name in row:
      print(f"{name: ^10}", end=" | ")
    print()


select = "again"
while True:
  os.system("clear")
  if select == "again":
    print("菜單: ")
    print("1: 新增 ")
    print("2: 刪除 ")
    print("3: 查看 ")
    print("4: 編輯 ")
    menu = input("")
    if menu.strip().lower()[0] == "a":
      task = input("任務是什麼? > ")
      due = input("截止日期是? > ")
      priority = input("優先級是多少? > ")
      todoinfo = [task, due, priority]
      todolist.append(todoinfo)
      print("謝謝,這個任務已經被新增。")
      todoprint()
    elif menu.strip().lower()[0] == "r":
      name = input("你想要刪除哪個任務? > ")
      for row in todolist:
        if name in row:
          todolist.remove(row)
          print("謝謝,這個任務已經被刪除。")
        else:
          print(f"{name} 不在任務清單中")
    elif menu.strip().lower()[0] == "v":
      todoprint()
    elif menu.strip().lower()[0] == "e":
      name = input("你想要刪除哪個任務? > ")
      for row in todolist:
        if name in row:
          todolist.remove(row)
          print("謝謝,這個任務已經被刪除。")
        else:
          print(f"{name} 不在任務清單中")
      task = input("任務是什麼? > ")
      due = input("截止日期是? > ")
      priority = input("優先級是多少? > ")
      todoinfo = [task, due, priority]
      todolist.append(todoinfo)
      print("謝謝,這個任務已經被新增。")
      todoprint()

    f = open("to.do", "w")
    f.write(str(todolist))
    f.close()

  elif select == "quit":
    break

  select = input("你想要再次查看菜單還是退出? ")

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。