簡體   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