import json
file = 'favnum.json'
def save_fav():
number = input('Type your favourite number: ')
with open(file, 'w') as f:
num = json.dump(number, f)
return num
def get_stored_number():
try:
with open(file) as f:
number_fav = json.load(f)
except FileNotFoundError:
return None
else:
return number_fav
def main_number():
num = get_stored_number()
if num:
print('your favourite number is: ')
print(num)
else:
print('the number had not saved before\nthus you have to save it')
numbers = save_fav()
print('your number is saved')
print(numbers)
main_number()
输出:
the number had not saved before
thus you have to save it
Type your favourite number: 3.14
your number is saved
None
答案 0 :(得分:0)
您应该在函数save_fav()中返回数字而不是num
答案 1 :(得分:0)
因为json.dump
不返回任何值,除了None,并且您将其保存在num中,并且返回num,因此函数也返回num。因此,请返回其他有意义的内容,例如空字符串。
答案 2 :(得分:0)
我认为您的职能是
def save_fav():
number = input('Type your favourite number: ')
with open(file, 'w') as f:
num = json.dump(number, f)
return num
应改为:
def save_fav():
number = input('Type your favourite number: ')
with open(file, 'w') as f:
json.dump(number, f)
return number
在您的版本中,json.dump
返回None
,这就是您从函数中返回的内容,然后在以后打印。