If no Python

18/10/2019

0

Estou desenvolvendo um sistema de cadastro simples em Python, porém estou com um pequeno problema.

import dataset

db = dataset.connect('sqlite:///mydatabase.db')

tabela = db['Usuarios']

while True:

    print('Escolha a operação que deseja realizar com o cadastro do usuário')
    escolha = input('(1)Inserir (2)Consultar (3)Editar ou (4)Excluir -> ')

    if escolha == '1':
        while True:
            tabela.insert(dict(NOME=input('Nome -> '), IDADE=input('Idade -> ')))
            if input('Deseja inserir outro registro? (S/N) -> ') == 'N' or 'n':
                print()
                break

    elif escolha == '2':
        if input('Deseja inserir um filtro para exibir os resultado? (S/N) -> ') == 'S' or 's':
            filtro = input('Nome cadastrado a ser consultado -> ')
            resultado = db.query('SELECT * FROM Usuarios WHERE NOME LIKE %', filtro, '%')
            for row in resultado:
                print(resultado)
        else:
            resultado = db.query('SELECT * FROM Usuarios')
            for row in resultado:
                print(resultado)

    elif escolha == '3':
        filtro = input('Nome cadastrado a ser alterado -> ')
        tabela.update(dict(NOME=input('Nome -> '), IDADE=input('Idade ->')), [filtro])

    elif escolha == '4':
        filtro = input('Nome cadastrado a ser excluido ->')
        tabela.delete()

    else:
        print('Escolha uma opção válida!')


Na seguinte parte do código ele pede o filtro independente do resultado do input:

    elif escolha == '2':
        if input('Deseja inserir um filtro para exibir os resultado? (S/N) -> ') == 'S' or 's':
            filtro = input('Nome cadastrado a ser consultado -> ')
            resultado = db.query('SELECT * FROM Usuarios WHERE NOME LIKE %', filtro, '%')
            for row in resultado:
                print(resultado)


Não estou entendo o porque disso, era para ele pedir o filtro para o usuário somente se o mesmo quiser inserir na consulta.
Gustavo Machado

Gustavo Machado

Responder

Post mais votado

18/10/2019

tente algo assim:
if input('Deseja inserir um filtro para exibir os resultado? (S/N) -> ').upper() == 'S':

ou:
resposta = input('Deseja inserir um filtro para exibir os resultado? (S/N) -> ')
if resposta.upper() == 'S':

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

21/10/2019

Gustavo Machado

tente algo assim:
if input(''Deseja inserir um filtro para exibir os resultado? (S/N) -> '').upper() == ''S'':

ou:
resposta = input(''Deseja inserir um filtro para exibir os resultado? (S/N) -> '')
if resposta.upper() == ''S'':



Funcionou Emerson, grato pela atenção.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar