def deletar(): lista = [] titulo('DELETAR CADASTROS') cursor.execute('select * from pessoas;') registros = cursor.fetchall() cursor.execute('select id from pessoas;') cadastros = cursor.fetchall() print('ID Nome') for registro in registros: print(f'[{registro[0]}] {registro[1]}') while True: try: id = leiaID('Selecione um cadastro[0 para sair]: ') except: print('[ERRO] Falha ao selecionar cadastro.') else: for cadastro in cadastros: for item in cadastro: lista.append(item) if id == 0: titulo('Retornando ao menu...') sleep(2) break elif id in lista: try: cursor.execute(f"delete from pessoas where id='{id}'") except: print('[ERRO] Falha ao deletar cadastro.') else: print('Cadastro deletado com sucesso.') break else: print('[ERRO] Cadastro inexistente.')
def cadastrar(): system('cls') titulo('SISTEMA DE CADASTRO') try: nome = leiaNome('Nome: ') sexo = leiaSexo('Sexo[M/F]: ') nascimento = leiaNascimento('Nascimento[DD/MM/AAAA]: ') telefone = leiaTelefone('Telefone: ') email = leiaEmail('Email: ') except: system('cls') sleep(1) titulo('Retornando ao menu...') sleep(2) else: cursor.execute(f''' insert into pessoas values (default, '{nome}', '{sexo}', '{nascimento}', '{telefone}', '{email}'); ''')
from utilitarios import titulo, cor # **************************** Desafio 104 ************************** # # Validando entrada de dados em Python # # Crie um programa que tenha a função leiaInt(), que vai funcionar de # # forma semelhante 'a função input() do Python, só que fazendo a # # validação para aceitar apenas um valor numérico. # # Ex: n = leiaInt('Digite um n: ') # # ******************************************************************* # # titulo(' Validando entrada de dados em Python ') # ******************************************************************* # # definindo a função: def leiaint(texto): """ -> Le uma string de entrada e faz a validação para aceitar apenas um valor numérico. :param texto: String a ser validada :return: n """ while True: n = str(input(texto)) if n.isnumeric(): n = int(n) break else: print(f'{cor("vm")}ERRO: Digite um número inteiro válido.{cor(0)}') return n
from utilitarios import titulo from time import sleep # **************************** Desafio 106 ************************** # # Sistema interativo de ajuda em Python # # Faça um mini-sistema que utilize o Interactive Help do Python. O # # usuário vai digitar o comando e o manual vai aparecer. Quando o # # usuário digitar a palavra 'FIM', o programa se encerrará. # # Importante: use cores. # # ******************************************************************* # # titulo(' Sistema interativo de ajuda em Python ') # Essa foi a solução do Gustavo Guanabara: (muito relevante!!!) def fundo(tipo=''): cf = { '': '\033[m', # 0 - restaura cor padrão 'br': '\033[1;7;30m', # 1 - fundo branco 'vm': '\033[1;30;41m', # 2 - fundo vermelho 'vd': '\033[1;30;42m', # 3 - fundo verde 'am': '\033[1;30;42m', # 4 - fundo amarelo 'az': '\033[1;30;44m', # 5 - fundo azul 'mg': '\033[1;30;45m', # 6 - fundo magenta 'ci': '\033[1;30;46m', # 7 - fundo ciânico 'cz': '\033[1;30;47m' # 8 - fundo cinza } return cf[tipo] def cab(msg, cor=''): c = len(msg)
from utilitarios import titulo from ex112.utilidadescev import moeda, dado # ************************* Desafio 112 ************************* # # Entrada de dados monetários # # Dentro do pacote utilidadesCeV que criamos no desafio 111, # # temos um módulo chamado dado. Crie uma função chamada # # leiaDinheiro() que seja capaz de funcionar como a função # # input(), mas com uma validação de dados para aceitar apenas # # valores que seja monetários. # # *************************************************************** # titulo('Entrada de dados monetários') # *************************************************************** # p = dado.leiadinheiro('Digite o preço: R$ ') moeda.resumo(p, 20, 12)
from pcex107 import moeda # pcex107 = pacote que contém o módulo moeda from utilitarios import titulo # *************************** Desafio 107 *************************** # # Exercitando módulos em Python # # Crie um módulo chamado moeda.py que tenha as funções incorporadas # # aumentar(), diminuir(), dobro() e metade(). Faça também um # # programa que importe esse módulo e use algumas dessas funções. # # ******************************************************************* # titulo('Exercitando módulos em Python') # ******************************************************************* # num = float(input('Digite o preço: R$')) print(f'a metade de {num} é {moeda.metade(num)}') print(f'O dobro de R${num} é {moeda.dobro(num)}') print(f'Aumentando 10%, temos {moeda.aumentar(num, 10)}') print(f'Reduzindo 10%, temos {moeda.diminuir(num, 10)}') # " Ver solução na pasta pcex107 "
from utilitarios import titulo # ************************* Desafio 108 ************************* # # Formatando Moedas em Python # # Adapte o código do desafio #107, criando uma função adicional # # chamada moeda() que consiga mostrar os números como um valor # # monetário formatado. # # *************************************************************** # titulo('Formatando Moedas em Python') # *************************************************************** # # " Solução na pasta ex108 "
# from utilitarios import titulo from utilitarios import titulo titulo('Python 3 - Aula 021')
from utilitarios import titulo # *********************** Desafio 115c *********************** # # Finalizando o projeto # # Vamos finalizar o projeto de acesso a arquivos em Python. # # ************************************************************ # titulo('Finalizando o projeto') # ************************************************************ #
# Analisando e gerando Dicionários # # Faça um programa que tenha uma função notas() que pode receber # # várias notas de alunos e vai retornar um dicionário com as seguintes # # informações: # # # # - Quantidade de notas # # - A maior nota # # - A menor nota # # - A média da turma # # - A situação (opcional) # # # # Adicione também as docstrings dessa função para consulta pelo # # desenvolvedor. # # ******************************************************************** # # titulo(' Analisando e gerando Dicionários ') # ******************************************************************** # # Dfinindo a função: def notas(*n, sit=False): """ ->Recebe várias notas de alunos, e retorna o número de notas (aceita várias), a maior e menor nota, a média e a situação (opcional) :param n: uma ou mais notas :param sit: (opcional) indica a situação do aluno :return: dicionário com as informações """ informa = dict()
from utilitarios import titulo from utilidades.numero import leiaint, leiafloat # ************************ Desafio 113 ************************* # # Funções aprofundadas em Python # # Reescreva a função leiaInt() que fizemos no desafio 104, # # incluindo agora a possibilidade da digitação de um número de # # tipo inválido. Aproveite e crie também uma função leiaFloat() # # com a mesma funcionalidade. # # ************************************************************** # titulo('Funções aprofundadas em Python') # ************************************************************** # nI = leiaint('Digite um número: ') nR = leiafloat('Digite um número Real: ') print(f'O número \"Inteiro\" digitado foi {nI} e o número \"Real\" foi {nR}')
from utilitarios import titulo # ************************ Desafio 115b *********************** # # Arquivos com Python # # Vamos ver como fazer acesso a arquivos usando o Python. # # ************************************************************* # titulo('Arquivos com Python') # ************************************************************* #
from utilitarios import titulo from pcex110 import moeda # ************************** Desafio 110 ************************** # # Reduzindo ainda mais seu programa # # Adicione o módulo moeda.py criado nos desafios anteriores, uma # # função chamada resumo(), que mostre na tela algumas informações # # geradas pelas funções que já temos no módulo criado até aqui. # # ***************************************************************** # titulo('Reduzindo ainda mais seu programa') # ***************************************************************** # # " Solução na pasta pcex110 " num = str(input('Digite o preço: R$ ')) moeda.resumo(num, 25, 15)
from ex111.utilidadescev import moeda from utilitarios import titulo # ************************ Desafio 111 ************************* # # Transformando módulos em pacotes # # Crie um pacote chamado utilidadesCeV que tenha dois módulos # # internos chamados moeda e dado. Transfira todas as funções # # utilizadas nos desafios 107, 108 e 109 para o primeiro pacote # # e mantenha tudo funcionando. # # ************************************************************** # titulo('Transformando módulos em pacotes') # ************************************************************** # num = float(input('Digite o preço: R$ ')) moeda.resumo(num, 25, 15)
from conector import * from utilitarios import menu, titulo from leitores import leiaInt from os import system while True: menu([ 'Ver cadastro', 'Cadastrar pessoa', 'Atualizar cadastro', 'Deletar cadastro', 'Sair do sistema' ]) try: comando = leiaInt(f'Sua opção: ') except: print(f'Opção inválida.') else: if comando == 1: lerCadastro() elif comando == 2: cadastrar() elif comando == 3: alterar() elif comando == 4: deletar() elif comando == 5: titulo('Saindo do sistema... Até logo!') sleep(2) cursor.close() con.close() break