首先我仿照案例编写了一个程序,主要用函数
import json
def get_stored_numbers():
"""获取以及存储过的数字"""
file_name = "numbers.json"
try:
with open(file_name) as file_object:
number = json.load(file_object)
except FileNotFoundError:
return None
else:
return number
def get_new_numbers():
"""获取刚刚输入的数字"""
message = "请输入喜欢的数字:"
number = input(message)
file_name = "numbers.json"
with open(file_name,"w") as file_object:
json.dump(number,file_object)
return number
def greet_numbers():
"""指出用户喜欢的数字"""
number = get_stored_numbers()
if number:
print("早就知道你喜欢的数字是:" + number)
else:
number = get_new_numbers()
print("你喜欢的数字是:" + number)
greet_numbers()
刚开始一直报错,反复修改后,终于发现问题所在
return返回时候 没有括号的!!!!!
上面是第一次写的,后来一直修改不对,就编写了第二种,在这道题环境下,第二种代码量少
import json
file_name = "numbers.json"
try:
with open(file_name) as file_object:
number = json.load(file_object)
except IOError:
message = "请输入喜欢的数字:"
number = input(message)
with open(file_name,"w") as file_object:
json.dump(number,file_object)
print("你喜欢的数字是:"+ number)
else:
print("早就知道你喜欢的数字是:" + number)
但是这一种我也有奇怪的地方,我所用的是Python3.7.2
按理说文件无法找到这种异常是FileNotFoundError,可是运行报错,看到一博客,用的是IOError,然后就正确运行了
这一点,不知道有没有大神能够解决下小弟的疑惑