python编程:从入门到实践 练习10-12 蒙圈过程

首先我仿照案例编写了一个程序,主要用函数

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,然后就正确运行了

这一点,不知道有没有大神能够解决下小弟的疑惑

你可能感兴趣的:(python编程:从入门到实践 练习10-12 蒙圈过程)