为什么在输出中没有输出?蟒蛇

时间:2020-10-07 16:59:39

标签: 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

3 个答案:

答案 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,这就是您从函数中返回的内容,然后在以后打印。