Error when searching for a string

0
  

Hello, how are you?   I'm having a problem running this code.   From the second "While True" the program can not find the written product. The same has been registered just above. I've checked this code from the bottom to the bottom and found nothing that might be considered an error.   If anyone can help me solve this problem, I am grateful.   I will leave the repl.it link available for you to check the error that is happening.    link

print('='*20, 'Cadastrador de produtos', '='*20)
def cadastros():
  cod = int(input('Digite o CÓDIGO do produto: '))
  item = input('Informe o produto que deseja cadastro: ')
  valor = input('Valor do produto: R$').replace(',',',')
  itens.append([cod,item, valor])
itens = []
while True:
  print('-='*20)
  deseja = str(input('Deseja cadastrar um item? S/N ')).upper().strip()
  if deseja == 'S':
    cadastros()
    print('Produto cadastrado com SUCESSO')
  elif deseja == 'N':
    break
  else:
    print('Entrada inválida')
    continue
print('Produtos cadastrados: {}'.format(itens))
print('='*70)
while True:
  x = 0
  op = input('Deseja procurar algum produto? [S/N]: ').upper().strip()
  if op == 'S':
    codPro = str(input('NOME DO PRODUTO: ')).upper().strip()
    for x in range(len(itens)):
      if codPro == itens[x][1]: # <--- Programa com erro na hora de procurar por nome do produto.## Cabeçalhos ##
        print('')
        print('Código: {}\nProduto: {}\nValor: R${}'.format(itens[x][0], codPro, itens[x][2]))
        print('')
      else: 
        print('Nome Invalido, tente novamente')
        continue
   ...
    
asked by anonymous 04.02.2018 / 21:34

1 answer

1

Your problem is in the following line:










codPro = str(input('NOME DO PRODUTO: ')).upper().strip()

With upper , you make all input letters given in upper case. So, if your product has lowercase letters in the name, the comparison will not result in True. Try to register a product with the name in capital letters and you will see that it works.

Solution: Take out .upper() .

Note that you also do not need to use str in input ; the output is already a string.

    
04.02.2018 / 21:48