Python 为什么这个程序总是返回“0”;无”;最后呢? def ticketdo(tickethave): 短语=“您的总金额为美元” 如果tickethave==“n”: 打印短语+“22” 伊里夫·蒂克瑟夫!=“n”: tickethour=输入(“您的车停了多长时间?”) 如果tickethour

Python 为什么这个程序总是返回“0”;无”;最后呢? def ticketdo(tickethave): 短语=“您的总金额为美元” 如果tickethave==“n”: 打印短语+“22” 伊里夫·蒂克瑟夫!=“n”: tickethour=输入(“您的车停了多长时间?”) 如果tickethour,python,if-statement,Python,If Statement,是因为ticketdo没有返回任何内容。默认情况下,不返回任何内容的函数返回None。这是因为,在Python中,所有函数都必须返回某些内容 此外,通过这样做: def ticketdo(tickethave): phrase = "Your total is $" if tickethave == "n": print phrase + "22" elif tickethave != "n": tickethour = input("Ho

是因为
ticketdo
没有返回任何内容。默认情况下,不返回任何内容的函数返回
None
。这是因为,在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): ")  

    print ticketdo(tickethave)

main()
您正在告诉Python打印
ticketdo
的返回值


因此,要解决此问题,请将
print
放在该行,或者让
ticketdo
返回某个内容,然后打印该内容(根据您的代码结构判断,您可能需要第一个解决方案)。

您正在打印
ticketdo
函数的返回值。由于您没有明确指定该函数的返回值,它将自动返回默认值,即
None
,这正是您要打印到stdout的内容

如果只想调用函数而不打印其返回值,只需执行以下操作:

print ticketdo(tickethave)

调用函数时,不需要对函数的返回值进行任何处理。使用返回值是完全可选的。

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

#/usr/bin/env python
def ticketdo(tickethave):
短语=“您的总金额为美元”
如果tickethave==“n”:
打印短语+“22”
伊里夫·蒂克瑟夫!=“n”:
tickethour=输入(“您的车停了多长时间?”)

如果您选择了tickethour,请使用代码块使此代码更形象。
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()