从用户处获取号码&打印最大值和最小值(不使用内置函数)
我正在审查一个Python练习,它执行以下操作:
读取数字列表直到“完成”得到 进入。
当输入“done”时,打印 最大和最小的 数字。
它应该没有直接 使用内置函数 max() 和 min()。
这是我的来源。 Traceback 说,“‘float’对象不可迭代”
我认为我的错误来自于没有正确使用列表来计算最小和最大。 任何提示和帮助将不胜感激!
while True:
inp = raw_input('Enter a number: ')
if inp == 'done' :
break
try:
num = float(inp)
except:
print 'Invalid input'
continue
numbers = list(num)
minimum = None
maximum = None
for num in numbers :
if minimum == None or num < minimum :
minimum = num
for num in numbers :
if maximum == None or maximum < num :
maximum = num
print 'Maximum:', maximum
print 'Minimum:', minimum
谢谢你!
I'm reviewing a python exercise which does the following :
reads list of numbers til "done" gets
entered.When "done" is inputted, print
largest and smallest of the
numbers.And it should be without directly
using the built-in functions, max()
and min().
Here is my source.
Traceback says, "'float' object is not iterable"
I think my errors are coming from not using the list properly to calculate smallest and largest.
Any tips and help will be greatly appreciated!
while True:
inp = raw_input('Enter a number: ')
if inp == 'done' :
break
try:
num = float(inp)
except:
print 'Invalid input'
continue
numbers = list(num)
minimum = None
maximum = None
for num in numbers :
if minimum == None or num < minimum :
minimum = num
for num in numbers :
if maximum == None or maximum < num :
maximum = num
print 'Maximum:', maximum
print 'Minimum:', minimum
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
你不应该需要一个清单。您只需要随时跟踪当前的最小值和最大值。
You shouldn't need a list. You should only need to keep track of the current minimum and maximum as you go.
使用
num = float(inp)
,您只需分配一个数字,并在每次分配新数字时覆盖它。您必须首先创建列表,然后每次向其中添加数字。像这样的事情:With
num = float(inp)
you only assign a single number and overwrite it each time a new one is assigned. You have to create the list first, then add numbers to it each time. Something like this:试试这个代码:
Try this code :