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 中,所有函数都必须返回something

此外,通过这样做:

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 回答