Python 为什么while循环中的用户输入不能以这种方式工作

Python 为什么while循环中的用户输入不能以这种方式工作,python,python-2.7,while-loop,user-input,Python,Python 2.7,While Loop,User Input,此语法有什么问题: 这是Python 2 num="" word=[] while ((num = raw_input("Enter a number: "))!='done'): if num!='done': word.append(num) print 'Maximum: ',float(max(word)) print 'Minimum: ',float(min(word)) 为什么用户输入不能在while循环中? 或者我怎样才能把它置于while状态 我不

此语法有什么问题: 这是Python 2

num=""
word=[]

while ((num = raw_input("Enter a number: "))!='done'):

    if num!='done':
        word.append(num)
print 'Maximum: ',float(max(word))
print 'Minimum: ',float(min(word))
为什么用户输入不能在while循环中? 或者我怎样才能把它置于while状态

我不需要解决这个问题的解决方案,我只是问为什么Python不允许这样做

下面是我解决这个问题的代码:在用户输入done之前查找max和min表单列表

num=''
word=[]

while (num!='done'):
    num = raw_input("Enter a number: ")
    if num!='done':
        word.append(num)
print 'Maximum: ', float(max(word))
print 'Minimum: ', float(min(word))

您可以尝试以下方法:

num=""
word=[]

while True:
    num = raw_input("Enter a number: ")
    if num!='done':
        word.append(float(num))
    else:
        break
print 'Maximum: ',max(word)
print 'Minimum: ',min(word)

本质上,您需要在条件外部和实际循环内部为num赋值,然后在变量“完成”时通知while循环停止。此外,我认为在将数字添加到列表中时,您应该将其转换为浮点数,以便可以自然调用max和min。

为什么您希望这样做?语言规范中的什么使您认为这是有效的?答案在重复的问题中。此外,由于word是一个字符串列表,字符串顺序不是数字的,而是字典式的,因此min和max没有返回预期值也会有问题。您希望将用户输入转换为浮点值,因为在将它们存储到word中之前,似乎需要浮点值。