Python 对于具有列表范围的循环执行

Python 对于具有列表范围的循环执行,python,for-loop,Python,For Loop,我正在从用户输入创建一个正整数列表。该列表将有5个值。如果输入为负数,该值将不会进入列表并发出错误消息并再次询问号码。 我在代码中遇到的问题是,循环在执行5次后会下降。然而,我希望它一直运行,直到我得到5个积极的inetegers lists = [] for i in range(5): s = int(input('Enter a number: ')) if s >= 0: lists.append(s) else: print("Enter

我正在从用户输入创建一个正整数列表。该列表将有5个值。如果输入为负数,该值将不会进入列表并发出错误消息并再次询问号码。 我在代码中遇到的问题是,循环在执行5次后会下降。然而,我希望它一直运行,直到我得到5个积极的inetegers

lists = []

for i in range(5):
  s = int(input('Enter a number: '))
  if s >= 0:
    lists.append(s)
  else:
    print("Enter a valid number")

print(lists)

您最好将其更改为while循环,如下所示:

lists = []

while len(lists)<5:
    s = int(input('Enter a number: '))
    if int(s) >= 0:
        lists.append(int(s))
    else:
        print("Enter a valid number")
list=[]
而len(列表)=0:
列表。追加(整数)
其他:
打印(“输入有效数字”)

使用while循环而不是for循环:

while len(lists)<5:
  s = int(input('Enter a number: '))
  if s >= 0:
    lists.append(s)
  else:
    print("Enter a valid number")
而len(列表)=0:
列表。追加
其他:
打印(“输入有效数字”)
For循环更适合于已知次数的迭代,而while循环将在执行之前检查条件