記錄#
- 今天沒有學習新的知識點,練習陣列的用法。
- 研究了一下正確答案和我寫程式碼,我認為答案的程式碼更像程式設計師的程式碼,更抽象一些。我的程式碼像流水帳。不過 chatgpt 這麼說。
- 第一份程式碼是我寫的,哈哈
這兩份程式碼是用來管理待辦事項清單的簡單程式,它們都具有相同的基本功能,但在實現方式和程式碼結構上有一些區別。下面是對這兩份程式碼的優點和缺點進行比較:
第一份程式碼的優點:
- 使用了更多的函數來封裝不同的操作,使得程式碼更具可讀性和可維護性。
- 提供了對待辦事項清單的查看、添加、編輯和刪除功能,具備一定的靈活性和功能完整性。
- 在編輯功能中,先刪除指定的事項,然後再添加新的事項,保持了操作的一致性。
第一份程式碼的缺點:
- 使用了全域變數
mylist
來存儲待辦事項清單,而不是將其封裝在一個類或函數中,可能會導致程式碼的可擴展性和可重用性受限。 - 程式碼中使用了一些硬編碼的部分,如清空終端螢幕的命令
os.system("clear")
,這樣的程式碼不夠靈活和可移植。
第二份程式碼的優點:
- 將待辦事項清單的操作封裝在不同的函數中,程式碼更具可讀性和可維護性。
- 使用了函數
printList()
來列印待辦事項清單,使得程式碼結構更清晰。 - 在刪除事項時,增加了使用者確認的功能,提高了操作的安全性。
第二份程式碼的缺點:
- 使用了全域變數
toDoList
來存儲待辦事項清單,可能會影響程式碼的可擴展性和可重用性。 - 缺乏對使用者輸入的有效性驗證和錯誤處理,可能導致程式崩潰或產生錯誤結果。
- 缺少一些功能,如編輯特定事項的功能。
綜上所述,這兩份程式碼都具有一定的功能和可讀性,但都有一些改進的空間。您可以根據具體需求和偏好選擇適合您的程式碼版本,並根據需要進行進一步的改進和擴展。
import os, time
print("待辦事項清單管理程式")
print()
mylist = []
def view():
for item in mylist:
print(item)
time.sleep(2)
os.system("clear")
def add(l):
if l in mylist:
print(f"{l} 已在清單中")
else:
mylist.append(l)
print("添加成功")
time.sleep(1)
os.system("clear")
def remove(l):
if l in mylist:
mylist.remove(l)
else:
print(f"{l} 不在清單中。")
while True:
print(
"您想要查看、添加、編輯還是刪除待辦事項清單中的項目?")
menu = input()
if menu == "添加":
mytxt = input("請輸入要添加的項目\n")
add(mytxt)
elif menu == "查看":
view()
elif menu == "編輯":
mytxt1 = input("請輸入要刪除的項目\n")
mytxt2 = input("請輸入要更改為的內容\n")
remove(mytxt1)
add(mytxt2)
elif menu == "刪除":
mytxt1 = input("請輸入要刪除的項目\n")
sure = input(f"確定要刪除:{mytxt1}。是或否\n")
if sure == "是":
remove(mytxt1)
else:
continue