【py code every day】2023-02-10 1st

文章描述了一个Python程序,该程序首先尝试从文件中加载用户喜欢的数,如果文件不存在则请求用户输入并保存。在另一个功能中,程序会询问用户以确认存储的用户名是否正确,如果不正确则允许用户输入新用户名并存储。程序的目标是提供个性化的欢迎信息。
摘要由CSDN通过智能技术生成

练习10-11:喜欢的数 编写一个程序,ᨀ 示用户输入喜欢的
数,并使用json.dump() 将这个数存储到文件中。再编写一
个程序,从文件中读取这个值,并打印如下所示的消息。
I know your favorite number! It’s _____.
练习10-12:记住喜欢的数 将练习10-11中的程序合二为一。
如果存储了用户喜欢的数,就向用户显示它,否则ᨀ 示用户输
入喜欢的数并将其存储到文件中。运行这个程序两次,看看它
能否像预期的那样工作。

import json
filename = 'text_files/favorite_name.json'
try:
    with open(filename) as f:
        number = json.load(f)

except FileNotFoundError:
    number = input("Please enter your favorite name: ")
    with open(filename,'w') as f:
        json.dump(number,f)
else:
    print(f"I know your favorite number!It's {number}.")

运行两次即可

最后一个 remember_me.py 版本假设用户要么已输入其用户名,要么是首次运行该程
序。应修改这个程序,以应对这样的情形:当前和最后一次运行该程序的用户并非同一个
人。
为此,在 greet_user() 中打印欢迎用户回来的消息前,询问他用户名是否是对的。如
果不对,就调用 get_new_username() 让用户输入正确的用户名。

import json

def get_stored_username():
    #如果存储了用户,就获取它
    filename = 'text_files/user.json'
    try:
        with open(filename) as f:
            username = json.load(f)
    except FileNotFoundError:
        return None
    else:
        return username
def get_new_username():
    #提示用户输入用户名
    username = input("What is your name? ")
    filename = 'text_files/user.json'
    with open(filename,'w') as f:
        json.dump(username,f)
    return username
def greet_user():
    #问候用户,并指出其名字
    username = get_stored_username()
    print(f"Does {username} is your name?")
    title = input("Enter 'y' or 'n' please. ")
    if title == 'y':
        print(f"Welcome back, {username}!")
    elif title == 'n':
        username = get_new_username()
        print(f"We'll remember you when you come back, {username}!")
    # if username:
    #     print(f"Welcome back, {username}!")
    # else:
    #     username = get_new_username()
    #     print(f"We'll remember you when you come back, {username}!")

greet_user()

另一种答案:缩进待调整

import json
def get_stored_username():
 	"""获取存储的用户名——如果存储了。"""
	filename = 'username.json'
 	try:
 		with open(filename) as f_obj:
 		username = json.load(f_obj)
 	except FileNotFoundError:
 		return None
 	else:
 	return username
def get_new_username():
 	"""提示用户输入用户名。"""
 	username = input("What is your name? ")
 	filename = 'username.json'
 	with open(filename, 'w') as f_obj:
 		json.dump(username, f_obj)
 	return username
def greet_user():
 	"""基于用户名问候用户。"""
 	username = get_stored_username()
 	if username:
 		correct = input(f"Are you {username}? (y/n) ")
 		if correct == 'y':
 			print(f"Welcome back, {username}!")
 		else:
 			username = get_new_username()
			 print(f"We'll remember you when you come back, {username}!")
 	else:
		 username = get_new_username()
		 print(f"We'll remember you when you come back, {username}!")
greet_user()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值