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

3 に答える 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 に答える