![](/img/trans.png)
[英]How can i save these type of while loop result into multiple data frame in 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.