Exercício Python

Поделиться
HTML-код
  • Опубликовано: 30 янв 2025

Комментарии • 256

  • @yasmindossantosrodrigues5705
    @yasmindossantosrodrigues5705 5 лет назад +203

    Guanabara, você mudou a história contemporânea da tecnologia na vida de pessoas de baixa renda em um país subdesenvolvido que é o Brasil. Deus tem orgulho de ti!

    • @pretadesouza2011
      @pretadesouza2011 3 года назад +16

      vdd, graças a ele virei garota de programa, amo programar!!

    • @rahem3977
      @rahem3977 3 года назад

      @@pretadesouza2011 Kkkkkkkkkk moça??????

    • @icaroviniciussouzasilva4527
      @icaroviniciussouzasilva4527 3 года назад

      @@pretadesouza2011 oxe kkkkk

    • @brasiliano3201
      @brasiliano3201 2 года назад +1

      @@pretadesouza2011 Quanto é o programa? Qual o tipo de linguada? Digo, linguagem?

  • @filiperodrigues3853
    @filiperodrigues3853 2 года назад +25

    Eu comecei este curso pq eu queria fazer física e me disseram que era bom ter noção de programação para usar na faculdade. Mas acabou que eu amei tanto programação, que mudei de curso, hoje faço Ciência da Computação na UEL. Obrigado Guanabara!!!

  • @kalebeoliveira8135
    @kalebeoliveira8135 5 лет назад +8

    Professor Guanabara, todo início de aula você fala sobre o andamento do curso, outros cursos e sobre outros assuntos e isso dura em média 2 a 3 minutos. Geralmente nos vídeos de outras pessoas eu pulo essas partes imediatamente, mas o seu marketing nessas partes introdutórias é tão bom que eu faço questão de assistir todas.
    Com isso, consigo aprender até marketing no início dos seus vídeos.
    Parabéns a você e a toda sua equipe!

  • @EZEQUIELZK
    @EZEQUIELZK 5 лет назад +31

    Aeee, os exercícios de Python tá na área novamente. haha ! ❤️

  • @umcara6286
    @umcara6286 5 лет назад +280

    Oi Guanabara, a gente já tá há bastante tempo só no console, você vai fazer um vídeo sobre interface gráfica algum dia? Talvez tkinter?

  • @no_kurisu_allowed
    @no_kurisu_allowed 4 года назад +66

    Gente, vou deixar uma dica pra quem quiser.
    > O laço while aceita o comando 'else:', mas ele só se ativa quando o laço termina "naturalmente";
    > Assim, se vc usar o comando 'break', não é possível ativar o 'else:', porque o laço estaria terminando de maneira "forçada";
    > Como então sair de um laço while sem usar o break?? Você pode usar uma variável de controle de tipo booleano (True or False)
    > Exemplificando:
    controle_do_while = True
    while controle_do_while:
    [BLOCO DE CÓDIGO]
    opcao = str(input('Deseja continuar? [S/N]'))
    if opcao == 'N':
    controle_do_while = False
    > Exemplificando acima de forma bem genérica, o laço termina "naturalmente" e você pode acrescentar o 'else:'
    controle_do_while = True
    while controle_do_while:
    [BLOCO DE CÓDIGO]
    opcao = str(input('Deseja continuar? [S/N]'))

    if opcao == 'N':
    controle_do_while = False
    else:
    [BLOCO DE CÓDIGO 2]
    Espero que isso seja util pra alguem hehe

    • @caiopalitot8458
      @caiopalitot8458 Год назад +1

      Meu Deus, e como ajudou!! MUITO OBRIGADO. Eu sempre criava outro loop dentro!

  • @guanabaradebonechefedomorr7318
    @guanabaradebonechefedomorr7318 5 лет назад +59

    caralho, esse curso de python tá maior que cursos pagos
    assim que é bom :D
    Obrigado, Guanabara.

    • @GodIcarus
      @GodIcarus Год назад +1

      Só que é incompleto né kkkkkk

  • @rafasantos23
    @rafasantos23 5 лет назад +15

    *10:24*
    Outra solução para retornar o menu seria utilizado a função _enumerate_
    for i,v in enumerate(lista):
    print(f'{i} - {v}')

  • @lucasmelo3475
    @lucasmelo3475 2 года назад +1

    Coloca os videos do desafio 115 na playlist do mundo 3, mito. Assim o video não fica "perdido".
    Em tempo, obrigado por essas aulas, Guanabara e parceiros, curso de muita qualidade!

  • @wesley123427
    @wesley123427 3 года назад

    Muito legal, eu conseguir fazer quase tudo, só não conseguir salvar o resto, fiz tudo corretamente com o conteúdo até aqui, muito obrigado Guanabara!

  • @walterobrien9416
    @walterobrien9416 5 лет назад +1

    SUPER LIKE !!!
    TOP DEMAIS ...

  • @ZerikTds
    @ZerikTds 9 месяцев назад +1

    Uma dica é não usar o if para as opções use o comando match, o match se aplica a um variavel, exemplo
    match num:
    case 1:
    print('opção 1')
    case 2:
    print('opção 2')

  • @moacirsouza
    @moacirsouza 4 года назад +1

    Guanabara, nenhuma das partes do exercício 115 está listada lá na Playlist do Mundo 3. Esses são os únicos vídeos que estão falando por lá.
    Grande abraço e parabéns novamente pelo excelente trabalho!

  • @thiagomoura4520
    @thiagomoura4520 4 года назад

    Muito legal, você também pode também importar do exercício a validação de leiaInt, também está fazendo a reutilização de código.

  • @maverickvortex
    @maverickvortex 5 лет назад +2

    Eu fiz essa primeira parte, porém o código do professor Guanarabara ficou melhor. Por isso, estou usando algumas técnicas que ele utilizou e adaptar para minha solução.

  • @misael4738
    @misael4738 5 лет назад +6

    Pensei que já havia terminado o curso de Python, mas que surpresa.

  • @vitorhugo-pd5zy
    @vitorhugo-pd5zy 4 года назад

    esse curso é excepcional!

  • @Maureol1
    @Maureol1 4 года назад

    Ficou fácil pois entendi tudo que foi ensinado até agora!!!!

  • @Maestriagrupo
    @Maestriagrupo 2 года назад

    show de bola guanabara nota 10!
    nesse código ai se você der um KeyInterrupt, ele está retornando 0 e caindo no loop infinito denovo, rs eu alterei la no 'LeiaInt' para retornar '3' dai ele cai na opção de encerramento!

  • @linux_jeff
    @linux_jeff 8 месяцев назад

    Bom vídeo. 🙂

  • @SergioElias
    @SergioElias 2 года назад

    Amanha (Domingo 20-02-22) Guanabara vai estar no Domingão do Hulk - tenho orgulho desse cara!.. Parabéns Guanabara!

  • @carlosleter
    @carlosleter 2 года назад +8

    Passando aqui para informar que a forma que o Guanabara está passando modularização não é recomendada para criação de sistemas de verdade, mas para fins educacionais não tem problema.

  • @geopoliticaavancada3491
    @geopoliticaavancada3491 5 лет назад +7

    Putz Guanabara, como queria q vc fizesse um curso de C++ tbm.
    não tem um curso q preste na Udemy igual aos que vc dá aqui.
    Quase todos ignoram a importância da parte teorica.
    Honestamente, eu estaria até disposto a pagar!

    • @alexf.pereira3803
      @alexf.pereira3803 4 года назад

      Dá uma olhada no Estudonauta.com bro, espa tem esse curso lá!

    • @aupaca
      @aupaca 3 года назад

      Eu estou fazendo dois cursos esse de python e um de C++ no canal do Fessor Bruno, ele pode até não ter o jeito que o Guanabara explica, mas explica muito bem

    • @GodIcarus
      @GodIcarus Год назад

      Tá falando bosta, lá tem um monte de curso excelente, inclusive estou empregado na área graças as certificações de lá pq o Guanabara nunca trata de conteúdos avançados

  • @Daniel_Melo01
    @Daniel_Melo01 Год назад

    Demorei 1 dia e meio pra poder fazer esse exercicio, mas consegui finalmente

    • @geraldoaparecido594
      @geraldoaparecido594 Год назад

      Eae jovem, aprendeu a programar???
      Aprendeu a fazer jogos e aplicativos??
      Pode me dizer, por favor.

  • @williamssousa7643
    @williamssousa7643 5 лет назад +15

    Amo muito python...ainda vai ter mundo 4???.....quem quer deixa o like ...

    • @fabiobarreto6083
      @fabiobarreto6083 5 лет назад +1

      Vai ter o 4 e 5, ele afirmou em aulas passadas

    • @williamssousa7643
      @williamssousa7643 5 лет назад +1

      Serioo???....nossssaaaaa

    • @walter9779
      @walter9779 5 лет назад

      Estou aguardando ansioso os novos mundos ... Este curso é fantástico, o único problema é a demora excessiva em lançar conteúdo novo .

    • @JVictorCarvalho1
      @JVictorCarvalho1 2 года назад +2

      o ano é 2022 e ainda n tem mundo 4 e nem o 5 kkkkkk (rindo de tristeza mesmo)

    • @JULES-el1ly
      @JULES-el1ly Год назад +1

      @@JVictorCarvalho1 estamos em 2023 e nadaaa

  • @wanderwilson
    @wanderwilson 4 года назад

    Sensacional!!!

  • @saxvilao
    @saxvilao 4 года назад

    Ufa!!!!!! Parabéns!!

  • @just_Ro
    @just_Ro 3 года назад +2

    8:39 Por acaso eu consegui criar o programa todo de uma vez, depois corri e funcionou :D No final ajustei a 'interface' no terminal para ficar melhor formatado.

    • @just_Ro
      @just_Ro 3 года назад +1

      Bem, na verdade primeiro tive que ir pesquisar manipulação de ficheiros de texto, só depois criei o código.

  • @catrashi1
    @catrashi1 5 лет назад

    Continuando o aprendizado.

  • @PedroHenrique-or4rb
    @PedroHenrique-or4rb 5 лет назад +25

    Continua em peso, e ensina a gente o tkinter

    • @ALESXANDRO2009
      @ALESXANDRO2009 5 лет назад +2

      cara eu tenho visto esses videos aqui e tem me ajudado muito
      ruclips.net/video/e2SKXBALAws/видео.html

    • @allandiego1446
      @allandiego1446 5 лет назад +2

      Tkinter nem é usado em aplicações reais hoje em dia é muito limitado, e o professor vai ensinar django em alguma das suas aula ele fala sobre isso

  • @rodrigoalmeida3932
    @rodrigoalmeida3932 5 лет назад +2

    Um dia chego nesse exercício hehe

  • @franciomarsouza3215
    @franciomarsouza3215 5 лет назад

    Excelente!

  • @smartplanilhas1135
    @smartplanilhas1135 5 лет назад

    Dalee Guanabara... Grato!

  • @michellevillaca1307
    @michellevillaca1307 2 месяца назад

    (Comentando antes de ver o vídeo):
    Eu consegui fazer o menu, tudo bonitinho, cadastrar pessoas em dicionário e lista, mas obviamente não consegui fazer o negócio salvar permanentemente kkkkk vamos ver a resolução pra ver se eu fiz mais ou menos como era esperado!

  • @melkdesousa
    @melkdesousa 5 лет назад +4

    Tão bom, vendo os vídeos de python voltando!!!!!
    Nos próximos mundo, trabalha com VS Code ao invés do PyCharm.

    • @LuisSoares01
      @LuisSoares01 3 года назад +2

      Essa parte de pacotes não estou conseguindo fazer no VS code, no pycharm parece ser mais fácil, pode me ajudar?

  • @lucastavares4888
    @lucastavares4888 4 года назад

    Obrigado. :D

  • @caioperes6876
    @caioperes6876 5 лет назад +1

    Eu sei que o tema é Python, mas será que poderia fazer um vídeo sobre Regex no javascript? É um tema muito importante e carente de material bem explicado.

  • @guilherme10119
    @guilherme10119 23 дня назад

    Bom,já estamos no antepenúltimo exercício😢,o tempo passa rápido quando nós divertirmos.. .Fiz o exercício completo antes de ver os vídeos de exercícios ,então saiu de uma forma completamente diferente da do Guanabara.Irei assistir os vídeos para ver a solução do Guanabara,já testei tudo e ta
    tá tudo certinho,lá no
    último vídeo de exercício irei colocar a minha solução.

  • @fabianopereira2172
    @fabianopereira2172 5 лет назад

    Olá Gustavo Guanabara, comecei a fazer o curso esse ano e, já estou completando o mundo 2 , estou querendo tirar um certificado do mundo um mais ainda está indisponível

  • @playerdaddy3324
    @playerdaddy3324 11 месяцев назад +3

    Algumas coisas eu não sabia como fazer, aí tive que pesquisar na web, mas fui pensando na lógica e pesquisando como fazia. Cabe mais alguns tratamentos de erro mas de princípio ficou assim. E claro, simplificar o código utilizando a modularização. Na função ver database tem essa repetição de código pois por algum motivo depois da formatação o loop for não estava rodando.
    cadastro_com_db():
    cores = {"vermelho": '\033[0;31m',
    "verde": '\033[0;32m',
    "azul-claro": '\033[0;36m',
    "cinza": '\033[0;37m',
    "roxo": '\033[0;35m',
    "amarelo": '\033[0;33m',
    "termina": '\033[m'}
    try:
    with open('database.txt', 'r') as db:
    db = db
    except FileNotFoundError:
    with open('database.txt', 'w') as db:
    db = db
    def ver_database():
    with open('database.txt', 'r') as db:
    print(f"{cores['roxo']}{61 * '-'}")
    if len(db.read()) == 0:
    print(20 * ' ', 'Não possui Cadastros')
    print(61 * '-', cores["termina"])
    return cadastro_com_db()
    print(20 * ' ', 'Pessoas Cadastradas')
    print(61 * '-', cores["termina"])
    with open('database.txt', 'r') as db:
    for linha in db.readlines():
    linha = linha.strip()
    print(f"{cores['azul-claro']}{linha[:linha.find(';')]}".ljust(40),
    f"{linha[linha.find(';') + 1:]} Anos{cores['termina']}")
    return cadastro_com_db()
    def cadastrar_pessoa():
    print(f"{cores['roxo']}{61 * '-'}")
    print(25 * ' ', 'CADASTRO')
    print(61 * '-', cores["termina"])
    nome = input(f'{cores["azul-claro"]}Digite seu nome: ')
    idade = input('Digite sua idade: ')
    with open('database.txt', 'a+') as db:
    # db.seek(0)
    database = db.read()
    # if nome != unidecode.unidecode(database):
    # print('Acentos ou caractéres especiais não são permitidos, tente novamente.')
    # return cadastrar_pessoa()
    if nome.lower() in database.lower():
    print(f'{cores["vermelho"]}Esse nome já existe, tente novamente.{cores["termina"]}')
    return cadastrar_pessoa()
    nome = nome.title()
    db.write(nome + ';' + idade + '
    ')
    print(f'{cores["verde"]}{nome} foi cadastrado(a) com sucesso.{cores["termina"]}')
    return cadastro_com_db()
    # Escolha do usuário
    print(f"{cores['roxo']}{61 * '-'}")
    print(22 * ' ', 'Menu Principal')
    print(61 * '-', cores["termina"])
    choice = int(input(f'{cores["azul-claro"]}1 - Ver Tabela de Cadastro'
    f'
    2 - Cadastrar Pessoa'
    f'
    3 - Sair{cores["termina"]}'
    f'
    {cores["roxo"]}{61 * "-"}{cores["termina"]}'
    f'
    {cores["amarelo"]}Escolha uma ação: {cores["termina"]}'))
    if choice == 3:
    print()
    print(f'{cores["vermelho"]}Saindo', end='')
    for sec in range(0, 3):
    time.sleep(1)
    print('.', end='')
    print()
    return
    elif choice == 1:
    return ver_database()
    elif choice == 2:
    return cadastrar_pessoa()
    cadastro_com_db()

  • @charadaloko6907
    @charadaloko6907 5 лет назад

    Nossa que bom mais exercícios,vai lança novas aulas?

  • @MuriloGamerDBR
    @MuriloGamerDBR 5 лет назад

    Que exercício Top em

  • @ivanilsonmelo286
    @ivanilsonmelo286 3 года назад

    Estamos terminando ...

  • @leticiasm2127
    @leticiasm2127 5 лет назад

    Faz aula de criação de jogo

  • @mekyleibelchior5624
    @mekyleibelchior5624 5 лет назад +7

    sistema/lib/interface/__init__.py
    def cores(cor='sem'):
    """
    → Função para formatação de cores
    :param cor: a ser aplicada
    :return: a cor
    """
    cores = {
    'sem': '\033[m', # 0 - sem cor
    'branco': '\033[1;30m', # 1 - branco
    'vermelho': '\033[1;31m', # 2 - vermelho
    'verde': '\033[1;32m', # 3 - verde
    'amarelo': '\033[1;33m', # 4 - amarelo
    'azul': '\033[1;34m', # 5 - azul
    'roxo': '\033[1;35m', # 6 - roxo
    'magenta': '\033[1;36m', # 7 - magenta
    'cinza': '\033[1;37m' # 8 - cinza
    }
    return cores[cor]
    def linha(tm=50, simb='-'):
    """
    → Função para criar uma linha
    :param tm: tamanho da linha
    :param simb: símbolo para formação da linha
    :return: a linha
    """
    return print(simb * tm)
    def cabecalho(texto, tm=50):
    """
    → Função para inserir um cabeçalho
    :param texto: do cabeçalho
    :param tm: quantidade de caracterestes
    """
    linha()
    print(f'{texto.center(tm)}')
    linha()
    def leia_int(texto):
    """
    → Funcção para validar números inteiros.
    :param texto: a ser exibido ao usuário
    :return: um número inteiro
    """
    try:
    valor = int(input(texto))
    if valor < 0:
    raise ValueError
    except (ValueError, TypeError):
    print(f'{cores("vermelho")}Valor inválido. Digite um número inteiro!{cores("sem")}')
    return leia_int(texto)
    except:
    print(f'
    {cores("vermelho")}O usuário preferiu não digitar esse número!{cores("sem")}')
    return 0
    else:
    return valor
    def leia_texto(texto):
    try:
    texto = str(input(texto)).strip()
    except:
    print(f'
    {cores("vermelho")}O usuário decidiu finalizar o processo via comando de teclado.{cores("sem")}')
    exit(0)
    else:
    txt = texto.split()
    novo_texto = ''
    for t in txt:
    novo_texto += t
    if not novo_texto.isalpha():
    print(f'{cores("vermelho")}Valor inválido. Digite um nome válido!{cores("sem")}')
    return leia_texto(texto)
    else:
    return texto
    def menu(lista):
    """
    → Função para exibir o menu principal.
    :param lista: com os itens que compõem o menu
    :return: a opção escolhida
    """
    cabecalho('MENU PRINCIPAL')
    for p, i in enumerate(lista):
    print(f'{cores("amarelo")}{p + 1} - {cores()}{cores("azul")}{i}{cores()}')
    linha()
    op = leia_int(f'{cores("verde")}Sua opção:{cores()} ')
    return op
    sistema/lib/processo/__init__.py
    from sistema.lib.interface import cores, leia_int, leia_texto
    def dados_pessoa():
    """
    →Função para obter os dados da pessoa
    :return: o nome e idade da pessoa
    """
    nome = leia_texto('Nome: ')
    idade = leia_int('Idade: ')
    return nome, idade
    def cadastrar(nome, idade):
    """
    → Função para cadastrar pessoas.
    :param nome: da pessoa
    :param idade: da pessoa
    """
    import os.path as file
    try:
    if file.exists('Cadastros.txt'):
    arquivo = open('Cadastros.txt', 'a')
    arquivo.writelines([nome, ';', str(idade)])
    arquivo.write('
    ')
    else:
    arquivo = open('Cadastros.txt', 'w')
    arquivo.writelines([nome, ';', str(idade)])
    arquivo.write('
    ')
    arquivo.close()
    except:
    print(f'{cores("vermelho")}Erro ao manipular o arquivo de dados. Tente novamente!{cores("sem")}')
    else:
    print(f'Novo registro de {cores("branco")}{nome}{cores("sem")} adicionado.')
    def listar():
    """
    → Função para listar os cadastros existentes no arquivo de dados.
    """
    try:
    arquivo = open('Cadastros.txt', 'r')
    linhas = arquivo.readlines()
    for linha in linhas:
    pessoa = linha[:-1].split(';')
    print(f'{pessoa[0]:

  • @joelinux2184
    @joelinux2184 5 лет назад

    Likou professor

  • @amandaazevedo4553
    @amandaazevedo4553 2 года назад

    nossa 2019, bora pro mundo 4

  • @devarthurreis
    @devarthurreis 5 лет назад

    Eu fiz utilizando o sqlite é um pouco mais complexo, mas não é nada impossível!

  • @anabeatrizdesouza6063
    @anabeatrizdesouza6063 2 года назад

    Muito obrigada, só tenho uma pergunta: se eu quiser mudar o último número das opções do menu para 0, como eu faço?

  • @jpgestaosoftware
    @jpgestaosoftware 4 года назад

    galerinha que sofre com a questão das cores no #VSCODE VS CODE utilize o seguinte:
    import colorama
    colorama.init()
    eu utilizei dentro da interface.py

  • @lokevir
    @lokevir 5 лет назад

    Guanabara, começa a usar interface gráfica agoraa! tipo, pygame e entre outros plugins como pyautogui, manipulador de imagens e entrar em um mundo mais complexo! sabe?

  • @joaomatheus7081
    @joaomatheus7081 4 года назад +3

    Desafio 115A
    Programa principal
    from pasta import menu
    menu()
    Dentro de pasta
    def linha(msg):
    print('-' * 50)
    print(f'{msg}')
    print('-' * 50)
    def inteiro(num):
    while True:
    try:
    valor = int(input(num))
    except (TypeError, ValueError):
    print('\033[31m Erro, tente de novo. \033[m')
    except (KeyboardInterrupt):
    print('\033[31m Usuário não quis digitar. \033[m')
    return 0
    else:
    return valor
    def menu():
    from time import sleep
    while True:
    linha(f'{"Menu Principal":>32}')
    print('\033[33m1 - \033[32mVer pessoas cadastradas')
    print('\033[33m2 - \033[32mCadastrar nova Pessoa')
    print('\033[33m3 - \033[32mSair do Sistema \033[m')
    print('-' * 50)
    opcao = inteiro('\033[36mDigite a sua opção: \033[m')
    if opcao 3:
    print('Erro')
    elif opcao == 1:
    linha(f'{"Opção 1":>28}')
    elif opcao == 2:
    linha(f'{"Opção 2":>28}')
    else:
    print('Saindo do Programa...')
    sleep(1)
    print('Volte Sempre !')
    exit()

  • @wildBr4587
    @wildBr4587 5 лет назад

    CARA, que saudade

  • @rodrigomilli4786
    @rodrigomilli4786 5 лет назад

    Gustavo, qual a grade que você criaria para uma turma de Sistemas de Informação? Do 1º período ao 8º período.

  • @Firez_0
    @Firez_0 5 лет назад +2

    Eu só queria um PC pra praticar essas aulas

    • @ChannelboxSandbox
      @ChannelboxSandbox 5 лет назад

      vc pode usar a internet pra programar

    • @PRISMOVITO
      @PRISMOVITO 5 лет назад

      Celular da pra programar em python mano,só é mais chato,mais da!

    • @saulofelipe265
      @saulofelipe265 5 лет назад

      Tou quase no exercicio 70 só pelo celular.

    • @misael4738
      @misael4738 5 лет назад

      Tem um app para android, aula 5.

    • @Firez_0
      @Firez_0 5 лет назад

      @@PRISMOVITO eu usava o termux só que não tem todos função do pc

  • @emanoeldelfino7054
    @emanoeldelfino7054 4 года назад +1

    A função do menu não precisava da variável de contador, podia simplesmente usar um enumerate:
    def menu(lista):
    cabeçalho('MENU PRINCIPAL')
    for num, item in enumerate(lista, 1):
    print(f'\033[33m{num}\033[m - \033[34m{item}\033[m')
    print(linha())
    opc = leia_int('\033[32mSua opção: \033[m')
    return opc
    # Repositório com os exercícios que fiz em github.com/emanoeldelfino/pycev

  • @israelqueiroz3752
    @israelqueiroz3752 5 лет назад

    Tentei fazer em vez de copiando a def leiaint para o init do ex115, usando o import lá do 113, porém só de ter o import, quando eu rodava ele ignorava as funções menu e cabeçalho e rodava o programa do leiaint leiafloat etc... ou seja, rodava o ex113.
    Depois que deixei de importar e colei a def leiaint, funcionou bem, mas tá com um problema que já aparece desde o início desse exercício: está aparecendo tudo duplicado, eu dou run no programa e ele roda duas vezes sempre.

  • @JOAGOSTINI
    @JOAGOSTINI 4 года назад

    Olá, ao tentar fazer um sistema de verificação de erros para o continuar ou não no programa, percebi que ao digitar enter saie-se do programa automaticamente. Tentei, mas não consegui, encontrar um meio de fazer com que ao se digitar 'Enter' o programa respondesse 'Tecla errada. Tente outra vez.' mão não consegui lidar com o 'Enter' ou . Usei o expediente tecla = str(input('Continua? [S/N] '); if not tecla: continue, mas de nada adiantou. Obrigado por qq sugestão. Excelente curso.

  • @cray_iwnl68
    @cray_iwnl68 4 года назад +1

    Qual é o python que vc usa nos vídeos?

  • @gabrielsmm_
    @gabrielsmm_ 5 лет назад +2

    Guanabara, gostaria de saber se um input pode receber textos com quebra de linhas, pois quando utilizo o Google Colab ele aceita de boa, porém quando passo para o pycharm, o input lê só a primeira linha e entende a quebra de linha do texto que coloquei como um ''Enter'' e passa pras outras linhas do codigo, tem alguma maneira de resolver isso?

    • @gabrielsmm_
      @gabrielsmm_ 5 лет назад

      @@leojulian5422 ja tentei fazer isso, e também nao funcionou, é pq tipo eu pego um texto ja pronto e colo quando pede a opção pra digitar, só que ta lendo só a primeira linha, e quando chega no final da primeira linha ele ja pula e vai direto pros próximos códigos, ou seja, a input nao ta lendo o texto completo. Isso eu digo no console, quando o programa está rodando. mas obrigado do mesmo jeito!

    • @LucasSilva-xb7iw
      @LucasSilva-xb7iw 5 лет назад +1

      Se você tá passando muito texto, acho que a melhor opção não seria usar o input. Coloca o texto em um .txt e faz o programa ler esse arquivo. Ai se continuar dando erro, vai ser mais fácil de identificar onde e como arrumar.

    • @ChannelboxSandbox
      @ChannelboxSandbox 5 лет назад +1

      provavelmente o texto que vc coloca ta bugando por causa de aspas no proprio texto
      exemplo
      var = input(" oi "tudo" bem")

    • @gabrielsmm_
      @gabrielsmm_ 5 лет назад

      @@LucasSilva-xb7iw mas no meu caso eu teria que usar o input, pois é o usuário quem vai digitar o texto, eu ja tentei transformar o conteudo da input em um arquivo mas acontece a mesma coisa, só vai a primeira linha para o arquivo.

    • @ramiram078
      @ramiram078 5 лет назад +1

      @@ChannelboxSandbox o input também aceita aspas simples ex: input('digite "1" to enter ou "2" to exit: ')

  • @vladimirpereira9732
    @vladimirpereira9732 5 лет назад +1

    Olá Guanabara.....estou usando o IDLE do Python......criei a pasta ex115....a pasta lib dentro da ex115....a pasta interface dentro da lib....e o arquuivo __init__.py dentro da interface.....e sistema.py dentro da ex115..... agora....from ex115.lib.interface import * não funcionou..... o que deu certo pra mim foi.....from lib.interface import *.....gostaria de saber porque.... grato pela atenção.

  • @vladimirpereira9732
    @vladimirpereira9732 5 лет назад +3

    Eu de novo....Há alguma coloração de texto que funcione no IDLE?

  • @shadowdark8284
    @shadowdark8284 5 лет назад

    Pra quem tava falanfo q programar no celular tbm e eficiente, agora faz vc faz uma coisa q so no pc pu leptop e possivel!!!!!! Presta Atenção!!!!

  • @lucasvargas5562
    @lucasvargas5562 3 года назад

    Fiz o meu modularizado, tudo funciona... mas não ficou tão organizado... Como fazer para chegar a esse nível de raciocinio e organização!?

    • @lucasvargas5562
      @lucasvargas5562 3 года назад

      def novapessoa():
      with open('pessoas.txt', 'a') as pessoas:
      nome = str(input('Nome: '))
      pessoas.write(nome + '##')
      while True:
      print('Idade: ', end='')
      try:
      idade = int(input())
      break
      except ValueError:
      print(f'\33[31mERRO!: Digite uma idade válida.\33[m')
      idade = str(idade)
      pessoas.write(idade + '
      ')
      print(f'Registro de {nome} adicionado.')
      def verpessoas():
      from time import sleep
      leiatitulo('pessoas cadastradas')
      with open('pessoas.txt', 'r') as pessoas:
      pessoa = pessoas.readlines()
      for i in pessoa:
      dados = i.split('##', 2)
      dados[1] = dados[1].replace('
      ', '')
      for j in dados:
      sleep(.3)
      if dados.index(j) % 2 == 0:
      print(f'{j:3} anos')
      sleep(1.5)
      def leiatitulo(texto):
      texto = texto.upper().strip()
      print('-'*30)
      print(f'{texto:^30}')
      print('-'*30)
      def menu():
      leiatitulo('menu principal')
      print('\33[33m1 - \33[34mVer pessoas cadastradas\33[m')
      print('\33[33m2 - \33[34mCadastrar nova pessoa\33[m')
      print('\33[33m3 - \33[34mSair do sistema\33[m')
      print('-'*30)
      while True:
      print('\33[33mSua Opção: \33[m', end='')
      try:
      opc = int(input())
      if 1

    • @alexandremoreira8776
      @alexandremoreira8776 3 года назад +1

      Na verdade ele esta forçando a gente a usar o que aprendeu, por exemplo, o menu não muda o texto uma vez criado, não precisava das def linha cabeçalho, tudo poderia ser jogado em def menu, fora ele usou o leiaInt, que já tinha sido criado.
      O que voce pode fazer, para ter uma orçanização é definir packages onde qualquer alteração voce sabe onde encontrar as def exe.e:
      Faça um package para layout do menu, toda vez que precisar altera o layout as def estão lá;
      Faça um package para as def de leitura de int , exceptions e formatação de texto e cor
      Faça um package para as def que irão tratar das opções do menu

  • @marceloaraujo2480
    @marceloaraujo2480 4 года назад

    esses últimos exercícios tão puxados, ta fácil de entender, mas fácil de esquecer

  • @ZLUCASKKJ
    @ZLUCASKKJ 5 лет назад +1

    AMÉMMMMMMMMMM

  • @joaosalero9797
    @joaosalero9797 4 года назад

    Gustavo, primeiramente parabéns por todo esse projeto!
    Eu gostaria apenas de fazer uma observação com a ideia de melhorar a didática:
    Para os próximos vídeos tente ter uma cadência um pouco mais equilibrada nos momentos de explicação, sem ser muito rápido e nem muito lento. E, talvez o mais importante, tente não colocar tantos "parênteses" principalmente no meio de uma explicação/enquanto você está ilustrando a sintaxe. Isso porque, obviamente, para você, está claro e lógico, mas para quem está aprendendo e tentando desenhar mentalmente o que você está explicando, essa quebra pode ser prejudicial. Um mega parênteses com algo não diretamente ligado ao assunto, como por exemplo: "Ah, se vc não sabe o que é isso, veja na outras aulas, pq está tudo explicado. É pq chega aluno aqui e diz que não foi explicado..." é algo importante a ser dito, claro, porém ela se estende por um longo no meio da explicação, fazendo perder a linha de raciocínio com uma observação que não surtirá efeito direto algum.
    Espero que vc entenda como uma crítica construtiva de um ex-aluno da FAETEC!
    Abraço!

  • @fabianasouza6914
    @fabianasouza6914 2 года назад +1

    Guanabara, quando importo a lib, não é reconhecido. Como devo proceder? Obrigada

    • @brasiliano3201
      @brasiliano3201 2 года назад +1

      Comigo tbm não funcionava, aí apaguei um arquivo py que tinha o mesmo nome da pasta: "ex115". Tava dando conflito. Depois disso funcionou de boa

  • @soobservo6550
    @soobservo6550 5 лет назад

    Tive que pular esse exercício e fazer os outros

  • @noxisplay2
    @noxisplay2 5 лет назад

    Posta mais pf

  • @GuilhermeHenrique-se1ok
    @GuilhermeHenrique-se1ok 5 лет назад

    Vcs tão conseguindo se cadastrar no site pra emitir certificado? Pq eu n

  • @SENYSENofficial
    @SENYSENofficial 4 года назад

    deu um trabalho, tive alguns probleminhas por conta que eu não estava conseguindo me consentrar mas deu tudo certo no final kkkk

  • @lMatheusx
    @lMatheusx 4 года назад

    Pensei que não usaria o if else pra fazer a última tomada de decisão. Realmente usando o try e expect funcionam apenas com tratamento de erros. Eu não poderia tentar usar eles como if else. Eu até tentei, não houve erro de compilação, mas houve erro de lógica, pois ele não funciona com outras coisas. Intermediário por conta disso. Deixei um pouco mais enxuto o meu código.
    from time import sleep;
    def PrintMenu(msg):
    print('-' * 30);
    print('\t', msg);
    print('-' * 30);
    def mainMenu(liste):
    while True:
    try:
    PrintMenu('MAIN MENU');
    i = 0;
    for item in liste:
    print(f'{i + 1} - {item}');
    i += 1;
    print('-' * 30);
    i = int(input('Your option: '));
    n = int(i);
    return i;
    except:
    print('
    ERROR: please, type a integer number!!');
    while True:
    Option = mainMenu(['People registered:', 'Register one more person', 'Leave the system']);
    if(Option == 1):
    PrintMenu('Option 1');
    elif(Option == 2):
    PrintMenu('Option 2');
    elif (Option == 3):
    print('Leaving...');
    sleep(2);
    break;
    else:
    print('ERROR: the option is inexistent. Try again!!');

  • @bagarrao5406
    @bagarrao5406 3 года назад

    entao ao utilizar esse esquema de menu, como posso associar uma class "carro" e returnar um valor por exemplo "marca"???

    • @Vicfera22
      @Vicfera22 3 года назад

      dicionário
      carros = dict()
      {
      'carro 1' ; 'BMW',
      'carro 2' ; 'Ferrari',
      'carro 3' ; 'Audi'
      etc etc etc
      }
      faz a função e altera pra retornar o dicionário todo, ou só os valores
      pode colocar um for pra isso
      for k, v in carros:
      print(f'{k} -> {v})

  • @rockemback123
    @rockemback123 2 года назад +2

    Eu achei meio confuso de entender esses exercícios de pacote e módulos, eu fiz de acordo com o meu entendimento, vamos lá !
    PACOTE (CADASTRO):
    def linha(mensagem='MENU PRINCIPAL'):
    print('-' * 35)
    print(f'{mensagem:^35}')
    print('-' * 35)
    def menu():
    linha()
    print("""1 - Ver pessoas cadastradas
    2 - Cadastrar nova pessoa
    3 - Sair do programa""")
    print('-' * 35)
    while True:
    try:
    opcao_usuario = int(input('Sua opção: '))
    if opcao_usuario == 1:
    linha('OPÇAO 1')
    elif opcao_usuario == 2:
    linha('OPÇÃO 2')
    elif opcao_usuario == 3:
    linha('SAINDO DO SISTEMA...')
    break
    else:
    print('ERRO: Digite uma opção válida')
    except(TypeError, ValueError):
    print('ERRO: Opção invalida!')
    except KeyboardInterrupt:
    print('Usuário interrompeu o programa.')
    #### PROGRAMA PRINCIPAL ####
    import cadastro
    menu = cadastro.menu()
    print(menu)

  • @rafaelrodriguessilva9994
    @rafaelrodriguessilva9994 2 года назад

    Boooooaaa!!!

  • @shshahsusu9047
    @shshahsusu9047 3 года назад

    Era so pra fazer o menu? Acabei fazendo o programa inteiro kkkk

  • @ondecevai
    @ondecevai 5 лет назад +1

    lamentável como um video desse tem só isso de like e um clipe qualquer tem 1 milhao

  • @gabrielmarconato7883
    @gabrielmarconato7883 5 лет назад +1

    Mostra como faz um programa que dado um número pelo cliente, o programa mostra os fatores primos desse número. Exemplo: 24 = 2 x 2 x 2 x 3

    • @cienciaetecnologiaa
      @cienciaetecnologiaa 5 лет назад

      Use o critério de divisibilidade, quando esse número for divisível por um conjunto de determinados números, o mesmo deve listar esses números.

  • @Lucas-to2jc
    @Lucas-to2jc 5 лет назад +1

    Guanabara, estou com um projeto onde preciso criar um código que cadastre usuários e eles tenham login e senha. Eu gostaria de saber como fazer o programa ler a senha respectiva de cada usuário. No código, há uma lista com os usuários e senhas. Ex.:[[João,123],[Maria,12234][Júlia, 445]]. Como eu faria para o programa checar se o Login e senha digitados estão na mesma "mini-lista" que criei?

    • @cleiton_rs
      @cleiton_rs 5 лет назад

      Acho que se você usasse dicionários e lista ficaria melhor para trabalhar. Posta o código do projeto aqui nos comentários.

    • @Lucas-to2jc
      @Lucas-to2jc 5 лет назад

      @@cleiton_rs Já consegui fazer, mas obrigado mesmo assim

  • @silvanafurtado4016
    @silvanafurtado4016 7 месяцев назад

    Pessoal fui renomear o arquivo onde criei meus modulos e pacotes e agora parou de funcionar, fica dando esse erro -> No module named 'PACOTES_', já ajeitei os caminhos mas ainda assim fica aparecendo isso, alguém já passou por algo igual. Já pesquisei a respeito mas só encontro esse erro quando trata-se de uma biblioteca/função/modulo ja pronta que importamos, e não das que nós criamos

  • @cray_iwnl68
    @cray_iwnl68 4 года назад +1

    Eu instalei o q vc falou mas esse aí é diferente

  • @geovanaxavier1189
    @geovanaxavier1189 2 года назад

    O meu está dando erro no while, não retorna nem uma opção, só volta pro meni

  • @FelipeVicente
    @FelipeVicente 4 года назад

    Não entendi a parte do resposta = menu
    Como uma variável recebe um código inteiro tipo esse do menu e o valor dele acaba sendo só o que o usuário digitou?

    • @e.l.2734
      @e.l.2734 4 года назад

      É que o que a variável está recebendo é o resultado da função chamada menu. O que parece grande é a sequência de parâmetros dessa função na chamada, mas o resultado retornado pela função ainda é um valor único. Se você não entendeu bem o que eu disse, este curso tem uma aula (e vários exercícios) só sobre funções e seus parâmetros.

    • @FelipeVicente
      @FelipeVicente 4 года назад +1

      @@e.l.2734 Acho que entendi. A variável fica sendo igual ao resultado de todo o menu né? Obrigado pela resposta

    • @e.l.2734
      @e.l.2734 4 года назад

      @@FelipeVicente Isso, e esse resultado, por sua vez, é o número da opção escolhida pelo usuário, conforme a função mesma nos diz. :) Fique com Deus e bons estudos

  • @jefecelinomendes7748
    @jefecelinomendes7748 5 лет назад

    Professor tem como tocar uma música MP3 P pelo o python no celular?

  • @heitorsilva195
    @heitorsilva195 5 лет назад

    Espalhem a palavra do Curso em Vídeo, do capitulo de Python, versiculo 115A

  • @DeNevski
    @DeNevski Год назад +1

    A solução que eu cheguei foi meio diferente...
    def line():
    print('\033[1;36m=\033[m'*35)
    def interface():
    line()
    print('\033[1;97mMENU PRINCIPAL\033[m'.center(35))
    line()
    print('''\033[1;34m1 - Ver pessoas cadastradas
    2 - Cadastrar nova pessoa
    3 - Sair\033[m''')
    line()
    def validator():
    from time import sleep
    while True:
    sleep(0.75)
    interface()
    try:
    val = int(input('\033[1;32mDeseja qual opção? \033[m'))
    if val 3:
    raise Exception
    except (TypeError, ValueError):
    print('\033[1;31mERRO! Opção inválida.\033[m')
    except Exception:
    print('\033[1;33mOops! As opções são 1, 2 e 3.\033[m')
    else:
    if val == 1:
    line()
    print('OPÇÃO 1'.center(35))
    line()
    if val == 2:
    line()
    print('OPÇÃO 2'.center(35))
    line()
    if val == 3:
    print('\033[1;32mFinalizado com sucesso! Volte sempre =)\033[m')
    break

  • @JoseRamos-ip4bm
    @JoseRamos-ip4bm 4 года назад

    #NA ABA DO PROGRAMA PRINCIPAL
    import ex115_modulos
    cor = [{'azul':'\033[0;34m'},
    {'amarelo':'\033[0;33m'},
    {'neutro':'\033[m'},
    {'vermelho':'\033[0;31m'}]
    while True:
    ex115_modulos.linha('MENU PRINCIPAL')
    print(f'''{cor[1]["amarelo"]}1{cor[2]["neutro"]} - {cor[0]["azul"]}Ver pessoas cadastradas{cor[2]["neutro"]}
    {cor[1]["amarelo"]}2{cor[2]["neutro"]} - {cor[0]["azul"]}Cadastrar nova Pessoa{cor[2]["neutro"]}
    {cor[1]["amarelo"]}3{cor[2]["neutro"]} - {cor[0]["azul"]}Sair do sistema{cor[2]["neutro"]}''')
    print('-'*35)
    opcao = str(input(f'{cor[1]["amarelo"]}Sua opção:{cor[2]["neutro"]} '))
    if opcao not in '123' or opcao == '':
    print(f'{cor[3]["vermelho"]}Erro! Digite uma opção válida!{cor[2]["neutro"]}')
    elif opcao == '1':
    ex115_modulos.mostralista()
    elif opcao == '2':
    ex115_modulos.cadastro('Nome: ', 'Idade: ')
    elif opcao == '3':
    break
    ex115_modulos.linha('Saindo do sistema... Até logo!')
    #NA ABA COM OS MODULOS
    lista = [[], []]
    cor = [{'azul':'\033[0;34m'},
    {'amarelo':'\033[0;33m'},
    {'neutro':'\033[m'},
    {'vermelho':'\033[0;31m'}]
    def linha(txt):
    print('-'*35)
    print(f'{txt:^35}')
    print('-'*35)
    def cadastro(n, i):
    linha('CADASTRAR UMA PESSOA')
    while True:
    nome = str(input(n)).title().strip()
    if nome.replace(' ','').isalpha():
    lista[0].append(nome)
    break
    else:
    print(f'{cor[3]["vermelho"]}Erro! Por favor, digite um nome válido!{cor[2]["neutro"]}')
    while True:
    try:
    idade = int(input(i))
    lista[1].append(idade)
    break
    except:
    print(f'{cor[3]["vermelho"]}Erro! Por favor, digite uma idade válida!{cor[2]["neutro"]}')
    print(f'Novo registro de {nome} adicionado')
    def mostralista():
    if len(lista[0]) == 0:
    linha('PESSOAS CADASTRADAS')
    print('Não há pessoas cadastradas.')
    else:
    linha('PESSOAS CADASTRADAS')
    for c in range(0, len(lista[0])):
    print(f'{lista[0][c]:

  • @benfica6641
    @benfica6641 5 лет назад

    Alguém sabe qual a formação do Gustavo Guanabara?

  • @salogg1
    @salogg1 4 года назад

    Amigos, Qual o melhor banco de dados para uso do Python (menos complicado)?

    • @UmaComentadora
      @UmaComentadora 3 года назад

      sqlite3 é o menos complicado, SQL é um dos mais utilizados.

  • @soobservo6550
    @soobservo6550 5 лет назад

    Eu estou tentando instalar a biblioteca pygame no pycharm igual você fez no exercício 21. Não quer instalar e referência da lâmpada vermelha parou tbm de aparecer. Será que alguém pode me aju dar para mim finalizar o o ex 21? Tem outra forma de baixar no pycharm

    • @soobservo6550
      @soobservo6550 5 лет назад

      @@leojulian5422 eu tentem pip. Tbm não deu. Eu estou com um notebook com o Windows sete. Eu mostrar o que fica escrito quando nao instala o pygame. Talvez você saiba.

    • @soobservo6550
      @soobservo6550 5 лет назад

      Aparece: Erros occurred when installing Packag ' pygame "

  • @cray_iwnl68
    @cray_iwnl68 4 года назад +1

    Me ensinaaa

  • @antonioevangelistajunior7476
    @antonioevangelistajunior7476 4 года назад +1

    O meu ficou menor o programa principal, mas com módulos maiores:
    #programa principal
    from ex115.lib import interface
    print(interface.menu())
    #módulos
    def linha(tam=42):
    print('-' * tam)
    def cor(c, cor='normal'):
    if cor == 'vermelho':
    c = f'\033[0;31m{c}\033[m'
    if cor == 'amarelo':
    c = f'\033[0;32m{c}\033[m'
    if cor == 'dourado':
    c = f'\033[0;33m{c}\033[m'
    if cor == 'azul':
    c = f'\033[0;34m{c}\033[m'
    return c
    def menu(opcao=0):
    while opcao != 3:
    linha()
    print(F'{"MENU PRINCIPAL":^42}')
    linha()
    print(cor('1', 'dourado'), '-', cor('Ver pessoas cadastradas', 'azul'))
    print(cor('2', 'dourado'), '-', cor('Cadastrar nova pessoa', 'azul'))
    print(cor('3', 'dourado'), '-', cor('Sair do Sistema', 'azul'))
    linha()
    while True:
    try:
    opcao = int(input(cor('Sua Opção: ', 'amarelo')))
    except (TypeError, ValueError):
    print(cor('Erro! Digite um número inteiro válido!', 'vermelho'))
    else:
    if opcao == 2 or opcao == 1:
    linha()
    print(f'Opção {opcao}'.center(42))
    linha()
    break
    elif opcao == 3:
    break
    else:
    print(cor('Erro! Digite uma opção válida!', 'vermelho'))
    print('Fim do programa')

  • @apenas1nouniverso205
    @apenas1nouniverso205 2 года назад +1

    fiz diferente porém igual:
    def linha(a=42):
    return '-' * a
    def cabeçalho(txt):
    print(linha())
    print(txt.center(42))
    print(linha())
    def menu(lista):
    while True:
    cabeçalho('MENU PRINCIPAL')
    c = 1
    for intem in lista:
    print(f'\033[1;32m{c}\033[m - \033[1;34m{intem}\033[m')
    c += 1
    print(linha())
    a = opção('Sua Opção:')
    if a == 3:
    break
    elif a == 1:
    cabeçalho('Opção 1')
    else:
    cabeçalho('Opção 2')
    cabeçalho('Saindo do sistema... Até logo!')
    def opção(num):
    try:
    a = int(input(num))
    return a
    except ValueError:
    print('\033[1;31mERROR: por favor, digite apenas um número inteiro válido.\033[m')
    except KeyboardInterrupt:
    print('
    \033[1;31mO babaca preferiu não informa o valor\033[m')
    a = 0
    return a
    return opção(num)

  • @ThiagoOliveira-yk3sx
    @ThiagoOliveira-yk3sx 5 лет назад

    Python

  • @yoaimo_d32
    @yoaimo_d32 5 месяцев назад

    #Jose.
    Trabalho do caramba, mais o exercicio em si é fácil
    modulo:
    def testidade():
    """
    :return: Retorna um valor int, e só sai quando for um int válido.
    """
    p = 0
    while True:
    try:
    p = int(input('Idade: '))
    return p
    except ValueError:
    print(f'{c('r')}ERRO: por favor, digite uma idade válida.{c('w')}')
    def testestring():
    """
    :return: Quando a variavel nome, for somente string
    """
    while True:
    nome = str(input('Nome:')).strip().capitalize()
    copia = nome
    nome = nome.replace(' ', '')
    if nome.isalpha():
    nome = copia
    return nome
    print(f'{c('r')}ERRO! Por Favor Digite somente Letras no nome!{c('w')}')
    def c(co='n'):
    """
    :param co: escolha do usuario
    :return: retorna a cor escolhida
    """
    cor = {'n': '\033[1;m',
    'p': '\033[1;30m',
    'r': '\033[1;31m',
    'g': '\033[1;32m',
    'y': '\033[1;33m',
    'z': '\033[1;34m',
    'c': '\033[1;36m',
    'w': '\033[1;97m'
    }
    for k, v in cor.items():
    if k in co:
    return v
    Arquivo programa Pricipal
    # Sistema de modularizadom que permite cadastrar pessoas pelo nome e idade,
    # Em um arquio de txt
    from utilidades.fun import testidade, testestring, c
    def menu():
    print(f'-{c("w")}' * 50)
    print(f'{"MENU PRINCIPAL":^49}')
    print('-' * 50)
    print(f'{c("y")}1{c("w")} - {c("z")}Ver pessoas cadastradas')
    print(f'{c("y")}2{c("w")} - {c("z")}Cadastrar nova Pessoa')
    print(f'{c("y")}3{c("w")} - {c("z")}Sair do Sistema')
    def mostra():
    print(f'{c("w")}-' * 50)
    print(f'{"PESSOAS CADASTRADAS":^49}')
    print('-' * 50)
    with open('teste_manip.txt', 'r', encoding='utf-8') as t:
    t = t = t.read()
    print(t)
    def cadastra(nome='', idade=0):
    with open('teste_manip.txt', 'a') as a:
    a.write(f'
    {nome:40}{idade} Anos')
    print(f'{c('g')}-' * 50)
    print(f'Novo registro de {nome} adicionado!')
    print(f'-' * 50, c('n'))
    # Principal
    while True:
    opc = 0
    menu()
    # Testa se a opçao está correta
    while True:
    try:
    opc = int(input(f'{c("y")}Sua opçao:'))
    if 1

  • @MatheusSantos-xw5uo
    @MatheusSantos-xw5uo Год назад

    fiz assim:
    from menu import menu
    from time import sleep
    while True:
    menu( )
    try:
    opcao = int(input('Sua opção: '))
    except:
    print('ERRO: Por favor digite um número inteiro válido.')
    else:
    if opcao == 1:
    print('-'*30)
    print('Opção 1'.center(30))
    print('-'*30)
    sleep(2)
    elif opcao == 2:
    print('-'*30)
    print('Opção 2'.center(30))
    print('-'*30)
    sleep(2)
    elif opcao == 3:
    print('-'*30)
    print('Saindo do sistema... Até logo!'.center(30))
    print('-'*30)
    sleep(2)
    break
    elif opcao == 0 or opcao > 3:
    print('ERRO! Digite uma opção válida.')
    sleep(2)

  • @CharlesSilva-xh2pm
    @CharlesSilva-xh2pm 3 года назад

    Não importa o numero que digito, sempre da opção invalida.

    • @kelaoInfo
      @kelaoInfo 3 года назад

      Meu amigo olha se colocou (INT) antes .ok

  • @KrodrigoDev
    @KrodrigoDev 11 месяцев назад

    essa foi a minha resolução utilizando a lib pandas:
    import pandas as pd
    import os
    # Caminho do arquivo
    caminho_arquivo = (r'\CursoEmVideo\cursos\desafios\utilidades\sistema\sistema.csv')
    def menu():
    while True:
    try:
    print('-' * 50)
    print(F'{"MENU PRINCIPAL":^50}')
    print('-' * 50)
    print('1 - VER PESSOAS CADASTRADAS')
    print('2 - CADASTRAR NOVA PESSOA')
    print('3 - SAIR DO SISTEMA')
    print('-' * 50)
    opcao = int(input('Sua opção: ').strip())
    except (ValueError, TypeError):
    print('O formato enviado não é válido. Escolha novamente !!')
    continue
    else:
    if opcao == 1:
    listar()
    elif opcao == 2:
    cadastrar()
    elif opcao == 3:
    print('-' * 50)
    print('SAINDO DO SISTEMA... ATÉ LOGO')
    print('-' * 50)
    break
    else:
    print('Essa opção não existe. Escolha novamente !!')
    os.system('cls' if os.name == 'nt' else 'clear')
    print('\033[H\033[J')
    def inicializar():
    """
    -> Verifica se o sistema existe, caso ele não exista, faz a criação de um novo
    by: Kauã Rodrigo
    :return:
    """
    try:
    df = pd.read_csv(caminho_arquivo, sep=';')
    except FileNotFoundError:
    df = pd.DataFrame(columns=['Nome', 'Idade'])
    df.to_csv('../sistema/sistema.csv', index=False, sep=';')
    finally:
    print('-' * 50)
    print(f'{"O DataFrame foi carregado com sucesso":^50}')
    print('-' * 50)
    def cadastrar():
    try:
    df = pd.read_csv(caminho_arquivo, sep=';')
    except FileNotFoundError:
    print('Arquivo não encontrado. Inicialize um novo antes de cadastrar...')
    else:
    print('-' * 50)
    print(f'{"NOVO CADASTRO":^50}')
    print('-' * 50)
    while True:
    try:
    nome = input('Nome: ')
    idade = int(input('Idade: '))
    except (ValueError, TypeError):
    print('Os valores foram fornecidos de forma incorreta.')
    continue
    except KeyboardInterrupt:
    print('O usuário optou por interroper a inserção !')
    break
    else:
    nova_linha = pd.Series({
    'Nome': nome,
    'Idade': idade
    })
    df = df._append(nova_linha, ignore_index=True)
    df.to_csv(caminho_arquivo, index=False, sep=';')
    break
    def listar():
    try:
    df = pd.read_csv(caminho_arquivo, sep=';')
    except FileNotFoundError:
    print('Arquivo não encontrado. Inicialize um novo antes de cadastrar...')
    else:
    print('-' * 50)
    print(f'{"PESSOAS CADASTRADAS":^50}')
    print('-' * 50)
    for index, row in df.iterrows():
    print(f'{row["Nome"]:

  • @eams1234
    @eams1234 3 года назад +1

    O meu menu ficou um pouco diferente, mas...
    from time import sleep
    def opt(num):
    if num == 1:
    print('OPÇÃO 1')
    elif num == 2:
    print('OPÇÃO 2')
    while True:
    print('='*30)
    print('MENU PRINCIPAL'.center(30))
    print('='*30)
    print('\033[32m1 - Ver pessoas cadastradas')
    print('2 - Cadastrar pessoas')
    print('3 - Sair\033[0m')
    print('='*30)
    while True:
    try:
    n = int(input('Sua resposta: '))
    except:
    print('\033[31mErro! Não é um número!\033[0m')
    else:
    if n > 3 or n < 1:
    print('\033[31mErro! Número inválido!\033[0m')
    else:
    break
    if n == 3:
    print('\033[31mSAINDO\033[0m')
    sleep(1)
    break
    else:
    opt(n)
    print('='*30)