没有柜台怎么办这个程序?

时间:2016-10-24 01:14:06

标签: python python-3.x

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次,我只想打印一次。

1 个答案:

答案 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