10-11 喜欢的数字10-12 记住喜欢的数字10-13 验证用户

10-11 喜欢的数字 : 编写一个程序, 提示用户输入他喜欢的数字, 并使用json.dump() 将这个数字存储到文件中。 再编写一个程序, 从文件中读取这个值, 并打印
消息“I know your favorite number! It’s _____.”。

import json
number= '1'
filename = 'number.json'
with open(filename,'w')as f_obj:
    json.dump(number,f_obj)



import json
filename = 'number.json'
with open(filename)as f_obj:
    number = json.load(f_obj)
print("I know your favorite number! It's "+str(number))


10-12 记住喜欢的数字 : 将练习10-11中的两个程序合而为一。 如果存储了用户喜欢的数字, 就向用户显示它, 否则提示用户输入他喜欢的数字并将其存储到文件中。
运行这个程序两次, 看看它是否像预期的那样工作。

import json
filename = 'number1.json'
try:
    with open(filename)as f_obj:
        number = json.load(f_obj)
except FileNotFoundError:
    number= '1'
    with open(filename,'w')as f_obj:
        json.dump(number,f_obj)
else:
    print("I know your favorite number! It's "+str(number))
    

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

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 greet_user():
    username = get_stored_username()
    print(username)
    flag = input('yes/no')
    if flag == 'yes':
            print("Welcome back, " + username + "!")
    else:
        username = get_new_username()
        print("We'll remember you when you come back, " + 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

greet_user()

版权声明:本文为Arclight869原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。