Python “无价值”;如何像计算机科学家一样思考3“;运动

Python “无价值”;如何像计算机科学家一样思考3“;运动,python,nonetype,pyscripter,Python,Nonetype,Pyscripter,我正在学习Python3.4编程,这本伟大的书是《如何像计算机科学家一样思考3》。我对练习5.14.2的回答有一些疑问,练习内容如下: 你将在第三天(一个星期三)开始一个美妙的假期(如果你不喜欢快乐的锻炼,也许会坐牢)。你睡觉后回家。写一个程序的一般版本,要求提供开始日期和停留时间,它会告诉你一周中你将返回的日期 在本周接下来的几页中,我尽量不使用任何涉及概念的编码技术,我的回答是: def dias_semana(x): if x == 1: print("lunes"

我正在学习Python3.4编程,这本伟大的书是《如何像计算机科学家一样思考3》。我对练习5.14.2的回答有一些疑问,练习内容如下:

你将在第三天(一个星期三)开始一个美妙的假期(如果你不喜欢快乐的锻炼,也许会坐牢)。你睡觉后回家。写一个程序的一般版本,要求提供开始日期和停留时间,它会告诉你一周中你将返回的日期

在本周接下来的几页中,我尽量不使用任何涉及概念的编码技术,我的回答是:

def dias_semana(x):
    if x == 1:
        print("lunes")
    elif x == 2:
        print("martes")
    elif x == 3:
        print("miercoles")
    elif x == 4:
        print("jueves")
    elif x == 5:
        print("viernes")
    elif x == 6:
        print("sábado")
    elif x == 7:
        print("domingo")
    else:
        print("déjate de wear culiao")

def vacaciones():
    diaempiezo = int(input("Día que empiezo"))
    cuantosdias = int(input("días de vacaciones"))
    díavuelta = (diaempiezo + cuantosdias) % 7
    print(dias_semana(díavuelta))

vacaciones()
程序工作,并打印正确的值。但是,它也会在返回日后打印一个“无”值


为什么会这样?我不明白为什么它会打印“无”。

您在dias_semana中打印,然后打印它返回的内容,但您从不返回任何内容。不显式返回任何内容的函数的默认返回值为
None


或者只调用
vacaciones
函数中的
dias_semana
,而不打印它,或者将
dias\u semana
中的
print
语句更改为
return
语句。

您的函数
dias\u semana
不返回任何内容,在这种情况下,函数隐式返回
None
。通过执行
print(dias_semana(díavuelta))
您实际上可以执行以下操作:

return_value = dias_semana(díavuelta)
print(return_value)
返回值
。一种修复方法是返回dias_semana中的值,而不是直接打印任何内容。或者不使用
vacaciones
功能中的
print
功能