必须输入8个唯一条目,逻辑应检测是否有任何条目重复,否则继续直到输入所有8个条目。
我一直在处理For循环,但似乎没有给我想要的输出,如果要扫描重复的条目,我想返回到最后一个条目,而是显示一条消息“重复扫描,请重新扫描”,但是计数器继续前进。
对不起,我是新来的我以为我已经包含了代码。希望它能经历这段时间。
x=1
mac_list = []
while (x <=8):
MAC1 = input("SCAN MAC"+str(x)+":")
for place in mac_list:
print (mac_list)
if place==MAC1:
print ("place"+place)
print ("Duplicate SCAN, please rescan")
else:
mac_list.append(MAC1)
x+=1
答案 0 :(得分:0)
Python的in
比较应该可以满足您的需求:
values = []
while True:
value = input('Input value: ')
if value in values:
print('Duplicate, please try again')
else:
values.append(value)
if len(values) > 7:
break
print(values)
答案 1 :(得分:0)
这样的东西行不通吗?
集合只能容纳唯一的元素,因此默认情况下会删除所有重复项-这应该解决了您的许多后顾之忧。通过元素比较,这对于较大的数据集应该更好地工作。
entries = set()
while len(entries)<8:
entries = entries ^ set([input("You do not have enough unique items yet, add another")])
要检测更改,可以有一个旧列表和一个新列表:
entries = set()
new=set()
while True:
latest = input("You do not have enough unique items yet, add another")
new = entries ^ set([latest])
if len(new) == len(entries):
print("you entered a duplicate:",latest, " Please rescan")
else:
entries = new
if len(entries) == 8 : break
答案 2 :(得分:0)
将条目存储在集合中,检查集合中的元素是否少于8个。如果没有,请打破循环。
entries = set()
counter = 0
while len(entries) < 8:
counter += 1
entries.add(input("Enter an item: "))