2013-10-17 35 views
0
def ticketdo(tickethave): 
    phrase = "Your total is $" 
    if tickethave == "n": 
     print phrase + "22" 
    elif tickethave != "n": 
     tickethour = input("How long has your car been parked?") 
     if tickethour <=1: 
      print phrase + "2" 
     elif tickethour <=2: 
      print phrase + "4" 
     elif tickethour <=3: 
      print phrase + "6" 
     elif tickethour <=4: 
      print phrase + "8" 
     elif tickethour <=5: 
      print phrase + "10" 
     elif tickethour <=6: 
      print phrase + "12" 
     elif tickethour <=7: 
      print phrase + "14" 
     elif tickethour <=8: 
      print phrase + "16" 
     elif tickethour > 8: 
      print phrase + "20" 

def main(): 
    tickethave = raw_input("Do you have your ticket? (y/n): ") 

    print ticketdo(tickethave) 

main() 
+0

請使用一個代碼塊,使這個代碼更像樣。 – Kvass

回答

3

這是因爲ticketdo不返回任何東西。不返回任何內容的函數默認返回None。這是因爲,在Python中,所有函數都必須返回

而且,這樣做:

print ticketdo(tickethave) 

你告訴Python來打印ticketdo返回值。

因此,要解決該問題,請將print放在該行上,或者讓ticketdo返回一些內容並打印出來(根據代碼結構判斷,您可能需要第一個解決方案)。

0

您正在打印ticketdo函數的返回值。由於您沒有明確指定該函數的返回值,因此它會自動返回默認值None,這正是您打印到標準輸出的內容。

如果你想簡單地調用函數,而不打印其返回值,只是做:

ticketdo(tickethave) 

你並不需要,當你把它叫做一個函數的返回值做任何事情。使用返回值完全是可選的。

-1

我只是ticketdo(tickethave)之前刪除打印:

#!/usr/bin/env python 

def ticketdo(tickethave): 
    phrase = "Your total is $" 
    if tickethave == "n": 
     print phrase + "22" 
    elif tickethave != "n": 
     tickethour = input("How long has your car been parked?") 
     if tickethour <=1: 
      print phrase + "2" 
     elif tickethour <=2: 
      print phrase + "4" 
     elif tickethour <=3: 
      print phrase + "6" 
     elif tickethour <=4: 
      print phrase + "8" 
     elif tickethour <=5: 
      print phrase + "10" 
     elif tickethour <=6: 
      print phrase + "12" 
     elif tickethour <=7: 
      print phrase + "14" 
     elif tickethour <=8: 
      print phrase + "16" 
     elif tickethour > 8: 
      print phrase + "20" 

def main(): 
    tickethave = raw_input("Do you have your ticket? (y/n): ") 

    ticketdo(tickethave) 

if __name__ == "__main__": 

    main()