如何在 while 循环中使用 range()?

How to use range() with while loop?

我需要创建一个空列表 询问用户任何输入 5 次 仅在输入不存在时才将其添加到列表中

我不断进入无限循环,而不是只有 5 次。

这是我的代码:

MyList = []
maxLengthList = range(5)
while len(MyList) < maxLengthList:
    i = input("Enter a number to the list: ")
    if i not in MyList:
        MyList.append(i)
print("That's your numbers list")
print(MyList)

尝试了解 for 循环。您可以像这样使用它们:for _ in range(5):。将它们用于可订阅格式。更多信息 here.

范围的正确用法是:

for x in range(start, end):
    print(x)

所以在你的情况下它将是:

# Using underscore here since you do not need the value for each loop
for _ in range(5):
    i = input("Enter a number to the list: ")
    if i not in MyList:
        MyList.append(i)

但是,您可以将 maxLengthList 设置为 5 而不是 range(5)

您使用 range() 函数作为最大长度的常量,这是不可能的 range(5) = range(0,5) 它不会给你一个常量来处理 您不能将 len(MyList) 与 maxlengthlist 进行比较 类型(我的列表)= int 类型(最大长度列表)=范围class

在Python中,range是一个类似于生成器的不可变可迭代对象。当你说 range(5) 时,它产生从 0 到 4 的数字。你使用 for_loop 来迭代一个范围,而不是 while_loop.

就您的目的而言,您根本不需要范围。没有它,您的代码也能完美运行。

MyList = []
maxLengthList = 5
while len(MyList) < maxLengthList:
    i = input("Enter a number to the list: ")
    if i not in MyList:
        MyList.append(i)
print("That's your numbers list")
print(MyList)