繁体   English   中英

如何在while循环中保存来自输入()function的多个结果,而不是仅在Python中的最后一个结果?

[英]How do i save multiple results from a input() function in a while loop, not the last result only in Python?

作业所以问题来了,我要编写一个程序,该程序接受用户的输入,直到他写“完成”。 发生这种情况时,我应该取最大和最小值并将它们打印出来。

问题当我写“完成”时,它告诉我我无法将 str 与 int 进行比较,而且它不会存储我在 input() function 中写入的每个值。

编码

while True:
    number = input("Enter number:")
    if number == "done":
       break


largest = None
for value in number:
   if value > largest or largest is None:
      largest = value
print("after:", largest)

smallest = None
for value in number:
   if value < smallest or smallest is None:
      smallest = value
print("after",smallest)

您在每个循环周期覆盖number 使用容器来保存数字:

numbers = []
while True:
    number = input("Enter number:")
    if number == "done":
        break
    else:
        numbers.append(int(number))

print(numbers)

output:

Enter number:1
Enter number:2
Enter number:3
Enter number:done
[1, 2, 3]

注意。 我还假设您想使用整数,所以我提供了转换(如果您输入的不是整数,这将失败)。 此外,由于您的任务很简单(最小值/最大值)并且不需要提前知道更多的数字,我建议在 while 循环中计算这些最小值/最大值。 这将比再次阅读 2 次列表更有效(见下文)。

numbers = []  # not needed if you don't want the list as output
smallest = float('inf')
largest = float('-inf')
while True:
    number = input("Enter number:")
    if number == "done":
        break
    else:
        number = int(number)
        numbers.append(number) # not needed if you don't want the list as output
        if number > largest:
            largest = number
        if number < smallest:
            smallest = number

print(numbers, smallest, largest)

output:

Enter number:1
Enter number:3
Enter number:2
Enter number:done
[1, 3, 2] 1 3

我建议使用 min/max,如下所示:

numbers = []
while True:
    ans = input("give me a number: ")
    if not ans or ans == "done":
        break
    try:
        ans = int(ans) # we dont want to add this if it's not really a number
        numbers.append(ans)
    except:
        print("please give me an integer!")
print(numbers,min(numbers),max(numbers))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM