Lógica, perguntado por Estudante2789, 8 meses atrás

Escreva um algoritmo em python que
receba a idade e o estado civil de várias pessoas e

imprima a quantidade de pessoas casadas, solteiras,

separadas e viúvas. O algoritmo finaliza quando for

informado o valor zero para idade.

Algum me ajuda.

Soluções para a tarefa

Respondido por GeBEfte
4

O programa abaixo (também anexado) conta com uma validação simples dos dados para evitar a maioria das possíveis ocorrências de exceções/erros que poderiam vir a prejudicar o funcionamento.

Perceba que isso evita problemas como a digitação de dados não inteiros para a idade, sendo que, caso seja digitado um valor negativo (ex: -3), o programa considerará o valor absoluto. Ainda, para o estado civil, é utilizada uma listagem numerada das possibilidades para evitar erros de digitação.

Caso seja dada uma entrada errada de idade ou opção do estado civil, o programa solicitada novamente até que seja passado um dado válido.

Perceba, no entanto que a validação não impede, por exemplo, idades absurdas (ex: 99999 anos).

Obs.: Os pontos que precedem linhas de programação não fazem parte do programa e devem ser desconsiderados, foram colocados apenas para garantir a indentação do código aqui no site.

solteiros=casados=separados=viuvos = 0

while True:

.....while True:

..........try:

...............idade = int(input('Idade: '))

...............if idade<0:

....................idade = abs(idade)

..........except:

...............print('Por favor, digite uma idade válida!')

...............continue

..........else:

...............break

.....if idade == 0:

..........break

.....while True:

..........print('''

Estado civil

[1] Solteiro(a)

[2] Casado(a)

[3] Separado(a)

[4] Viúvo(a)''')

 

..........est_civil = str(input('Digite a opção correspondente: ')).strip()

..........if est_civil not in ('1', '2', '3', '4'):

...............print('Opção inválida!')

...............continue

..........print(f'Registrado!\n')

..........if est_civil == '1':

...............solteiros += 1

..........elif est_civil == '2':

...............casados += 1

..........elif est_civil == '3':

...............separados += 1

..........else:

...............viuvos += 1

..........break

print('Fim do registro')

print(f'''

Foram cadastrados {solteiros} solteiros, {casados} casados, {separados} separados e {viuvos} viúvos''')

\Huge{\begin{array}{c}\Delta \tt{\!\!\!\!\!\!\,\,o}\!\!\!\!\!\!\!\!\:\,\perp\end{array}}Qualquer~d\acute{u}vida,~deixe~ um~coment\acute{a}rio

Anexos:
Perguntas interessantes