记录#
- 今天没有学习新的知识点,练习数组的用法。
- 研究了一下正确答案和我写代码,我认为答案的代码更像程序员的代码,更抽象一些。我的代码像流水账。不过 chatgpt 这么说。
- 第一份代码是我写的,哈哈
这两份代码是用来管理待办事项清单的简单程序,它们都具有相同的基本功能,但在实现方式和代码结构上有一些区别。下面是对这两份代码的优点和缺点进行比较:
第一份代码的优点:
- 使用了更多的函数来封装不同的操作,使得代码更具可读性和可维护性。
- 提供了对待办事项清单的查看、添加、编辑和删除功能,具备一定的灵活性和功能完整性。
- 在编辑功能中,先删除指定的事项,然后再添加新的事项,保持了操作的一致性。
第一份代码的缺点:
- 使用了全局变量
mylist
来存储待办事项清单,而不是将其封装在一个类或函数中,可能会导致代码的可扩展性和可重用性受限。 - 代码中使用了一些硬编码的部分,如清空终端屏幕的命令
os.system("clear")
,这样的代码不够灵活和可移植。
第二份代码的优点:
- 将待办事项清单的操作封装在不同的函数中,代码更具可读性和可维护性。
- 使用了函数
printList()
来打印待办事项清单,使得代码结构更清晰。 - 在删除事项时,增加了用户确认的功能,提高了操作的安全性。
第二份代码的缺点:
- 使用了全局变量
toDoList
来存储待办事项清单,可能会影响代码的可扩展性和可重用性。 - 缺乏对用户输入的有效性验证和错误处理,可能导致程序崩溃或产生错误结果。
- 缺少一些功能,如编辑特定事项的功能。
综上所述,这两份代码都具有一定的功能和可读性,但都有一些改进的空间。您可以根据具体需求和偏好选择适合您的代码版本,并根据需要进行进一步的改进和扩展。
import os, time
print("To Do List Manager")
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} in the list")
else:
mylist.append(l)
print("add success")
time.sleep(1)
os.system("clear")
def remove(l):
if l in mylist:
mylist.remove(l)
else:
print(f"{l} not in list.")
while True:
print(
"Do you want to view, add, edit, or remove an item from the to do list?")
menu = input()
if menu == "add":
mytxt = input("What do you want to add\n")
add(mytxt)
elif menu == "view":
view()
elif menu == "edit":
mytxt1 = input("What do you want to remove\n")
mytxt2 = input("What do you want to change it to?\n")
remove(mytxt1)
add(mytxt2)
elif menu == "remove":
mytxt1 = input("What do you want to remove\n")
sure = input(f"remove: {mytxt1}。yes or no\n")
if sure == "yes":
remove(mytxt1)
else:
continue