我试图定义一个简单的函数来找到两个浮点数之间的范围,这就是我得到的:
def item(number, terminator, step):
while number < terminator:
return (number)
number += step
item(1.00, 1.12, 0.01)
控制台不会打印任何错误,它不会打印None
,它只是不做任何事情。它运行程序,什么都不做。我很迷茫。我的代码出了什么问题?
答案 0 :(得分:2)
有两件事是错的:
您没有打印任何东西。 item()
函数返回,您忽略了返回值。 Python交互式解释器几乎回应了您所做的一切,但是常规脚本要求您明确打印。
您将返回范围的第一个值。 return
结束一个功能。
您可以先构建一个值列表,然后返回该值,然后打印结果:
def item(number, terminator, step):
items = []
while number < terminator:
items.append(number)
number += step
return items
print(item(1.00, 1.12, 0.01))
演示:
>>> def item(number, terminator, step):
... items = []
... while number < terminator:
... items.append(number)
... number += step
... return items
...
>>> print(item(1.00, 1.12, 0.01))
[1.0, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.1, 1.11]
或者,使用yield
代替return
将您的功能转换为generator,并循环显示结果:
def item(number, terminator, step):
while number < terminator:
yield number
number += step
for value in item(1.00, 1.12, 0.01):
print(value)
产生:
>>> def item(number, terminator, step):
... while number < terminator:
... yield number
... number += step
...
>>> for value in item(1.00, 1.12, 0.01):
... print(value)
...
1.0
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
1.09
1.1
1.11