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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值