Exercício Python
HTML-код
- Опубликовано: 6 фев 2025
- Exercício Python 057: Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'. Caso esteja errado, peça a digitação novamente até ter um valor correto.
Veja o curso de Python PARTE 1 em • Curso de Python 3 - Mu...
Veja o curso de Python PARTE 2 em • Curso de Python 3 - Mu...
Veja a lista de exercícios de Python em • Exercícios de Python 3
Gostou da aula? Então torne-se um Gafanhoto APOIADOR do CursoemVídeo acessando o site cursoemvideo.com/apoie
Aula do Curso de Python criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com.
Curso em Vídeo
Seja um apoiador: cursoemvideo.co...
Site: www.cursoemvide...
RUclips: / cursoemvideo
Facebook: / cursosemvideo
Twitter: / cursosemvideo
Google+: plus.google.com...
Patrocínio
HOSTNET: www.hostnet.com.br
GAFANHOTOS: apoie.me/cursoe...
Estude pelo nosso site e tire certificado de 40 horas. Curso completo em:
www.cursoemvideo.com/curso/python-3-mundo-2/
Eu fiz -> while sexo != 'M' or sexo != 'F': e Meu loop não tava parando nunca, nem colocando M ou F, achei muito estranho e demorei pra entender o motivo. A minha maneira de interpretar pra entender melhor foi a seguinte: 'Enquanto sexo for diferente de 'M' OU diferente de 'F' entre na repetição', so que 'M' sempre será diferente de 'F' e vise versa. Então se digitasse 'M' o programa testava --> 'M' é diferente de 'M' OU de 'F' ? Sim , 'M' é igual a 'M' , porém é diferente de 'F', então entre na repetição! , e se digitasse 'F' ele testava --> 'F' é diferente de 'M' OU de 'F' ? Sim, 'F' é diferente de 'M' , entre na repetição! E digitando qualquer palavra OU um OU outro sempre seriam satisfeitos, loop infinito!
Usando a função AND da certo porque enquanto sexo for diferente de "M" E de "F" ele entra no loop. Qualquer palavra então vai fazer ele entrar na repetição, porém se você digitar 'M' ele vai testar -> 'M' É diferente de M e F ? não, é só diferente de F e igual a M, saia da repetição. Se colocar 'F' ele vai testar -> É diferente de M e F? não, é só diferente de M e igual a F, saia da repetição. Acho que é isso.
eu tinha feito a mesma coisa que você, obrigada pela explicação
Até então não estava entendo o que eu estava fazendo de errado, após sua explicação consegui estender de maneira mais clara
Explicação perfeita.
Valeu,cara!Eu não sabia o porquê do meu código antigo não ter funcionado.
Caramba, eu cai no mesmo loop. O primeiro comentário que acho é o seu. Valeu mesmo.
esse not in quebrou, nem sabia que tinha isso kkkkk
ele disse na aula, mas eu tentei usar e me fodi
Eu tentei de várias formas e não consegui
esse not é complicado
Eu tmb kkkk
quebrei a cabeça tbm, mas valeu o meio exercício kkkkk
Voltei do zero no curso até cair aqui nesse. E eu fui fazendo, escrevendo sozinho. Sem fazer desde o início é praticamente impossível fazer esse. Qui aligria.
Fazer sozinho, nossa. Que dahora mano
Estou fazendo o curso, Nem acredito que estou aprendendo tanto. Valeu Guanabara
Perdi um tempão aqui fazendo while sexo !=M or sexo!= F:
Aí não vale.
fiz assim tmb, n tava dano certo ai lembrei do not in
O mais absurdo é que não aceita o OR mas aceita o AND... não tem lógica isso...
Também tive esse problema, aí usei:
while sexo != 'F' and sexo != 'M':
Acabou ficando maior, mas deu certo.
@@rodrigogomes5532 tem logica sim, sao duas coisas diferentes, o "and" é quando duas as duas coisas tem que ser verdadeiras, ja o "or" apenas algumas das opçoes pode ser verdadeira.
Se vc usar o OR, ele nao valida os dois, F eh diferente de M, e vice versa.....Uma das duas opcoes vai ser diferente delas mesmas
Parabéns mestre pela excepcional aula!!!
Percebi que com esse fatiamento [0] se o bendito do usuário digitar qualquer palavra que inicie com 'm' ou 'f' automaticamente o programa já reconhece e já sai do loop.
Muito legal esse conceito, me lembrei do filme do Matrix Resurrections onde o Neo está em um loop infinito provavelmente com uma estrutura de repetição com teste de lógico kkkkkkk
Oi Guanabara,
Da um direto, sem digitar nada.
Veja se funciona certinho.
Abraço!
Tambem percebi esse BUG
MInha solução foi
sexo = str(input("Qual o sexo da pessoa M/F")).strip().upper()
while sexo in ' ':
sexo = str(input("Ops Voce digitou um valor invalido, Qual seu sexo M/F"))
while sexo not in 'MmFf':
sexo = str(input("Ops Voce digitou um valor invalido, Qual seu sexo M/F"))
print("Sexo {} Registrado".format(sexo))
@@derlansilva2790 Na linha "while sexo in ' ':" ou "while sexo not in 'MmFf':" você pode simplificar para
while sexo not in 'MmFf' or sexo in ' ':
usando esse 'or' ele vai cair dentro do loop se atender qualquer um dos dois requisitos, para programas mais complexos, também da para usar mais de um 'or', funciona em 'If', 'While', e acho que qualquer estrutura que precisa de um pre-requisito.
Abraço!
Guanabara, obrigada pela preocupação em ensinar os que têm dificuldade!
07:44 Nos exercícios do FOR "no meu caso" achei um pouco mais pesado e não consegui responder de primeira. Mas como desistir pra mim não é uma opção, deu para perceber que é bem mais fácil depois que estamos acostumados.
Utilizando o [0], qualquer palavra que for digitada que possua 'F' ou 'M', será validada, Farinha será registrada como Feminino. A Melhor maneira é usar o WHILE NOT sexo == 'M' and not sexo == 'F':
Retirando o fatiamento [0]
valeu bro, tava pensando nisso.
Não existe melhor maneira. Existe maneiras. Eu tinha percebido isso também, 'Maria' sendo registrado como 'M', mas pra propósitos inicias, é útil. Se for pra ter uma solução melhor pra reconhecer 'masculino' como 'M', imagino que tenha que usar uma ou duas linhas a mais pra uma condição.
vlw!!! tentei fazendo essa lógica com != 'M' or != 'F' e não tava dando certo. Com a sua dica, foi
também acho melhor tirar o fatiamento [0], mas achei didático estar nessa aula pra galera aprender mais um esquema que pode ser necessário no futuro
eu fiz dessa forma:
feminino = 'F'
masculino = 'M'
s = ''
while s != feminino and s != masculino:
s = str(input('Informe seu sexo [F/M]: ')).strip().upper()
if s != feminino and s != masculino:
print('Informação inválida tente novamente. Por favor,', end=' ' )
if s == 'F':
print('Sexo feminino registrado.')
else:
print('Sexo masculino registrado.')
Não concordo que seja a melhor forma. Tanto o while not quanto o while tem a mesma velocidade. A diferença é só a lógica por trás.
Utilizei o método de loop infinito, enquanto não se digita a informação correta. Descartei também a possibilidade de se dar um e a variável ficar vazia.
Para isso, inicializei a variável "sexo" com dois espaços em branco e coloquei um input na mesma variável dentro do While.
Ficou assim:
sexo = ' '
while sexo not in 'MmFf' or sexo == '':
sexo = str(input('Sexo [M/F]: ')).strip().upper()
print('Sexo {} registrado com sucesso.'.format(sexo))
O que eu achei da hora no while é que ele é idêntico ao if, só que além de fazer algo caso seja verdadeiro apenas uma vez, ele vai fazer enquanto for verdadeiro, só para quando mudar pra falso, isso é da hora, pra quem entendeu o if o while é uma aprimoração dele
Como é o primeiro exercício tive um pouco de dificuldade mas passamos por + um, grato demais Guanabara, você é top irmão...
sexo = input("Qual é o seu genêro? (M) para masculino e (F) para feminino:").upper()
while sexo != "M" and sexo != "F":
print("Resposta está errada, tente outra vez!")
sexo = input("Qual é o seu genêro? (M) para masculino e (F) para feminino:").upper()
if sexo == "M" or sexo == "F":
print("Parabéns a resposta está correta!")
fiz assim tmbem
nossa o meu código ficou totalmente diferente kkkkkkkkk eu tinha feito uma gambiarra. ai eu descobri que da para fazer assim kkkkkk. Por isso é bom assistir os exercicios
s='F', 'M'
s =str(input('DIgite o seu sexo [F,M]')).strip()
if s !='F':
while s != 'F' :
s=str(input('Digite o seu sexo certo ! [F/M]')).strip()
if s == 'F':
print('Obrigado por nos falar !')
print('Fim!')
eu ainda tava tentando resolver kkkk
@@Guilherme-gm5wo Esse seu ai só lê feminino, e com letra maiuscula ainda
Meu pc tinha ido jogar no Vasco por um tempo, perdi todas as atividades então comecei a fazer todas do 0 para ver oque aprendi, e além disso coloquei uns aprendizados da frente (isso se eles forem UPGRADES)
while True: # Começando com um LOOP infinito, enquanto verdadeiro.
sexo = str(input('Digite seu sexo [M/F]: ')).strip().upper()[0]
if sexo not in 'MF': # Verificando se a pessoa digitou 'M' ou 'F'
print('Inválido, tente novamente.')
else:
break # Quebra do Loop, assim seguindo as próximas funções tranquilamente, logo após obter resposta correta
print(f'Sexo {sexo} registrado com sucesso, obrigado!')
Se deixar o [0], qualquer palavra iniciada com uma das letras vai gerar um registro. Se tirar o [0], ao deixar em branco e dar ENTER vai gerar um registro pois ' ' (espaço vazio) está entre M e F, então é melhor fazer com lista #while sexo not in ['M', 'F']:#, de resto é tudo igual ao do vídeo e não vai ter esses problemas citados.
valeu mano
também seria possível fazer assim:
#while 'F' != sexo != 'M'
Há outro erro na maneira que ele fez, ele colocando "MmFf" se o usúario digitar "MF" ou "FM" o programa vai prosseguir, sendo que isso não é um sexo.
foi como eu fiz
s = ['M', 'm', 'F', 'f']
r = ''
while r not in s:
r = str(input('Digete seu sexo [M/F]: '))
if r in 'Mm':
print('Maculino')
elif r in 'Ff':
print('Feminino')
else:
print('Opção invalida, tente novamente.')
Obrigado
Muito boa a aula, nota 10 como sempre, o meu fiz um rolê danado atoa kkkk
nome = str(input("Digite M ou F: ")).strip().upper()[0]
while nome not in 'MF':
if nome != "M" or "F":
print("Opção invalida!, tente novamente!")
nome = str(input("Digite novamente M/F: ")).strip().upper()[0]
elif nome == "M" or "F":
print(f"Você escolheu a opção {nome}")
print(f"Você escolheu a opção {nome}")
Como na aula passada o professor falou de flag, fiz uma com flag para quem ver agora já ver como funciona:
flag = False
while flag == False:
sexo = str(input('Informe seu sexo [M/F]: ')).upper().strip()
if sexo == 'M' or sexo == 'F':
flag = True
else:
print('Dados inválidos. Digite novamente!')
flag = False
print(f'Sexo {sexo} registrado com sucesso')
@eduardoaraujo4222 verdade, faz sentido
interessante! Mas com o While s != 'M' and s != 'F': já fúnciona.
Travei neste exercício, mas consegui depois de analisar os programas dos colegas aqui.
Minha solução.
sexo = ''
while sexo != 'M' and sexo != 'F':
sexo = str(input('Informe o seu sexo [M/F]: ')).upper()
if sexo != 'M' and sexo != 'F':
while sexo != 'M' and sexo != 'F':
print('Dados incorectos, ', end='')
sexo = str(input('Informe um sexo válido: ')).upper()
print('
\033[1;33mREGISTO FOI CONCLUÍDO COM SUCESSO!!!\033[m')
mano tu me tirou uma puta duvida kkkkkkkkkkkk eu pensei q se eu colocasse um while ali nao iria repetir a frase ai eu me toquei q o while vai repetir ate q venha a correta kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
esse foi o unico exercicio dessa lista que eu consegui fazer
eu fiz usando o 'def' porque eu estava ansioso para usar ele porque eu tinha finalmente aprendido ele, só que fiquei travado porque não sabia do 'not in' mas dps que coloquei funciono.
def sexo():
return str(input('\033[1;3;34m'
'digite qual o seu sexo
M(masculino) F(feminino):')).strip().upper()[0]
while sexo() not in 'MF':
print('\033[1;3;31mtente novamente
')
print('
\033[1;3;4;36mseu cadastrado foi finalizado.')
Fácil!
sexo=str(input('Digite o seu sexo M/F: ')).strip()
while sexo not in 'MmFf':
sexo=str(input('Dados invalidos digite novamente M/F: ')).strip()
print('Sexo registrado!')
Cara eu fiz igual vc, ainda bem que ta certo, vim ver nos comentários não vi ngm fazendo, fiquei pensando se fiz errado kkkk.
sexo = str(input('Digite o sexo: ')).strip().upper()
while sexo not in 'M,F':
sexo = str(input('Por favor digite apenas M ou F: ')).strip().upper()
print('FIM')
Gostei deste exercicio. Fiz assim, e ficou bem parecido com o do professor:
s = input('Qual o seu sexo? [M/F] ')
while s not in 'MFmf':
s = input('Resposta invalida. Tente novamente.
Qual o seu sexo? [M/F] ')
Bom exercicio Teta, continue assim
Fiz um pouco diferente mas deu tudo certo!
s = ""
while s != "M" and s != "F":
s = str(input("Informe seu sexo [M/F]: ")).strip().upper()
if s != "M" and s != "F":
print("Dados Invalidos! Por favor, ")
if s == "F":
s = "Feminino"
elif s == "M":
s = "Masculino"
print(f"Sexo {s} registrado com sucesso")
Eu tentei fazer uma versão mais inclusiva do programa, adicionando a opção "intersexo". Acabei me empolgando e aproveitei pra imprimir uma resposta confirmando o que a pessoa digitou, coloquei umas cores bonitinhas no resultado. (meu pyCharm tá em inglês, enfim...)
Obrigada pela aula! Espero que ajude alguém.
m1 = 'Type your sex: (F, M, I)
> '
m2 = 'Please, insert a valid value: (F, M I)
> '
c = str(input(m1)).strip().upper()
f = '\033[43ma female\033[m'
m = '\033[45ma male\033[m'
i = '\033[46man intersex\033[m'
while c != 'F' and c != 'M' and c != 'I':
c = str(input(m2)).strip().upper()
if c == 'F':
t = f
elif c == 'M':
t = m
elif c == 'I':
t = i
print(f'You chose: {c}, which means you are {t}!')
gay
@@cleytoum388 yes, I am
slayyyy
INCLUSIVA MEU OVO! Vc pode dar sua bunda a vontade, mas GÊNERO só tem dois! Viva com isso!
@@daniellopes48 Meu bem, el@ não tá falando de gênero, tá falando de sexo. Pessoas intersexo são pessoas q nascem com os dois orgãos sexuais. Agora pare de disseminar o ódio e vai estudar pra evitar de passar mais vergonhas como essa.
Eu aprendi a usar o while com comando TRUE. Fiz totalmente diferente e acabou q deu o mesmo resultado 😅
meu código:
while True:
sexo = input('Digite seu sexo [M/F]: ').strip().upper()
if sexo == 'S' or sexo == 'M':
break
else:
print('Por favor, digite apenas uma das opções acima
')
print('Obrigado!')
Então. Se usou outros métodos como o break que quebra o laco ele n ensino isso nesse curso aq ainda então vc meio q roubo
fiz um pouco diferente do professor mas acho que da certo
sexo = ''
while sexo != 'M' and sexo != 'F':
sexo = str(input('Digite o sexo da pessoa [M/F]: ')).strip().upper()
if sexo == 'M':
print('A pessoa é homem.')
elif sexo == 'F':
print('A pessoa é mulher.')
else:
print('Voce digitou errado, digite M para masculino e F para feminino.')
fiz assim tbm!
também fiz assim, sem querer ser arrogante mas pelo jeito do professor o programa falha se você digitar qualquer palavra começada por f ou m.
While é meu ponto fraco, voltei a estudar agora, comprei um curso na udemy e foi a mesma coisa. Espero aprender com o tio Guanabara
Livro para leitura muito bom para complementar as vídeo aulas do professor Guanabara
Luiz Eduardo Borges
Python para Desenvolvedores
1ª edição
é
2ª edição
grato pela recomendação camarada!
@@edmilsonk47 Valeu meu amigo tmj
parecia que eu conseguiria realizar facilmente , mas sofri um pouco até que o guanabara com sua genialidade resolveu só com um not in ( eu estava tentando pelo sexo!=)
Desafio 057
Crie um algoritmo q leia o sexo de uma pessoa, mas só aceite M/F.
Caso esteja errado, peça novamente até o usuário digitar a info correta.
sexo = str(input('Informe o sexo M/F: ')).strip().upper()[0]
while sexo not in 'MmFf':
sexo = str(input('Dados inválidos. Informe seu sexo M/F: ')).strip().upper()[0]
print(f'Informaçao registrada. Seu sexo é {sexo}.')
# Valeu Guanabara!!!
o seu codigo foi o melhor
@@gilmarsantos3468 não foi não pq se a pessoa digitar algo que começa com m ou f e que não tenha nada haver com exercicio, o programa aceita
s = str(input('Qual o seu sexo [M]asculino ou [F]eminino ')).strip().upper()
while s[0] not in 'MF':
s = str(input(f'Entrada {s} inválida, por favor digite novamente: ')).strip().upper()
print('Sexo masculino registrado!' if s[0] == 'M' else 'Sexo feminino registrado!')
Fiz melhorias depois de ver o vídeo e ler alguns comentários achei o jeito mais fácil e eficiente para mim
Engraçado que se o usuário digitar 'mulher' registra o sexo masculino kkkkkkkkkk
Sem dúvida o melhor professor da internet!!!
# Eu fiz meio diferente:
sexo = ' '
while sexo != 'M' and sexo != 'F':
sexo = str(input('Qual é o seu sexo [M/F]: ')).strip().upper()
if sexo != 'M' and sexo != 'F':
print('Por favor digite M (Masculino) ou F (Feminino) para validar seu sexo.')
else:
print(f'Validação feita com sucesso, você é {sexo}.')
int(input('Qual a sua idade: ')).strip
A última linha do seu código vai dar erro. STRIP é uma função nativa de str(string), e quando usada juntamente com um tipo primitivo int(número inteiro) vai gerar erro! No caso é só tirar o STRIP que vai dar certo.
@@antonioryan2683 Apesar de ser algo desnecessário, porque entradas do tipo "int" não considera caractere do tipo string o que inclui espaços, o erro não ocorre:
idade = int(input('Qual a sua idade: ').strip())
O resultado é exatamente o mesmo. Porém é redundância no código uma vez que é desnecessário.
Guanabara, vamos ficar programando só pro console? E os exemplos de programas no mundo real? Era bom mostrar isso também pra dar uma perspectiva mais concreta. Eu quero aprender a linguagem pra criar programas reais e não apenas pra ficar simulando no console ou na IDE.
Provavelmente, terá!
talvez seja no mundo 3
o python não é linguagem de script, o unico jeito de transformar um .py em .exe é com build mais pra frente ele talvez ensine.
It's a long way to the top if wanna Rock 'n' Roll...
Seria melhor ter estudado javascript. ANGULARJS, nodejs, mongodb e por ai vai!
# Exercício Python 057: Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'. Caso
# esteja errado, peça a digitação novamente até ter um valor correto.
sexo = str(input('Digite seu sexo [M/F]: ')).strip()
while sexo not in 'MmFf' or sexo == '':
sexo = str(input('Opção inválida, digite seu sexo novamente[M/F]: ')).strip()
if sexo in 'Mm':
print('Informação guardada, seu sexo é MASCULINO.')
else:
print('Informação guardada, seu sexo é FEMININO.')
Mas tem um problema que identifiquei:
Se o usuario digita qualquer palavra começando com m ou f ele aceita
maria
faca
marcus
foca
Pensei exatamente isso. Se a pessoa digitar "mulher" pra informar que é feminina o sistema registrará como masculino.
Kkkkk.... vdd!
Também pensei nisso, dai tirei o corte do final kkk
'''Exercício Python 057: Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'.
Caso esteja errado, peça a digitação novamente até ter um valor correto.'''
sexo = input('Digite seu sexo(M/F)')
while sexo.lower() not in ('mf') or len(sexo)!=1 or sexo == None:
sexo = input('só M(masculino) ou F(feminino), digite novamente: ')
#essa validação é um pouco mais simples do que as que eu costumo fazer, como no exercício anterior
#onde uso o tratamento de excessão sem necessidade, mais uma lição do curso
if sexo.lower() == 'f':
sexo = 'feminino'
else:
sexo = 'masculino'
print('Seu sexo é {}'.format(sexo))
Muito feliz passei dois dias tentando sozinho e ele saiu. Ficou diferente mais igualmente validado:
sexo= int
while sexo != 'M' and sexo != 'F':
sexo = str(input('Informe seu sexo [M/F]: ')).upper().strip()
if sexo == 'M' or sexo == 'F':
print(f'Sexo registrado com sucesso')
else:
print(f'Dados inválidos.')
eu fiz assim:
sexo = 'M' or 'F'
registro = '' #registro é diferente de sexo, por isso deixei vazio
while registro != sexo:
registro = str(input('informe seu sexo ')).upper().strip()
if registro == sexo:
sexo = 'masculino' or 'feminino'
print(f'sexo {sexo} registrado com sucesso') #o f' é pra facilitar o format.
O meu ficou um while dentro do outro 🤣
s = ''
while s != 'M' and s != 'F' :
s = str(input('Digite seu sexo [M/F] : ')).upper().strip()
if s == 'M' or s == 'F':
print(f'O sexo digitado {s} é válido !')
else :
s = ''
while s != 'M' and s != 'F':
s = str(input('Por favor ! Digite um sexo valido [M/F] :')).upper().strip()
if s == 'M' or s == 'F':
print(f'O sexo digitado {s} é válido !')
EU N SABIA Q DAVA PRA USAR O "or" NUMA VARIÁVELLLL, tenho q testar mais, mds.
Essa é a primeira linguagem de programação que estou aprendendo, meta de trabalhar na área ainda em 2023!!!! hoje 17/01/23
Sinto que já comecei bem, e já que achei muito divertido fazer isso, foi melhor ainda😁estou muito feliz que fiz todos os exercícios desse modulo sozinho
EXERCICIO#57:
c = 0
while c != True:
Nome = str(input('Qual o seu nome? '))
Sexo = str(input('Seu sexo é masculino ou feminino [M/F]? ').upper().strip())
print('-=-' * 20)
if Sexo == 'M':
print(f'Prazer em te conhecer senhor {Nome}')
c = True
elif Sexo == 'F':
print(f'Prazer em te conhecer senhorita {Nome}')
c = True
else:
print('Opção invalida. Por favor escolha entre M ou F')
print('Tente novamente')
print('-=-' * 20)
Tu praticamente inventou um break, que massa kkkkkk
É muito divertido mesmo criar varias formas de resolver o problema, mas te recomendo a treinar sua mente para tentar resolver de formas sempre mais simples e resumidas, pq la na frente se tu continuar com essa adrenalina de querer o sistema grande e complexo pq é bonito vai dar ruim kkkkk eu sou assim tbm
Eu fiz desse jeito:
# Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'.
# Caso esteja errado, peça a digitaçao novamente até ter um valor correto.
sexos = ['F', 'M']
s = ''
while s not in sexos:
s = str(input('[M/F]')).upper()
if s != 'M' and s != 'F':
print('Opção inválida. Digite novamente')
O .strip() eu deixei de fora, pois quando escrevia "mulher" ele aceitava como "masculino". Ou a pessoa digita M ou F, ou nada feito.
Muito bom, nunca menospreze a inteligencia do usuário final
kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
fiz assim e funcionou bem, e achei mais simples.
i = 1
while i != 0:
sexo = str(input('informe seu sexo [F/M]: ')).upper().strip()
if sexo == 'M' or sexo == 'F':
print('sexo {} registrado com sucesso!!!!' .format(sexo))
# para encerrar o laço
i = 0
else:
print('dados inválidos por favor digite [F/M]!!!')
Começei semana passada, aula 9, to gostando muito, caminho meio longo
Tem um erro neste código, se digitar qualquer palavra que comece com m ou f ele valida o dado.
testei isso, e é verdade realmente tem um erro kkkk
kkk bem pensado
por isso fiz assim
sexo = str(input('Digite seu sexo [M/F]: ')).strip().upper()
while sexo not in {'F', 'M', 'MASCULINO','FEMININO'}:
sexo = str(input('INVÁLIDO, digite seu sexo: ')).strip().upper()
print(f'Sexo {sexo} registrado com sucesso')
Fiz assim
c = 0
while c == 0:
sexo = str(input('Digite [M] ou [F] conforme seu sexo: ')).strip().upper()
if sexo == 'M' or sexo == 'F':
print(f'Você escolheu {sexo}!')
c = c + 1
else:
print('Tente novamente!')
Esses conceitos de 'in', 'and', 'or', 'not' são essenciais n sei se tem uma aula falando especificamente mas seria bom que sim.
Outro ponto importante é a questao de eliminação de espaços e letras em upper ou lower so lembrei dps q vi o video da resposta.
Minha resposta ultilizou apenas o and pq eu vi em exercicios passados:
s = str(input('Digite seu sexo: [M / F] ')).upper()[0].strip()
while s != 'M' and s != 'F':
print('Dados invalidos digite novamente: ')
s = str(input('Qual seu sexo? [M / F] ')).upper()[0].strip()
print('Sexo {} registrado com sucesso.'.format(s))
esses são muito fáceis de entender e se tivesse uma aula essa aula teria 1 minuto
só pesquisa no google e pronto
Eu consegui +/- só precisei de ajuda no while,pois n sabia q tinha "not in"
O meu ficou assim:
sexo = str(input('qual seu sexo?obs:so aceito "M" ou "F" como resposta.:')).upper()
while sexo not in 'MF':
sexo = str(input('digite novamente:')).upper()
Depois do exercício 56 esse ficou brincadeira de criança..kkk...Significa que tamo evoluindo...To usando minhas férias pra ficar bom nesse "jogo"..
Esse eu não consegui fazer sozinho! o While not eu não tinha prestado atenção...
Me matei por mais de horas tentando fazer e não consegui!! Aí fui ver a resolução do exercício e ta lá mais uma surpresa, NOT IN....
Faz parte, mais uma vez não fui atrás de recursos NÃO PASSADOS na TEORIA kkkk. Seguimos na luta da capacitação!!
Ele já tinha ensinado isso! E você poderia ter usado o "sexo != 'f' and sexo != 'm'" que daria certo também! Bons estudos!
# : Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'.
# Caso esteja errado, peça a digitação novamente até ter um valor correto.
sexo = str(input('Qual é o seu sexo [M,F]: ')).strip().upper()[0]
while sexo not in 'MmFf':
sexo = str(input('Por favor digite um valor correpondente. Qual o seu sexo[M,F]: ')).upper().strip()[0]
print(f'O seu sexo registado foi o {sexo}. Registro efetuado com sucesso!')
Eu fiz dessa forma:
def sexo():
s = input("Qual o sexo do usuário? M/F").upper()
if s == 'M':
print('Você é do sexo masculino.')
if s == 'F':
print('Você é do sexo feminino.')
while s not in 'MF':
print("Caractere inválido. Use somente M ou F.")
sexo()
break
sexo()
Ainda não podemos usar funções! Temos que fazer os exercícios de acordo com o que ele explica ou já explicou! Faz parte do processo de evolução do aprendizado da linguagem!!
Eu sempre esqueço o fatiamento! fica bem mais simples, ficou mais longo, porem cumpriu com o pedido
devido minha limitação de conhecimento em alguns recursos fiz desta forma:
sexo = ''
mensagem = ''
while mensagem != 'Informação registrada.':
sexo = str(input('Qual seu sexo [M/F]: ')).upper().strip()
if sexo == 'M' or sexo == 'F':
mensagem = str('Informação registrada.')
print('Informação registrada.')
else:
print(end='' 'Opção inválida. Tente novamente. ')
achei o seu mais técnico, você condicionou a mensagem com a validação de fato, ou seja tinha que ser [M/F], e também
diferente informação registrada , aqui o que seu programa faz é o seguinte se eu digitasse 1 ou qualquer outra coisa ou caracteres ele
invalidava e retorna no loop.
o dele tem menos variáveis declarada mais não me parece uma logica confiável quanto a sua , eu fiz diferente também pelo mesmo motivo confiabilidade no código.
porém como é o primeiro exercício da aula então deve ser por esse motivo a simplicidade
É um exercício fácil, mas me propus a fazer esse curso do início ao fim assistindo todas as aulas e correções de exercícios.
Neste, por exemplo, na minha solução usei um While, um If e um Else sem necessidade...
Fiz errado e acabei criando um 'loop infinito'...
Finalmente consegui, não precisei ver o vídeo
sexo = " "
while sexo != 'M' and sexo != 'F':
sexo = str(input("Qual seu sexo?[M/F] ")).upper().replace (' ', '')
if sexo != 'M' and sexo != 'F':
print("Digite uma opcao valida")
if sexo == 'M':
print("O Sexo masculino foi registrado com sucesso...")
if sexo == 'F':
print("O sexo Feminimo foi registrado com sucesso....")
resposta = ''
sexo = str(input('Digite o sexo[M\F]: ')).upper().strip()[0]
while sexo not in'MF':
sexo = str(input('Sexo invalido, digite o sexo novamente[M\F]: ')).upper().strip()[0]
if sexo == 'M':
resposta = 'masculino'
elif sexo == 'F':
resposta = 'feminino'
print('Sexo {} registrado com sucesso!'.format(resposta))
se escrefver MULHER, moio kkkkkkkk vai aparecer masculino kkkkkk
Que mancada professor #GUANABARA
kkkkkkkkk ou moça
ou menina
foi por causa do .strip()
Se tirar da certo
Tô tentando mudar pra aceitar MULHER e HOMEM. Mas n consegui
nesse caso tem que colocar a palavra especifica.
Pois se colocar a letra, quanto hoMeM e Mulher tem a letra M
while n != 'MULHER' and n != 'HOMEM':
while n != 'MASCULINO' and n != 'FEMININO':
cara seu método de ensino é muito bom, suas aulas estão me ajudando muito:)
Continua que é sucesso!!
Eu estou aprendendo a programar na quarentena e esse mundo 2 ta osso. Felizmente consegui resolver esse, tá aqui a soluçao:
sexo=''
while sexo != 'M'and sexo !='F':
sexo=str(input('Sexo[M/F):')).upper()
if sexo != 'M'and sexo !='F':
print('Sexo desconhecido, tente novamente')
print('Fim')
Na minha opinião, esse exercício foi relativamente tranquilo (claro, é o primeiro exercício kkk), mas tá aí o meu código
#Faça um programa que leia o sexo de uma pessoa, mas só aceite os valores 'M' ou 'F'.
#Caso esteja errado, peça a digitação novamente até ter um valor correto.
sexo = ''
while sexo != 'M' and sexo != 'F':
sexo = input('Digite o sexo da pessoa:[M/F] ').upper()
if sexo != 'M' and sexo != 'F':
print('Resposta inválida! Tente novamente.')
else:
if sexo == 'M':
print('Sexo M selecionado com sucesso!')
else:
print('Sexo F selecionado com sucesso!')
s = ''
while s != 'M' and s != 'F':
s = str(input('Digite o seu sexo: ')).upper().strip()
print('fim')
Fiz assim, e achei bom pq economiza linha
Caraca, quebrei a cabeça tentando fazer esse! Mas o Professor nem chegou a citar o "not in". E já não é a primeira vez... Tô desistindo de fazer os exercicios por causa desse tipo de erro.
# um programa que leia o sexo de uma pessoa, mas só aceite F ou M como entrada.
s = ''
while 'm' != s != 'f':
s = input('Qual o sexo [F/M]? ').lower()
if s == 'f':
print('Sexo feminino!')
else:
print('Sexo masculino!')
o problema é que ele ensina uma coisa e depois nos exercicios praticos vc deve fazer uma coisa que nem passa na cabeça.
Fiz o meu diferente.
ind = 0
while ind < 1:
print('-=-='*5)
sexo = str(input('Digite as iniciais do seu sexo: exemplo[F/M]'))
if sexo == 'M' or sexo =='F':
ind = ind + 1
print(f'O seu sexo e: {sexo}')
else:
print('-=-='*5)
print('Digite novamente!!!')
Show cara!
fiz dessa forma e deu certo, creio que não está errado né
-------------------------------------------------------------------------------------------
s = 0
while s != 'M' and s != 'F':
s = str(input('Digite seu sexo [M/F]: ')).upper().strip()
if s == 'M' or s == 'F':
print('Parabens seu sexo foi registrado com sucesso')
else:
print('Tente novamente, sexo não registrado')
Ainda bem que assisti a resolução, se não, teria um infarto. Fiquei batendo na mesma tecla demais kkkk tentei de muitas formas e não estava indo.
Não estava conseguindo fazer, fiquei pensando em ver o código do vídeo mas não desistí e me esforcei mais um pouco para depois fazer o exercício, e olha lá que massa!
Tentativa = input('Qual seu sexo? ').upper().strip()
while Tentativa != 'M' and Tentativa != 'F':
Tentativa = input('Dado incorreto, tenta dnv! ').upper().strip()
print('Sexo "{}" confirmado!'.format(Tentativa))
Esse eu não consegui de primeira. Nenhum exemplo parecido com esse. Deu certo com FOR. Achei difícil. Mas vou treinar outras formas também.
Meu código em Set/2020
Dei uma incrementada um o replace que um dos escritos me ajudou em uma aula passada:
sexo = str(input("Digite seu sexo [ M ] / [ F ]: ")).upper()
while sexo not in "MmFf":
sexo = str(input("< ! > Entrada inválida!
Digite seu sexo: "))
print("Sexo {} validado corretamente!".format(sexo.replace("M", "Masculino") and (sexo.replace("F", "Feminino"))))
Grande abraço
Valeu Professor!!
segue minha solução xD
#faça um programa que leia o sexo de uma pessoa, mas só aceite valores 'M' ou 'F'
# Caso esteja diferente disso, pecá que o usuário aceite sopmente valores correto
control = True
while control == True:
sexo = str(input('Digite "M" ou "F": ')).strip().upper()[0]
if sexo not in 'MmFf':
print('dado inválido')
else:
control = False
print('Resposta registrada com sucesso!')
=== 063 ===
'''Escreva um programa que leia um número n inteiro e mostre na tela os n primeiros elementos
de um sequência de Fibonacci.Ex: 1 - 1 - 2 - 3 - 5 - 8 .'''
cont = 0
anterior = 0
atual = 1
fibonacci = 1
sequencia = ''
n = int(input('Digite um número: '))
while cont < n:
sequencia += str(fibonacci) + " "
fibonacci = atual + anterior
anterior = atual
atual = fibonacci
cont += 1
print('Sequência de Fibonacci: {}'.format(sequencia))
while True:
nome=str(input("digite seu e [M] [F]...")).strip().lower()[0]
if nome in "MmFf":
print("voce digitou corretamente")
else:
print("letra errada")
A resolução dele foi bem melhor, mas fico feliz por ter conseguido fazer sozinho tbm! Essa foi a minha:
i = 0
while i == 0:
gender = input('Digite seu gênero [M/F]: ').strip().upper()
if gender in 'MF':
print(f'Seu gênero é {gender}')
i += 1
else:
print('Por favor, digite um dado válido')
Professor Guanabara. Usei essa forma para chegar ao resultado.
nome = str(input('Digite o seu nome: '))
sexo = str(input('Digite seu sexo [F/M]: ')).strip().upper()[0]
while True:
if sexo == 'M' or sexo == 'F':
print('Bom dia, Sr(a). {}'.format(nome))
print('Sexo selecionado: {}'.format(sexo))
break
else:
sexo = str(input('Opção inválida. Digite seu sexo [F/M]: '))strip().upper()[0]
continue
print()
print('FIM')
Meu ficou maior mas adicionei tmb um terceiro GÊNERO.
masc = 'M'
fem = 'F'
gen = str(input('Digite seu gênero [F - Feminino / M - Masculino / O - Outro]: ')).strip().upper()[0] # Fatiamento de string, Ele só vai exibir a letra no index 0;
while gen not in 'FMO':
gen=str(input('Dados inváidos. Digite uma opção válida [F/M/O]: ')).strip().upper()[0]
if gen == fem:
print('Gênero Feminino registrado com sucesso. Obrigada miga!')
elif gen == masc:
print('Gênero Masculino registrado com sucesso. Valeu campeão!')
else:
print('"Outro" marcado como gênero. Valeu demais.')
Eu consegui fazer o exercicio,só não sabia desse not in
Quebrei a cabeça que só a gota mas consegui criar uma variável de controle. Bem, resolveu o problema, vou assistir ao vídeo agora e ver outra possível solução:
'''
Faça um programa que leia o sexo das pessoas enquanto for igual a M ou F. Caso não seja, repita a pergunta.
'''
controle = ' '
sexo = ''
while sexo != controle:
sexo = str(input('Qual é o seu sexo? ')).upper().replace(' ', '')
if sexo == 'M' or sexo == 'F':
sexo != controle
else:
sexo = controle
print('FIM DO PROGRAMA')
(editado)
Só agora é que prestei atenção no enunciado, que é para repetir a pergunta, pensei que era para encerrar o programa, pura e simplesmente. Ganhei só experiência e aprender a prestar mais atenção na próxima vez.
masc='m'
fem='f'
controle=1
contador=0
while controle!=0:
sexo=input('{}. Digite o seu sexo [M/F]: '.format(contador+1))
contador+=1
if sexo==masc or sexo==fem:
controle=0
print('voce precisou de {} tentativas.'.format(contador))
fiz de uma forma bem mais complexa mas deu certo
Top demais.
fiz totalmente diferente , porem, deu certo .
masc = 0
fem = 0
while (masc < 1) and (fem < 1):
per = str(input('Digite seu sexo [F/M]:')).upper().strip()[0]
if per == 'M':
masc = masc + 1
print('sexo: masculino')
elif per == 'F':
fem = fem + 1
print('sexo: feminino')
else:
print('dados incorretos , tente novamente:')
Eu fiz um loop infinito:
b = str(input('Digite seu sexo: [M/F]')).upper()
while b != 'M' or 'F':
print('Valor inválido, digite novamente.')
if b == 'M' or 'F':
print('Sexo registrado com sucesso!')
eu fiz da seguinte forma e também funcionou: sexo = input('Qual seu sexo [M/F]: ').strip().upper()[0]
while True:
if sexo in 'MmFf':
print('Muito Obrigado, Foi registrado seu sexo!')
break
else:
sexo = input('Por favor selecione uma opçao valida entre [M/F]: ').strip().upper()[0]
Guanabara, obrigado pelo conteudo ate o momento, por gentileza continue esse projeto de pyrthon.
import random
c = 1
while c < 1000:
a = int(input('pense em um numero de 1 a 10:'))
b = random.randint(0, 10)
if a == b:
print('vc acertou, precisou de', c ,'chances' )
break
elif a != b:
print('tente de novo')
c += 1
print('parabens')
Fiz assim:
sexo = "m"
while True:
sexo = input("Digite seu sexo [M ou F]: ").lower().strip()
if sexo != "m" and sexo != "f":
print("Opção errada, digite novamente!")
else:
print(f"Obrigado!")
break
Boa, cumpriu o que pede a questão. Porém, o sexo = "m" lá no inicio é desnecessário, seu código vai rodar sem precisar dele.
@@MVnegao01 realmente meu amigo, muito obrigado, o toque foi importante pra otimizar meu código!
Bom vídeo Guanabara!
Para que o programa leia APENAS as letras mencionadas, tire o "[0]". Uma coisa que o professor não disse é que, inserindo esse argumento, o programa aceitará qualquer palavra que comece com a inicial 'F' ou 'M'. Você pode usar tanto o "while not in" como também operadores lógicos para resolver. É recomendado ver o curso de lógica de programação para não se perder nos exercícios. Talvez esse vídeo seja tão antigo que antigamente usar [0] seria útil, ou então era um comando antigo como o ".format".
Enquanto montava meu programa reparei que utilizar o not in gera um problema de conjunto vazio. Porque '' está dentro de 'MmFf' já que um conjunto vazio está dentro de um conjunto preenchido.
Por exemplo: no caso do programa feito pelo professor Guanabara se o usuário apenas der enter, gerando um conjunto vazio, o programa pula o while e diz " Sexo registrado com sucesso ".
Por isso o mais adequado para essa questão é usar uma comparação sexo != 'M' and sexo !='F', já que foi captado o sexo com upper()
gostaria de parabenizar pelo esforço de fazer isto para a gente que não tem conhecimento de Python nenhum porem ao mesmo tempo tenho que criticar muito sobre o monte de programas que estão errados tipo esse aqui ou tipo aquele que contava da cidade que começa com santos ou ate daquele que verificava se silva era um sobrenome todos tem o mesmo erro se no programa de silva tu colocava silvana ele achava que teu nome tinha silva e não eh mesma coisa ter silva que silvana mesmo erro aqui se tu colocar por exemplo mf ele iria dar mensagem que você cadastro com sucesso porem não esta certo. A programação precisa de um nível estrito de exatidão para que as coisas rodem do jeito que devem rodar...programas tao elementares com erros como esse só podem gerar pessoal que no melhor dos casos acabara criando códigos que rodem cheios de bugs e essa não eh a ideia. Gustavo você precisa de ser mais estrito com os códigos já que ainda que aparentemente tudo esta funcionando e muitos podem não perceber os erros eles existem e são extremamente grosseiros principalmente se são cometidos por alguém que oferece avaliações e certificação já que; com que critério alguém que deixa tanto ponto solto num programa elementar pode avaliar os outros se nem os exemplos que coloca estão bem feitos? sei que tu pode dizer que a critica é dura mas mesmo que tu disse sempre "não copie códigos dos outros que não existe vaga de copiador de código" também tem que ter claro que ninguém vai contratar um programador que crie código cheio de erros ou que rode uma coisa e obtenha resultados incoerentes e muitos dos teus programas estão nesse nível
Fiz o meu diferente, assim ele não só valida se o sexo está certo ou errado, como pergunta se deseja sair ou lançar novamente
fim = 'S'
while fim not in 'N':
sexo = str(input('Qual o seu sexo? [M/F] ')).upper().strip()[0]
if sexo == 'F' or sexo == 'M':
fim = str(input('Deseja lançar outro sexo? [S/N] ')).upper().strip()[0]
else:
print('O sexo escolhido não confere, tente de novo! ')
fim = str(input('Deseja tentar novamente? [S/N] ')).upper().strip()[0]
num é uma coisa assim q se diga
nossa q validaçao, mais bem validada
mas é uma validaçao
pesquisei apenas como faz o break
hm = 'm'
mh = 'f'
while True:
per = str(input('digite o sexo [m/f]')).lower()
if per == hm or per == mh:
print('dado registrado com sucesso')
break
print('resposta incorreta tente novamente:
...')