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()
質問する
105 次
3 に答える
3
ticketdo
何も返さないからです。何も返さない関数はNone
、デフォルトで戻ります。これは、Python ではすべての関数が何かを返さなければならないためです。
さらに、次のようにします。
print ticketdo(tickethave)
の戻り値を出力するように Python に指示していますticketdo
。
したがって、問題を解決するには、print
その行に をドロップするticketdo
か、何かを返してから出力します (コード構造から判断すると、おそらく最初の解決策が必要になるでしょう)。
于 2013-10-17T00:47:19.320 に答える
0
関数の戻り値を出力していticketdo
ます。その関数の戻り値を明示的に指定しなかったため、自動的にデフォルト値が返されます。これNone
はまさに標準出力に出力するものです。
戻り値を表示せずに単に関数を呼び出したい場合は、次のようにします。
ticketdo(tickethave)
関数を呼び出すときに、関数の戻り値に対して何もする必要はありません。戻り値の使用は完全にオプションです。
于 2013-10-17T00:48:42.913 に答える
-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()
于 2013-10-17T00:52:48.490 に答える