为什么没有打印在输出中???Python

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


喵喵时光机
浏览 140回答 3
3回答

宝慕林4294392

您应该在函数 save_fav() 中返回 number 而不是 num

largeQ

我认为你的功能: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,这就是您从函数返回的内容,然后稍后打印。

慕田峪4524236

因为json.dump除了 None 之外不会返回任何内容,并且您将其保存在 num 中,并返回 num 所以函数也返回 num 。因此,返回任何有意义的其他内容,例如空字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python