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