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.
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
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"))
@@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!
@@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.
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
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
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]
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.')
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.
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.')
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.
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')
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))
6 лет назад+12
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
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!")
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
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}")
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
É 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...
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')
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}!')
@@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.
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] ')
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
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.')
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!=)
# 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.
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))
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.
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.')
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!!!
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!')
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')
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)
É 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 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!')
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 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()
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
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!!
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.
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!!
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))
Oi, sou iniciante, estou adorando o curso. Está sendo minha primeira linguagem. Eu achei que a resolução desse exercício poderia ter algumas falhas na questão de validação dos dados. Por exemplo, se a pessoa digitar "macho", "Marceline", "Marcelo", "Marcia", "Fernando", etc, o programa vai registrar apenas a primeira letra, tendo assim um erro no banco de dados. Eu resolvi fazendo uma confirmação para o dado registrado. Eu não sabia se while dentro de while funcionaria, mas pela lógica, era para funcionar HIUASHDIUHASUDH confirmar = 'N' sexo = str(input('Digite seu sexo: [F/M] ')).strip().upper()[0] print() if sexo in 'MF': if sexo == 'M': print('Sexo MASCULINO registrado com sucesso.') confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0] print() if sexo == 'F': print('Sexo FEMININO registrado com sucesso.') confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0] print() if confirmar == 'S': print('Obrigado por participar da nossa pesquisa!') else: while sexo not in 'MF': while confirmar != 'S': sexo = str(input('Dados não registrados. Por favor, digite seu sexo: [F/M] ')).strip().upper()[0] print() if sexo == 'M': print('Sexo MASCULINO registrado com sucesso.') confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0] print() if sexo == 'F': print('Sexo FEMININO registrado com sucesso.') confirmar = str(input('O sexo registrado está correto? [S/N]')).strip().upper()[0] print() print('Obrigado por participar da nossa pesquisa.')
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))
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':
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')
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!!!')
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')
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')
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....")
=== 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))
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!')
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".
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")
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
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
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()
Fala Gugu!! Cara, vim parar aqui pq recebi a notificação de novo vídeo. Como sei que seus cursos são f...darásticos, tenho a pretensão de cursar Phyton, porém ainda estou terminando Java. E a propósito, Parabéns, Man!!! Mas pra não perder o time - me desculpe se já tiver abordado o tema - vc poderia falar sobre o framework Kivy, que permite o desenvolvimento multiplataforma em Python. Wlw, tmj!!!
minha solução é um pouquinho diferente: genero = str(input('Informe seu genero[F/M]: ')).strip().upper()[0] while 'M' != genero != 'F': genero = tentativa = str(input('Informe o genero correto: ')).strip().upper()[0]
Eu usei uma abordagem diferente. No meu programa só aceita 'M' ou 'F'. Essa alternativa que o prof. Guanabara mostrou, o programa aceitaria qualquer palavra que começasse com M ou F (mochila ou farinha, por exemplo). O meu ficou assim: print(' '*16, 'DESAFIO 57', ' '*16) ''' Ler sexo. Aceitar apenas H ou M. Identificar valor inválido. ''' print('Cadastro de Candidatos'.center(42)) sex = 'Blank' cnh = 'Blank' print() fullname = str(input('Nome completo: ')).title().strip() names = fullname.split() while sex != 'H' and sex != 'M': sex = str(input(f'Qual o sexo de {names[0]} [H/M]: ')).strip().upper() while cnh != 'A' and cnh != 'B': cnh = str(input('Tipo de CNH [A/B]: ')).strip().upper() print() print(f'\033[1mO cadastro de {names[0]} foi concluído com sucesso.\033[m')
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')
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.')
esses vídeos foram extremamente úteis pra mim aprender a minha primeira linguagem de programação. obrigado @Cursoemvideo && @GustavoGuanabara
4 года назад
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]
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')
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]!!!')
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: ...')
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!')
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.
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
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!
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
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
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
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.
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
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.
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.
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))
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
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
esse foi o unico exercicio dessa lista que eu consegui fazer
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
Começei semana passada, aula 9, to gostando muito, caminho meio longo
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}")
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
É 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...
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')
cara seu método de ensino é muito bom, suas aulas estão me ajudando muito:)
Continua que é sucesso!!
Bom exercicio Teta, continue assim
While é meu ponto fraco, voltei a estudar agora, comprei um curso na udemy e foi a mesma coisa. Espero aprender com o tio Guanabara
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.
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] ')
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
Sem dúvida o melhor professor da internet!!!
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.
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!=)
# 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.
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
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!
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.')
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
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!')
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
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')
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 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
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.
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()
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
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
Esse eu não consegui fazer sozinho! o While not eu não tinha prestado atenção...
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!!
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.
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"..
Guanabara, obrigado pelo conteudo ate o momento, por gentileza continue esse projeto de pyrthon.
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!
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))
Engraçado que se o usuário digitar 'mulher' registra o sexo masculino kkkkkkkkkk
Eu sempre esqueço o fatiamento! fica bem mais simples, ficou mais longo, porem cumpriu com o pedido
Fiz errado e acabei criando um 'loop infinito'...
Oi, sou iniciante, estou adorando o curso. Está sendo minha primeira linguagem.
Eu achei que a resolução desse exercício poderia ter algumas falhas na questão de validação dos dados.
Por exemplo, se a pessoa digitar "macho", "Marceline", "Marcelo", "Marcia", "Fernando", etc, o programa vai registrar apenas a primeira letra, tendo assim um erro no banco de dados.
Eu resolvi fazendo uma confirmação para o dado registrado.
Eu não sabia se while dentro de while funcionaria, mas pela lógica, era para funcionar HIUASHDIUHASUDH
confirmar = 'N'
sexo = str(input('Digite seu sexo: [F/M] ')).strip().upper()[0]
print()
if sexo in 'MF':
if sexo == 'M':
print('Sexo MASCULINO registrado com sucesso.')
confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0]
print()
if sexo == 'F':
print('Sexo FEMININO registrado com sucesso.')
confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0]
print()
if confirmar == 'S':
print('Obrigado por participar da nossa pesquisa!')
else:
while sexo not in 'MF':
while confirmar != 'S':
sexo = str(input('Dados não registrados. Por favor, digite seu sexo: [F/M] ')).strip().upper()[0]
print()
if sexo == 'M':
print('Sexo MASCULINO registrado com sucesso.')
confirmar = str(input('O sexo registrado está correto? [S/N] ')).strip().upper()[0]
print()
if sexo == 'F':
print('Sexo FEMININO registrado com sucesso.')
confirmar = str(input('O sexo registrado está correto? [S/N]')).strip().upper()[0]
print()
print('Obrigado por participar da nossa pesquisa.')
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))
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.
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':
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')
Eu consegui fazer o exercicio,só não sabia desse not in
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.
Bom vídeo Guanabara!
Top demais.
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!
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')
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')
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....")
=== 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))
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!')
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".
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
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")
num é uma coisa assim q se diga
nossa q validaçao, mais bem validada
mas é uma validaçao
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
Obrigado
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
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()
muito mais simples do que estava fazendo
Bom vídeo. 🙂
Muito bom eu aprendi muito co essa aula
Parabéns!!!!
Fala Gugu!! Cara, vim parar aqui pq recebi a notificação de novo vídeo. Como sei que seus cursos são f...darásticos, tenho a pretensão de cursar Phyton, porém ainda estou terminando Java. E a propósito, Parabéns, Man!!! Mas pra não perder o time - me desculpe se já tiver abordado o tema - vc poderia falar sobre o framework Kivy, que permite o desenvolvimento multiplataforma em Python. Wlw, tmj!!!
minha solução é um pouquinho diferente:
genero = str(input('Informe seu genero[F/M]: ')).strip().upper()[0]
while 'M' != genero != 'F':
genero = tentativa = str(input('Informe o genero correto: ')).strip().upper()[0]
Muito bom, mesmo..
Eu usei uma abordagem diferente. No meu programa só aceita 'M' ou 'F'. Essa alternativa que o prof. Guanabara mostrou, o programa aceitaria qualquer palavra que começasse com M ou F (mochila ou farinha, por exemplo). O meu ficou assim:
print(' '*16, 'DESAFIO 57', ' '*16)
'''
Ler sexo. Aceitar apenas H ou M. Identificar valor inválido.
'''
print('Cadastro de Candidatos'.center(42))
sex = 'Blank'
cnh = 'Blank'
print()
fullname = str(input('Nome completo: ')).title().strip()
names = fullname.split()
while sex != 'H' and sex != 'M':
sex = str(input(f'Qual o sexo de {names[0]} [H/M]: ')).strip().upper()
while cnh != 'A' and cnh != 'B':
cnh = str(input('Tipo de CNH [A/B]: ')).strip().upper()
print()
print(f'\033[1mO cadastro de {names[0]} foi concluído com sucesso.\033[m')
Muito obrigado!
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')
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.')
esses vídeos foram extremamente úteis pra mim aprender a minha primeira linguagem de programação. obrigado @Cursoemvideo && @GustavoGuanabara
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]
Eu acho que ele deveria tem ensinado esse not in na aula, pois eu nem sabia que existia.
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')
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]!!!')
Melhor professor ...
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:
...')
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!')
Mestre!