达到指定的总和后,停止向列表追加整数

2024-05-19 19:28:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望创建一个取最大和的循环,然后不断要求用户输入一个数字,直到达到最大和为止。但是,我想这样做,输入“”会破坏代码,用户在达到最大和后仍然可以输入数字,但它们不会附加到numList列表中。谢谢

maxSum = int(input("Max sum: "))

numInput = 0
numList = []

while numInput != "":
    numInput = int(input("Enter a number: "))
    numList.append(numInput)
    if sum(numList) > maxSum:
        raise StopIteration

Tags: 代码用户number列表input数字maxint
2条回答

尝试包含某种标志或仅使用“break”:

maxSum = int(input("Max sum: "))

numInput = 0
numList = []

while True:
  numInput = int(input("Enter a number: "))
  numList.append(numInput)
  if sum(numList) > maxSum and numInput != "":
     break
# using a flag
v = True
while v:
  numInput = int(input("Enter a number: "))
  numList.append(numInput)
  if sum(numList) > maxSum and numInput == "":
     v = False

您可以将此条件添加到whilesum(numList) < maxSum中,我创建了一个用于获取用户输入的函数,它将一直请求用户输入,直到用户输入有效的输入

maxSum = int(input("Max sum: "))

numList =  []

def valid_input():
    while True:
        num = input("Enter a number: ")
        if num.isnumeric() or num == '':
            return num
        else:
            print('Enter valid number: ')

while sum(numList) < maxSum:
    numInput = valid_input()
    if numInput != '':
        numList.append(int(numInput))
    else:
        break

相关问题 更多 >