代码是自己打的,题目懒得自己打了,截了其他大佬的,可以参考着看看:
最后一个remember_me.py版本假设用户要么已输入其用户名,要么是首次运行该程序。我们应修改这个程序,以防当前用户并非上次运行该程序的用户。
为此,在greet_user()中打印欢迎用户回来的消息之前,询问他用户名是否是对的。如果不对,就调用get_new_username()让用户输入正确的用户名。
题目链接:https://blog.csdn.net/weixin_56575758/article/details/135654514
from pathlib import Path
import json
def get_stored_username(path):
#获取文件存储的名字
if path.exists():
contents = path.read_text()
username = json.loads(contents)
return username
else:
return None
def get_new_username(path):
#存入新名字
username = input("What is your name? ")
contents = json.dumps(username)
path.write_text(contents)
return username
def greet_user():
#主函数
path = Path("username.json")
username = get_stored_username(path) #返回的值需要赋给新变量
if username:
ask_name = input(f"are you {username}? yes/no ")
if ask_name == 'yes':
print(f"Welcome back, {username}!")
else:
username = get_new_username(path)
print(f"We will remember you when you come back.{username}")
else:
username = get_new_username(path)
print(f"{username},We will remember you when you come back.")
greet_user()
半夜打的代码,可能脑子不清楚了,一直有问题。白天一看,竟是把返回值username写成contents了。
如果有问题,欢迎指出。