我正在写一个程序返回火车的价格。当我运行函数时,什么都没有返回。你知道吗
def transit(zone, ticket):
fareLst = ['23', '11.5', '34.5']
if zone < 2 and ticket == 'adult':
return fareLst[0]
elif zone < 2 and ticket == 'child':
return fareLst[1]
elif zone > 4 and ticket == 'adult':
return -1
def main():
transit(1, 'adult') # the function is not returning the fareLst = 23
main()
其他人已经提到您没有存储返回值,但是我还要补充一点,您在最后没有默认的“基本情况”。在本规范中:
如果
zone
等于2、3或4怎么办?如果zone
是4,而ticket
是child呢?所有这些都会一直到最后,函数的默认返回值是None
。那可能不是你想要的。如果不是,添加return 20
或任何合理的默认票价。你知道吗同样,返回前哨值也不是Pythonic,就像上面的最后一个例子。一种更为python的方法是,如果参数不好,则引发
ValueError
,然后将调用代码包装在try/except
块中。这就不留模棱两可的余地,检查返回值是一件麻烦事。你知道吗函数返回值;只是没有对它做任何操作。如果需要,可以打印:
return
与在屏幕上打印不同;返回值的用法如下,例如:你不希望所有你曾经返回的东西都被自动打印出来。你知道吗
另外,还应使用适当的浮点值来存储浮点数据,而不是字符串:
另外,请注意,如果调用
transit(5, 'child')
,它将不返回任何内容/None
。。。因此,您可能需要在if-elif
块的末尾添加以下内容:而不是:
…尽管
None
对于完全无效的输入也可能是一个可行的选择;但是,在这种情况下,例外情况会更好。你知道吗如果只想打印结果,请执行以下操作:
或者,如果要存储变量并稍后打印,请执行以下操作:
相关问题 更多 >
编程相关推荐