问题描述
我需要创建一个空列表 询问用户任何输入 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。