学习内容:《python编程:从入门到实践》第二版
知识点:
import json引入、
try-except-else
return
def函数、打开文件、
练习内容:
练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数,并使用json.dump()将这个数存储到文件中。再编写一个程序,从文件中读取这个值,并打印如下所示的消息。I know your favorite number!It's _____.
练习10-12:记住喜欢的数 将练习10-11中的程序合二为一。如果存储了用户喜欢的数,就向用户显示它,否则提示用户输入喜欢的数并将其存储到文件中。运行这个程序两次,看看它能否像预期的那样工作。
我的代码&运行结果:
练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数,并使用json.dump()将这个数存储到文件中。再编写一个程序,从文件中读取这个值,并打印如下所示的消息。I know your favorite number!It's _____.
python
import json
def save_number():
number = input("Please enter your favorite number:")
filename = 'number.json'
with open(filename,'w') as file_object:
json.dump(number,file_object)
def read_number():
with open(filename,encoding='utf-8') as file_object:
number = json.load(file_object)
print(f"I know your favorite number!It's {number}.")
filename = 'number.json'
save_number()
read_number()
注意点:
练习10-12:记住喜欢的数 将练习10-11中的程序合二为一。如果存储了用户喜欢的数,就向用户显示它,否则提示用户输入喜欢的数并将其存储到文件中。运行这个程序两次,看看它能否像预期的那样工作。
python
import json
def new_number():#不需要加filename
number = input("Please enter your favorite number:")
filename = 'number.json'#这里忘记
with open(filename,'w') as file_object:
json.dump(number,file_object)
return number#return也容易忘记
def saved_number():
filename = 'number.json' # 这里忘记
try:
with open(filename, encoding='utf-8') as file_object:
number = json.load(file_object)
except FileNotFoundError:
return None#这里也要返回,none返回
else:
return number
def read_number():
number = saved_number()
if number:
print(f"I know your favorite number!It's {number}.")
else:
number = new_number()
print(f"We'll remember your number when you come back")
read_number()
两次运行结果如下:
注意点:
把两个小程序合并在一起需要提前想好每一个操作与下一个操作之间的关联,每个操作下又有哪些
主程序是读取数据
默认是读取已保存数据saved_number,
saved_number中
try打开文件-的一系列过程
except(不存在的偶然情况)→return None
else(正常执行情况)→return number
遇到一次判断
if有→print
否则→new_number→print
new_number中:询问、输入、存储、返回值用于下一步
主要就是自己得明确调用读数函数(方法总)的大框架,
方法总的步骤为:先读旧数据(方法1),有则打印,没有就要存新数据(方法2),有无是一个判断
旧数据(方法1)步骤为:读取旧数据-打开文件夹-读取数据-返回数据值
新数据(方法2)步骤为:存新数据-用读取的方式新建文件夹-存数据-返回数据值