Olá! Estou praticando alguns exercícios com estrutura de repeticão do site da Python Brasil e um dos exercícios é:
Faça um programa que leia e valide as seguintes informações: Nome: maior que 3 caracteres; Idade: entre 0 e 150; Salário: maior que zero; Sexo: 'f' ou 'm'; Estado Civil: 's', 'c', 'v', 'd';
Segui realizando o seguinte código:
print("Preencha a fica de cadastro:") def cadastro(): nome = input("Nome: ") while len(nome) < 3: print("Digite um nome com mais de 3 letras. Refaça o cadastro.") cadastro() idade = int(input("Idade: ")) while idade < 0 or idade > 150: print("Digite uma idade entre 0 e 150. Refaça o cadastro.") cadastro() salario = float(input("Salario: ")) while salario <= 0: print("Digite um salário maior que 0. Refaça o cadastro.") cadastro() sexo = input("Sexo: (M) para Masculino ou (F) para feminino: ").upper() while sexo != "M" or sexo != "F": print("Digite um sexo válido. Refaça o cadastro.") cadastro() estado_civil = input("Estado civil: Digite 'S' para solteiro, 'C' para casado, 'V' para viuvo ou 'D' para divorciado: ").upper() while estado_civil != ['S', 'C', 'V', 'D']: print("Digite um estado civil válido. Refaça o cadastro.")
print(cadastro())
No while da var sexo, sei que há uma certa discordancia, pois M é diferente de F e vice-versa, sendo que sempre vai retornar o print. Tentei fazer igual o while do estado civil (não sabia se isso era possível, colocar uma lista como elemento de comparacao, ou se tenho que cria uma var com a lista para fazer a comparação).
Como eu poderia realizar essas comparações? alguma outra dica para a resolução do exercício?
Obrigado desde já.