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

问题描述

我需要创建一个空列表 询问用户任何输入 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 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 进行比较 类型(Mylist)= int 类型(MaxLengthlist) = 范围类

,

在 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)
,

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