Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

[Projeto] Soluções das questões 3 e 5

3 - Crie um dicionário utilizando para representar números e seus quadrados de 1 a 5.

import os

numeros_quadrados = []

def exibir_titulo():
    print("""

░█████╗░░█████╗░  ░██████╗░██╗░░░██╗░█████╗░██████╗░██████╗░░█████╗░██████╗░░█████╗░
██╔══██╗██╔══██╗  ██╔═══██╗██║░░░██║██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗██╔══██╗
███████║██║░░██║  ██║██╗██║██║░░░██║███████║██║░░██║██████╔╝███████║██║░░██║██║░░██║
██╔══██║██║░░██║  ╚██████╔╝██║░░░██║██╔══██║██║░░██║██╔══██╗██╔══██║██║░░██║██║░░██║
██║░░██║╚█████╔╝  ░╚═██╔═╝░╚██████╔╝██║░░██║██████╔╝██║░░██║██║░░██║██████╔╝╚█████╔╝
╚═╝░░╚═╝░╚════╝░  ░░░╚═╝░░░░╚═════╝░╚═╝░░╚═╝╚═════╝░╚═╝░░╚═╝╚═╝░░╚═╝╚═════╝░░╚════╝░
""")

#----------
def exibir_subtitulo(texto):
    os.system('cls')
    linha = '*' * (len(texto) + 8)
    print(linha)
    print(f'\n {texto} \n')
    print(linha)
    print()

#----------

def cadastrar_numeros():
    exibir_subtitulo('Cadastro de novos números')
    numero_inicial = int(input('Digite o número para elevar ao quadrado: '))

    dados_quadrados = {'numero':numero_inicial, 'quadrado':numero_inicial**2 }
    numeros_quadrados.append(dados_quadrados)

    print(f'O número {numero_inicial} elevado ao quadrado foi cadastrado!. ')
    voltar_ao_menu_principal()

def exibir_numeros():
    exibir_subtitulo('Lista de números')

    for number in numeros_quadrados:
        numero_inicial = number['numero']
        quadrado = number['quadrado']
        print(f'- O número {numero_inicial} elevado ao quadrado fica em {quadrado}')
    
    voltar_ao_menu_principal()

#----------
def exibir_opcoes():
    print('1. Cadastrar números')
    print('2. Listar números cadastrados')
    print('3. Sair\n')

def escolher_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma das opções: '))

        if opcao_escolhida == 1:
            cadastrar_numeros()
        elif opcao_escolhida == 2:
            exibir_numeros()
        elif opcao_escolhida == 3:
            finalizar_app()
        else:
            opcao_invalida()
    except:
        opcao_invalida()

#----------
def finalizar_app():
    os.system('cls')
    print('\nFinalizando o app')

def opcao_invalida():
    print('Opção Inválida!\n')
    voltar_ao_menu_principal()

def voltar_ao_menu_principal():
    input('\nDigite Enter para reiniciar.')
    main()

def main():
    os.system('cls')
    exibir_titulo()
    exibir_opcoes()
    escolher_opcao()

if __name__ == '__main__':
    main()
8 respostas

5 - Escreva um código que conte a frequência de cada palavra em uma frase utilizando um dicionário.

import os

def exibir_titulo():
    print("""
█████████████████████████████████████████████████████████████████████████████████████████████████████████████████
█─▄▄▄─█─▄▄─█▄─▀█▄─▄█─▄─▄─██▀▄─██▄─▄▄▀█─▄▄─█▄─▄▄▀███▄─▄▄▀█▄─▄▄─███▄─▄▄─██▀▄─██▄─▄████▀▄─██▄─█─▄█▄─▄▄▀██▀▄─██─▄▄▄▄█
█─███▀█─██─██─█▄▀─████─████─▀─███─██─█─██─██─▄─▄████─██─██─▄█▀████─▄▄▄██─▀─███─██▀██─▀─███▄▀▄███─▄─▄██─▀─██▄▄▄▄─█
▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▀▀▄▄▀▀▄▄▄▀▀▄▄▀▄▄▀▄▄▄▄▀▀▄▄▄▄▀▄▄▀▄▄▀▀▀▄▄▄▄▀▀▄▄▄▄▄▀▀▀▄▄▄▀▀▀▄▄▀▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▀▀▄▀▀▀▄▄▀▄▄▀▄▄▀▄▄▀▄▄▄▄▄▀
""")

def funcao():
    frase = input('\nDigite uma frase: ')
    contagem_palavras = {}
    palavras = frase.split()
    for palavra in palavras:
        contagem_palavras[palavra] = contagem_palavras.get(palavra, 0) + 1
    print(f'\n{contagem_palavras}')
    voltar_ao_menu_principal()

def voltar_ao_menu_principal():
    input('\nDigite Enter para reiniciar.')
    main()

def main():
    os.system('cls')
    exibir_titulo()
    funcao()

if __name__ == '__main__':
    main()

Olá, Luis. Tudo bem?

Obrigado por compartilhar seu código aqui com a gente. Isso mostra que está de fato praticando e evoluindo!

Gostei de como você organizou as funções e exibiu os títulos no terminal. O uso de dicionários para armazenar os números e seus quadrados foi uma ótima solução!

Sua ideia faz sentido, e você pode simplificar o primeiro código criando o dicionário diretamente. Veja este exemplo:

numeros_quadrados = {i: i ** 2 for i in range(1, 6)}
print(numeros_quadrados)

Este código cria um dicionário onde cada chave é um número e o valor é o seu quadrado.

Conte com o apoio do Fórum. Abraços e bons estudos!

Show, vou atualizar ele com essa informação, muito obrigado ^^

Renan eu tentei usar esse código mas não deu certo, em que parte eu aplicaria ele e como ?

Olá, Luis!

A sugestão que te passei é uma forma mais simples e direta de criar o dicionário com números e seus quadrados. Vou explicar onde você pode aplicá-la e como adaptar ao seu projeto para funcionar direitinho.

Como aplicar o dicionário direto no seu código:

Se você quer usar o dicionário {i: i ** 2 for i in range(1, 6)}, a ideia é substituir a lógica de cadastro manual de números. Aqui está uma sugestão de onde e como encaixá-lo.

Exemplo ajustado no método exibir_numeros:

def exibir_numeros():
    exibir_subtitulo('Lista de números')

    # Cria o dicionário automaticamente com os números e seus quadrados.
    numeros_quadrados = {i: i ** 2 for i in range(1, 6)}

    # Exibe os números e seus quadrados.
    for numero, quadrado in numeros_quadrados.items():
        print(f'- O número {numero} elevado ao quadrado fica em {quadrado}')
    
    voltar_ao_menu_principal()

O que muda?

  • Criação automática dos números e quadrados: Com {i: i ** 2 for i in range(1, 6)}, o dicionário já estará pronto com os números de 1 a 5 e seus quadrados.
  • Não precisa do input para cadastro: Essa versão elimina a necessidade de o usuário inserir manualmente os números.

Se você preferir manter a opção de cadastrar manualmente, o dicionário sugerido pode ser usado apenas como uma base inicial e depois você pode adicionar mais números pelo menu "Cadastrar números".

Ajuste no menu para alternar entre as abordagens:

Se quiser manter ambas as opções, você pode perguntar ao usuário no menu se ele quer criar números manualmente ou exibir a lista automaticamente:

def exibir_opcoes():
    print('1. Cadastrar números manualmente')
    print('2. Exibir lista automática de 1 a 5')
    print('3. Listar números cadastrados manualmente')
    print('4. Sair\n')

E então, no escolher_opcao, você adapta a lógica de acordo com a escolha do usuário.

Abraços e bons estudos!

Entendi, aproveitar e tirar uma duvida contigo que fiquei horas tentando resolver e não consegui, tem de alguma forma por no ( range(1, 6) ) a definição dos valores sendo colocada pelo usuário? por exemplo, ele no input definir o valor no lugar do 1 e o valor no lugar do 6, porque fiquei tentando de tudo que sabia e só dava erro.

solução!

Opa, Luis. Dá para fazer isso sim. Pode usar o input para o usuário definir os valores de início e fim do range e depois aplicar esses valores na criação do dicionário. Vou te mostrar como fazer:

Exemplo de como ajustar o range com input do usuário:

def exibir_numeros_com_input():
    exibir_subtitulo('Lista de números personalizada')

    try:
        inicio = int(input('Digite o valor inicial: '))
        fim = int(input('Digite o valor final: '))

        # Cria o dicionário com os valores definidos pelo usuário.
        numeros_quadrados = {i: i ** 2 for i in range(inicio, fim + 1)}

        # Exibe os números e seus quadrados.
        for numero, quadrado in numeros_quadrados.items():
            print(f'- O número {numero} elevado ao quadrado fica em {quadrado}')

    except ValueError:
        print('Por favor, insira apenas números inteiros.')

    voltar_ao_menu_principal()

O que muda aqui:

  1. input para o usuário: Agora o usuário escolhe o valor inicial e final do range.
  2. Tratamento de erro: Usei um try/except para garantir que o programa não quebre caso o usuário digite algo que não seja número.
  3. range(inicio, fim + 1): Acrescentamos +1 para garantir que o último número digitado também seja incluído no dicionário.

Como usar:

  • Adicione essa função no seu código e chame-a no menu de opções.Por exemplo:
def exibir_opcoes():
    print('1. Cadastrar números manualmente')
    print('2. Exibir lista automática de 1 a 5')
    print('3. Exibir lista personalizada com input')
    print('4. Sair\n')

E no método escolher_opcao:

def escolher_opcao():
    try:
        opcao_escolhida = int(input('Escolha uma das opções: '))

        if opcao_escolhida == 1:
            cadastrar_numeros()
        elif opcao_escolhida == 2:
            exibir_numeros()
        elif opcao_escolhida == 3:
            exibir_numeros_com_input()
        elif opcao_escolhida == 4:
            finalizar_app()
        else:
            opcao_invalida()
    except:
        opcao_invalida()

Com essa adaptação, o usuário poderá definir os números que ele quer elevar ao quadrado, e o dicionário será criado dinamicamente! Isso resolve.

Abraços e bons estudos!

Bom dia, vou tentar por em prática hoje