重写代码以将正确的输出保存到文本的简单方法



我希望终于有人能帮忙了。我正在尝试编写代码以将任务保存到文本文件。文本文件从用户获取输入并存储信息。我想找到一种非常简单的方法来更改我的以下代码以向任务添加一个数字,以便我以后能够调用特定任务。将第一个任务标记为"分配给任务 1 的用户"后:下一个任务应标记为"分配给任务 2 的用户",然后是任务"分配给任务 3 的用户":

任务示例:

分配给任务的用户:

千斤顶

任务标题:

慢跑

任务描述:

去慢跑

任务截止日期:

2020年02月08

日分配日期:

2020年02月07

日任务已完成:

请求的输出:

分配给任务 1 的用户:

千斤顶

任务标题:

慢跑

任务描述:

去慢跑

任务截止日期:

2020年02月08

日分配日期:

2020年02月07

日任务已完成:

到目前为止,我拥有的代码如下。它正在将数字写入文本文件,但它们都标记为任务 1,下一个任务不会更改为任务 2:

def add_task(count):
if menu == "a" or menu == "A":
with open( 'user.txt' ) as fin :    
usernames = [i.split(',')[0] for i in fin.readlines() if len(i) > 3]
task = input ("Please enter the username of the person the task is assigned to.n")
while task not in usernames :
task = input("Username not registered. Please enter a valid username.n")
else:
task_title = input("Please enter the title of the task.n")
task_description = input("Please enter the task description.n")
task_due = input("Please input the due date of the task. (yyyy-mm-dd)n")
date = datetime.date.today()
task_completed = False
if task_completed == False:
task_completed = "No"
else:
task_completed = ("Yes")
with open('tasks.txt', 'a') as task1:
count=count+1
task1.write("nUser assigned to task: "+ str(count) + "n" + task + "nTask Title :"  + "n" + task_title + "n" + "Task Description:n" + task_description + "n" + "Task Due Date:n" + task_due + "n" + "Date Assigned:n" + str(date) + "n" + "Task Completed:n" + task_completed + "n")
print("The new assigned task has been saved")
count = 0
add_task(count)

这是因为变量count仅在add_task()范围内更改。 更改在该函数之外看不到,因此当您调用add_task(count)时,始终0count

要了解有关 Python 中作用域的更多信息,请查看此链接:https://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html#more-about-scope-crossing-boundaries

编辑: 您可以访问全局计数变量(请参阅此答案(,或者 - 这是我建议的 - 您可以返回局部变量count并使用它来更新其他变量,如下所示:count = add_task(count)

相关内容

  • 没有找到相关文章

最新更新