2016-10-27 42 views
2

沒有任何價值我正在學習python 3.4編程,這本偉大的書籍「如何像計算機科學家3一樣思考」。我對運動5.14.2的迴應有些懷疑,內容如下:「如何像計算機科學家3一樣思考」練習

如果你離開第三天(星期三) )。你在137次睡眠後回到家中。寫一個通用版本的程序,要求提供開始日期和逗留時間,並且它會告訴你將返回的星期幾的名稱。

我試圖不使用涉及在本週接下來的幾頁概念的任何編碼技術,我的回答是:

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() 

該項目工程,並打印出正確的值。但是,它還會在退貨之後打印一個「無」值。

爲什麼會發生這種情況?我不明白它爲什麼會打印「無」。

回答

4

您正在打印dias_semana,然後打印它返回的內容 - 但您永遠不會返回任何內容。不顯式返回任何內容的函數的默認返回值是None

要麼只是呼籲在vacaciones功能dias_semana而不進行打印,或者改變dias_semanareturn報表內print語句。

2

您的功能dias_semana不返回任何內容,在這種情況下,函數會隱式返回None。並通過這樣做print(dias_semana(díavuelta))你居然做到以下幾點:

return_value = dias_semana(díavuelta) 
print(return_value) 

return_valueNone。一種解決的方法是返回dias_semana中的值,而不是直接打印任何內容。或者不要使用vacaciones函數中的print函數。