Python学习笔记之json.dump和json.load

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

favorite_number.pyspa

 1 import json  2 
 3 def favorite_number():  4     """提示用户输入喜欢的数字"""
 5     filename = 'favorite_number.json'
 6     number = input("请输入你喜欢的数字:")  7     with open(filename, 'w') as f_obj:  8  json.dump(number, f_obj)  9 
10 favorite_number()
get_favorite_number.py
 1 import json  2 
 3 def get_favorite_number():  4     """获取文件内容"""
 5     filename = 'favorite_number.json'
 6  with open(filename) as f_obj:  7         get_number = json.load(f_obj)  8 
 9     print("I know your favorite number! It’s " + str(get_number) + ".") 10 
11 get_favorite_number()

 

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

 1 import json  2 
 3 def get_stored_number():  4     filename = 'favorite_number.json'
 5     try:  6  with open(filename) as f_obj:  7             number = json.load(f_obj)  8     except FileNotFoundError:  9         return None 10     else: 11         return number 12 
13 def favorite_number(): 14     """提示用户输入喜欢的数字"""
15     filename = 'favorite_number.json'
16     number = input("请输入你喜欢的数字:") 17     with open(filename, 'w') as f_obj: 18  json.dump(number, f_obj) 19     return number 20 
21 
22 def get_favorite_number(): 23     """获取文件内容"""
24     # filename = 'favorite_number.json'
25     # with open(filename) as f_obj:
26     # get_number = json.load(f_obj)
27     number = get_stored_number() 28     if number: 29         print("I know your favorite number! It’s " + str(number) + ".") 30     else: 31         number = favorite_number() 32         print("I know your favorite number! It’s " + str(number) + ".") 33 
34 get_favorite_number()

 

10-13 验证用户:最后一个remember_me.py 版本假设用户要么已输入其用户名,要么是首次运行该程序。咱们应修改这个程序,以应对这样的情形:当前和最后一次运行该程序的用户并不是同一我的。blog

为此,在greet_user()中打印欢迎用户回来的消息前,先询问他用户名是不是对的。若是不对,就调用get_new_username()让用户输入正确的用户名。rem

原remember_me.py代码get

 1 import json  2 
 3 def get_stored_username():  4     """若是存储了用户名,就获取它"""
 5     filename = 'username.json'
 6     try:  7  with open(filename) as f_obj:  8             username = json.load(f_obj)  9     except FileNotFoundError: 10         return None 11     else: 12         return username 13 
14 def get_new_username(): 15     """提示用户输入用户名"""
16     username = input("What is your name? ") 17     filename = 'username.json'
18     with open(filename, 'w') as f_obj: 19  json.dump(username, f_obj) 20     return username 21 
22 def greet_user(): 23     """问候用户,并指出其名字"""
24     username = get_stored_username() 25     if username: 26         print("Welcome come back, " + username + "!") 27     else: 28         username = get_new_username() 29         print("We will remember you when you come back, " + username + "!") 30 
31 greet_user()

修改以后remember_me.py代码input

 1 import json  2 
 3 def get_stored_username():  4     """若是存储了用户名,就获取它"""
 5     filename = 'username.json'
 6     try:  7  with open(filename) as f_obj:  8             username = json.load(f_obj)  9     except FileNotFoundError: 10         return None 11     else: 12         return username 13 
14 def get_new_username(): 15     """提示用户输入用户名"""
16     username = input("What is your name? ") 17     filename = 'username.json'
18     with open(filename, 'w') as f_obj: 19  json.dump(username, f_obj) 20     return username 21 
22 def greet_user(): 23     """问候用户,并指出其名字"""
24     username = get_stored_username() 25     if username: 26  msg = "Are you " + username + "? (y/n) " 27 correct = input(msg) 28 if correct == 'y': 29 print("Welcome come back, " + username + "!") 30 else: 31 username = get_new_username() 32 print("We will remember you when you come back, " + username + "!") 33 
34     else: 35         username = get_new_username() 36         print("We will remember you when you come back, " + username + "!") 37 
38 greet_user()
相关文章
相关标签/搜索