lista = []
for i in range(5):
i = int(input("Digite um valor para o vetor: "))
lista = lista + [i]
x = int(input("Digite um valor para ver sua posição: "))
counter = 0
for j in range(5):
if lista[j] == x:
counter =+ 1
print(j)
if counter == 0:
print(x-1)
在上面的程序中,你在列表中放了5个数字,然后你查找你在列表中输入的数字的位置,如果输入的数字不在列表中,它将打印x-1
。 / p>
例如List = [1, 2, 3, 4, 5]
x = 5
然后会打印5
x = 7
它将打印6
如何在没有计数器的情况下打印x-1
?我尝试使用:
else:
print(x-1)
但是它会打印x-1
5次,我只想打印一次。
答案 0 :(得分:0)
您根本不需要计数器,因为您只是用它来检查没有匹配。您可以使用for..else
结构检查循环是否已完成而不退出break
。
for j in range(5):
if lista[j] == x:
print(j)
break
else:
print(x-1)
如果要打印与搜索查询匹配的每个索引,我会采用不同的方法:
>>> x = 1
>>> print(*(i for i,v in enumerate(map(int, input('Enter values separated by space:\n').split())) if v==x))
Enter values separated by space:
1 1 1 1 1
0 1 2 3 4
>>> print(*(i for i,v in enumerate(map(int, input('Enter values separated by space:\n').split())) if v==x))
Enter values separated by space:
2 2 1 10 1
2 4
>>> print(*(i for i,v in enumerate(map(int, input('Enter values separated by space:\n').split())) if v==x))
Enter values separated by space:
2 2 1 10
2