0% acharam este documento útil (0 voto)
4 visualizações5 páginas

Manipulação de MySQL com Python e Tkinter

Este documento descreve como manipular um banco de dados MySQL em Python. Apresenta as etapas para se conectar a um banco de dados, executar consultas SQL, recuperar os resultados, validar as alterações e fechar a conexão.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações5 páginas

Manipulação de MySQL com Python e Tkinter

Este documento descreve como manipular um banco de dados MySQL em Python. Apresenta as etapas para se conectar a um banco de dados, executar consultas SQL, recuperar os resultados, validar as alterações e fechar a conexão.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Universidade Hassan 1er

As bases de dados em python Manipular um banco de dados MySQL


Escola Nacional das Ciências Aplicadas – Berrechid
Python pode gerenciar diferentes tipos de bancos de dados. Para cada um desses
Execução de uma consulta SQL
tipos, uma API diferente existe: ODBC, Pysqlite, PyMysql,…
db = Dbconnect()
▪ Criar um objeto de conexão com o banco de dados usando o método [Link]('SELECIONE * DE…')
Module : Programmation Python conectar e em seguida definir um cursor que funcionará com a conexão criada.
▪ Utilizar o método executado do cursor para interagir com a base de Recuperação do resultado de uma requisição
#Utilização do objeto cursor como gerador para recuperar todos os resultados
données et, si nécessaire , valider les modifications à l'aide de la méthode
Chapitre 4: Base de données et programmation de validação do objeto de conexão.
results = [Link]()
gráfico em Python Acessar um banco de dados MySQL
para linha_individual em resultados:
first_field = individual_row[0]
importar pymysql …
classe Dbconnect(objeto): #Utilisation directe du générateur
def init (self):
para linha_individual em [Link]:
[Link] = [Link](host='host_example',
port=3306, user='user_example', first_field = individual_row[0]
passwd='pass_example',db=‘base_example') Validar as alterações feitas no banco de dados:
[Link] = [Link]() db.commit_db()
Pr LAHCEN MOUMOUN def commit_db(self): Fechamento da conexão
ensablearn@[Link] [Link]() db.fechar_db()
def fechar_bd(self):
[Link]() ; [Link]()
Departamento de Engenharia Informática e Matemática - FI SIBD FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação em Python
Pr. Lahcen Moumoun 2 Pr. Lahcen Moumoun 3

Manipular um banco de dados MySQL As interfaces gráficas Tkinter Gestão das disposições geométricas dos widgets
importar pymysqPyLab permite usar facilmente NumPy e matplotlib A classe Tk do módulo Tkinter é um widget especial que, quando é
de pylab importar * f = Tk(); [Link]( "300x150")
instanciada, representa a janela principal da aplicação
Nom = Label ( f , text = "Saisissez votre nom : " )
… O método pack() garante o posicionamento de um widget em um widget
Prenom = Label ( f , text="Saisissez votre prénom : " )
tente conteneur (tornar o widget visível). champNom = Entry ( f );
db = Dbconnect() Cada widget possui um certo número de propriedades, chamadas de opções,
champPrenom = Entry ( f )
[Link]('SELECIONE * DE emp') podem ser lidas e configuradas como elementos de dicionário, ou
[Link]():print(emp) especificadas nos parâmetros do construtor. [Link](); [Link]();
sql="select year(hiredate), count(*) from emp group by year(hiredate)" O método mainloop() garante a exibição da janela principal e se coloca em [Link](); [Link]()
[Link](sql) ; atendimento dos eventos.
res=array([Link]()) Exemplo Nom. grade (linha=0, coluna=0)
annee=[Link]()[0] [Link] (linha=1,coluna=0)
nbEmp=[Link]()[1] de tkinter import* [Link](linha=0, coluna=1)
fig=figura() maFenetre = Tk() champPrenom. grid (row=1, column=1)
bar(annee,nbEmp) lblUser = Label (maFenetre , text= "User login"
ylabel("Nombre d'employés") ) txtUser = Entry (maFenetre) [Link](x=10,y=50,largura=120,altura=30)
xlabel("HireDate") txtUser['bg']="blue" [Link](x=140,y=50,largura=150,
mostrar() [Link](); [Link](fill=X)
altura=30)
lblPass = Label (maFenetre )
db.fechar_db() [Link](x=10,y=100,largura=120,
lblPass['text'] = "Password"
exceptExceptionaserr: txtPass = Entry (maFenetre ,bg="blue" ) altura=30)
print("Erro detectado:"+str(err) ) [Link](side=LEFT); [Link](x=140,y=100,
[Link](side=ESQUERDA) largura=150,altura=30)
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
[Link] Moumoun 4 [Link]
Pr. Lahcen Moumoun () 5 Pr. Lahcen Moumoun 6

Ações manipulando widgets Tkinter Menu Tkinter Ações manipulando widgets Tkinter
Exemplo O papel deste widget é permitir criar todos os tipos de menus utilizáveis por Cada widget pode associar uma função a um evento que recebe, por meio do
uma aplicação. biais da método bind :
classe Interface(Frame):
def init (self, fenetre, **kwargs): Exemplo [Link](evento, funcaoCallback)
Frame. init (self, fenetre, largura=768, altura=576, ** kwargs) O primeiro argumento do método bind é um evento. Define-se por uma
[Link](fill=BOTH); master = Tk() cadeia de caracteres da forma: "<modificador-tipo-detalhe>"
self.nb_clic = 0
# Criação dos widgets # étape 1: Création de la barre des menu modificateur Description Exemplo de tipo Description
[Link]=Label(self,text=" Você não clicou no botão.") menuBar = Menu(master) Alt, Control, Touche Alt, Ctrl ou Maj Botão clique do mouse.
[Link]() Mudança afundada LiberarBotão Botão do mouse solto
# étape 2: Création du menu principal Duplo, evento ocorreu 2 ou KeyPress Tecla do teclado foi pressionada
[Link]= Button(self, text=" Quitter ",command=[Link])
[Link](side="esquerda") menuFichier = Menu(menuBar, tearoff = 0) Triplo 3 vezes em um curto espaço de Liberação de Tecla Tecla do teclado foi liberada
tempos. Enter , Leave Movimento do mouse
[Link]=Button(self,text=" Cliquez ici",command= [Link] ) #Menu não acessível (tearoff= 0); Menu destacável (tearoff=1) Fechar Verdade se o usuário bloquear dentro (entrar) ou fora (sair)
[Link](side="direita") menuBar.add_cascade(label=" Fichier",menu=menuFichier) o modo Maiúsculo. du Widget relacionado ao evento
def cliquer(self):
self.nb_clic += 1
# étape 3: Création des sous menus Exemplo
Você clicou {} vezes. menuFichier.add_command(label="Nouveau") "<KeyPress-s>" :Touche S enfoncée ; "<Double-Button-1>" : Double clic gauche de souris
fenetre = Tk() menuFichier.add_command(label=" Ouvrir" ) <Control-Shift-KeyPress-H>: As teclas Control, Shift e H estão pressionadas simultaneamente
interface = Interface(fenetre)
[Link]() menuFichier.add_command(label=" Quitter",command=quit) O callback é a função que será chamada quando o evento ocorrer.
[Link]() # étape 4: Configuration de la barre des menus a função deve aceitar como argumento um objetevent.
A opção define a ação a ser executada quando um evento de clique em um botão ocorre. [Link] (menu=barraDeMenu)
def funcaoRetorno(evento): ...
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo de Programação em Python
Pr. Lahcen Moumoun 7 Pr. Lahcen Moumoun 8 Pr. Lahcen Moumoun 9
Ações manipulando widgets Tkinter Exemplo Exemple
do tkinter importar *
def init (self, fenetre, **kwargs):
Evento de teclado Description importar [Link] como tkFt
toque Enter
...
<Entrar>, <Retornar> classe Interface(Frame):
<Escape> , <Cancel> touche Échappement, combinação das teclas Ctrl+C [Link]=IntVar()
def init (self, fenetre, **kwargs):
<Alt_L>, <Cntrl_L>, <Shift_L> pressiona Alt, Ctrl, Shift (L para Esquerda, R para Direita) [Link]= Scale(master=frameTaille,
Frame. init (self, janela)
<Up>, <Left> , <Down>, <Right>, seta para cima, esquerda, para baixo, direita e teclas Início, Fim,
[Link](fill=BOTH) orient='horizontal',
<Home>,<End>,<Next>,<Prior>,<Tab> page down, page up, Tabulation troughcolor='dark grey',from_=1,
<Delete>, <Insert>, <BackSpace> toque Supressão, Inserção, retroceder (voltar atrás) [Link]=Entry(master=self) para=72,resolução=1,intervalotick=10,
<Caps_Lck>, <Num_Lck> tecla de bloqueio de maiúsculas, bloqueio numérico [Link](END,"Prog Python") length=150,variable= [Link],
<Pause>, <Print>, <FN> tocar Pausa, Impressão, de funções F1, F2, F3...
[Link](fill=X, padx=8, pady=8) command = [Link] )
<Key> toque qualquer
frm1 = Frame(self); [Link]() [Link](); [Link](14)
Evento do mouse Descrição radioGroup = LabelFrame(frm1, text="Style") framePolice = LabelFrame(frm1, text="Police")
<[Botão|PressãoDoBotão]-n> um dos botões do mouse está pressionado. n vale 1 (botão [Link] (linha=0, coluna=0, pady=8) [Link](linha=0, coluna=2, pady=8);
esquerda), 2 (botão do centro) ou 3 (botão da direita) stylePoliceFr = ["Normal", "Gras", "Italique", "Gras/Italique"] sbar =Scrollbar(framePolice)
<Bn-Motion> o mouse é movido sobre o widget, com um stylePoliceTk = ["normal","bold","italic","bold italic"] [Link]=StringVar()
botão pressionado (n vale 1, 2 ou 3) lista = Listbox(framePolice, alívio=SUNKEN, altura=6)
[Link] = StringVar() ; [Link](stylePoliceTk[0])
<ButtonRelease-n> o botão não está solto.
<Configurar> o tamanho do widget é modificado. forn em range(4): [Link](comando=[Link]);[Link](yscrollcommand=[Link])
<Double-Button-n>,<Triple-Button-n> equivalente ao Button, mas para um clique duplo ou triplo. bout=Radiobutton(master=grupoRadio,text=stylePoliceFr[n], # expand : remplir tout espace non utilisé dans le widget parent.
<Enter> , <Leave> o mouse entra no widget, sai do widget variable=[Link],value=stylePoliceTk[n],command=[Link])
[Link](anchor=W)alinhamento à esquerda [Link](side=RIGHT,fill=Y); [Link](side=LEFT,expand=YES, fill=BOTH)
para rotular [Link]ílias():
[Link](FIM, rótulo)
frameTaille = LabelFrame(frm1, text="Taille") [Link]('<Double-Button-1>', [Link])
[Link](linha=0, coluna=1, pady=8) [Link] = list
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
[Link] Moumoun 10 [Link] Moumoun 11 Pr. Lahcen Moumoun 12

Exemplo Manipulação de imagens em uma janela Tkinter Le module [Link]


Para processar imagens, Python possui uma biblioteca chamada Pillow (projeto PIL: O módulo [Link] é uma extensão da biblioteca Tkinter que fornece um
classe Interface(Frame): Biblioteca de Imagem Python). Ela é projetada para oferecer acesso rápido aos dados acesso ao estilo do jogo para os widgets Tk.
def init (self, janela, **kwargs):
... contenues dans une image avec la manipulation des différents formats de fichiers Exemplo de uso de [Link]
def handleList(self, evento): imagens como PNG, JPEG, GIF, TIFF e BMP.
índice = [Link]() de tkinter import ttk
[Link] = [Link](index) Exemplo
def comboAction(event) :
[Link]()
def atualizarTamanho(self, evento): fromPILimportImage, ImageTk select = [Link] ()
[Link]() root = Tk() print ( "Você escolheu: ", select )
def atualizar(self): [Link] ( "Imagem Tkinter" ) root = [Link](); [Link]('300x200')
[Link](font=([Link],[Link](), [Link]() )
[Link]( "300x100" ) labelTop = [Link] ( root ,text=" Choisissez votre Laptop")
fenetre = Tk() # Criação do objeto imagem [Link]()
[Link]("Exemple Tk") carregar = [Link]("imagens/[Link]") style = [Link] ()
interface = Interface(fenetre) #Redimensionar a imagem [Link] ("[Link]", padding=8, relief="flat",
[Link]()
[Link]((200,100) ) foreground="blue")
[Link]()
Criação de uma foto a partir do objeto imagem liste_valeurs=["Acer","HP","Del","Asus"]
photo = [Link]( load ) combo=[Link](root,values=liste_valeurs,style="[Link]")
Colocar a imagem em um rótulo [Link]();[Link](0)#elemento que é exibido por padrão
label_image=Label(root,image=photo); label_image.place(x=20,y=20) combo. bind ("<<ComboboxSelected>>", comboAction)vincular ação
[Link] () [Link] ()
FI SIBD - Módulo de Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 13 [Link] Moumoun 14 Pr. Lahcen Moumoun 15

A objeto Treeview A árvore de objetos A Árvore de Objetos

O objeto Treeview do módulo ttk permite organizar e visualizar em forma


d’une table de données sur une fenêtre Tkinter. def init (self, janela, **kwargs):
classe Interface(Frame):
...
Exemplo def init (self, fenetre, **kwargs):
# === Criação do objeto Treeview ===
...
frm2 = Frame(self) ; [Link]()
classe Interface(Frame): def comboAction (self, evento):
def init (self, fenetre, **kwargs): [Link] = [Link](frm2, colunas=
req="SELECIONE empno, ename, job DE
[Link] = Dbconnect() (1,2,3),altura=5,mostrar="títulos"
emp inner join dept on [Link]=
Frame. init (self, janela) [Link](x=50, y=50, width=300)
[Link] onde dname = '
[Link](fill=BOTH) [Link](1,width=50);[Link](2,width=100)
[Link](req )
frm1 = Frame(self, pady=8) [Link](3,width=150) ;
results = [Link]()
[Link]() [Link](1,text="EmpNo");
para ele em [Link].get_children():
Departamento Nome
[Link](it)
[Link](linha=0,coluna=0,margin=8) [Link](3, text="Job");
para linha em resultados:
[Link]('SELECT dname FROM dept') sbar = [Link](frm2,orient='vertical',
[Link]('', 'end', values=(row[0], row[1], row[2]))
results =[Link]() command=[Link])
[Link]=StringVar() [Link](side=DIRITA, fill=Y) fenetre = Tk()
[Link](side=ESQUERDO, expand=SIM, fill=TANTO) [Link]("Exemple Treeview"); [Link]("400x200")
[Link] = [Link](frm1, values=results, textvariable=
[Link] ) [Link](yscroll=[Link]) interface = Interface(fenetre); [Link]()
[Link](linha=0, coluna=1, pady=8);[Link](0) [Link]("<<ComboboxSelected>>", [Link])
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 16 [Link] Moumoun 17 [Link] Moumoun 18
Manipular um banco de dados MySQL Manipular um banco de dados MySQL Manipular um banco de dados MySQL
de tkinter import * [Link](x=50, y=50, largura=70, altura=30) btnajouter = Button(self, text="Ajouter", command=[Link])
de tkinter import ttk rbmas = Radiobutton(self, text='Masculin', variable=[Link], value=1) [Link](x=100, y=180, width=80, height=20)
de connexion import Connexion [Link](x=120, y=50, largura=70, altura=30) btnannuler = Button(self, text="Annuler", command=quit)
datenaiss = Label(self, text="Date de naissance :") [Link](x=200, y=180, width=80, height=20)
classe Interface(Tk): [Link] = Entry(self) [Link]()
def __init__(self): [Link](x=1, y=80, width=120, height=30) def adicionarPessoa(self):
[Link] = Conexão() [Link](x=130, y=83, width=180, height=20) [Link]('''select id from profil where libelle=%s''')
Tk.__init__(self) email = Label(self, text="Email :") [Link]()
[Link]('Ajout du personnel') [Link] = Entry(self) idP = [Link]()[0]
[Link]("380x220") [Link](x=5, y=120, largura=50, altura=30) [Link]('''inserir na pessoa (nomPrenom, sexo, dataNasc, email,
nomprenom = Label(self, text="Nom et Prénom :") [Link](x=60, y=123, largura=230, altura=20) idProfil) valores (%s,%s,%s,%s,%s)''',([Link](),[Link](),
[Link] = Entry(self) profil = Label(self, text="Profil :") [Link](), [Link](),
[Link](x=3, y=15, largura=110, altura=30) [Link](x=5, y=150, largura=50, altura=30) idP))
[Link](x=120, y=18, largura=250, altura=20) [Link]('SELECT libelle FROM perfil') [Link]()
sexe = Label(self, text="Sexe :") lstval = [Link]() tente:
[Link](x=1, y=50, width=50, height=30) [Link] = StringVar() f=Interface()
[Link] = IntVar() cbprofil = [Link](self, values=lstval, textvariable=[Link]) exceto Exceção como e :
rbfem = Radiobutton(self, text='Féminin', variable=[Link], value=0) [Link](x=60, y=150, largura=130, altura=20) imprimir (e)
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 19 Pr. Lahcen Moumoun 20 [Link] Moumoun 21

Manipular um banco de dados MySQL Manipuler une base de données MySQL Manipular um banco de dados MySQL
de connexion importar Connexion cbprofil = [Link](interf, values=lstval, textvariable=profil) def listarPessoas():
do tkinter importar * [Link](x=230, y=33, largura=100, altura=20) se [Link]()!=-1:
do tkinter import ttk árvore = [Link](interf, colunas=(1, 2, 3, 4, 5, 6), altura=5, mostrar='títulos') se [Link]() == 'Masculin':
db = Conexão() á[Link](x=0, y=70, largura=500) sx = 1
interf = Tk() [Link](1, largura=40) elif [Link]() == 'Feminino':
[Link]('Consulta do pessoal') [Link](2, width=100) sx = 0
[Link]("500x230") [Link](3, largura=60) req='''select [Link], [Link], [Link], [Link],
sexe = Label(interf, text="sexe :") [Link](4, largura=80) [Link], [Link] from personne per, profil pro
[Link](x=5, y=30, width=50, height=30) á[Link](5, largura=140) onde [Link] = [Link]'''
lstval = ["Masculin", "Féminin"] [Link](6, width=80) se [Link]()==-1 e [Link]()==-1:
cbsexe = [Link](interf, values=lstval) [Link](1, text='id') [Link](req)
[Link](x=60, y=33, largura=100, altura=20) [Link](2, text='nomprenom') elif [Link]()!=-1 e [Link]()==-1:
profil = Label(interf, text="Profil :") [Link](3, text='sexe') [Link](req + ''' e [Link] = %s''', (sx,))
[Link](x=170, y=30, largura=50, altura=30) [Link](4, text='datenaiss') elif [Link]()==-1 e [Link]()!=-1:
[Link]('SELECT libelle FROM perfil') [Link](5, text='email') [Link](req + ''' e [Link] = %s''', (perfil,))
lstval = [Link]() [Link](6, text='libelle') senão:
profil = StringVar() vsb = [Link](interf, orient="vertical", command=[Link]) [Link](req + ''' e [Link] = %s e [Link] = %s''', (sx, perfil))
[Link](x=485, y=72, altura=123) [Link](yscrollcommand=[Link]) res = [Link]()
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 22 Pr. Lahcen Moumoun 23 Pr. Lahcen Moumoun 24

Manipular um banco de dados MySQL Manipular um banco de dados MySQL Manipular um banco de dados MySQL
para it em tree.get_children(): •Soudages(numSo: smallint, libelle: varchar(20), dateOuverture: date, frm1_ = Quadro(self)
á[Link](it) dateFermeture: date) frm1_.pack(side=ESQUERDA)
para linha em res: •Sujets(numSu: int, intitule: varchar(20), numSo: smallint) frm2_ = Frame(self)
se row[2] == b'\x00': • Participants(numP: int, nomPrenom: varchar(30), sexe: boolean(255)) frm2_.pack(lado=DIREITO)
[Link]('', 'end', values=(row[0], row[1], 'Feminino', row[3], row[4], row[5])) • Votes(numV: int, dateVote: date, numP: int , numSu : int, ChoixVote : char(3) ) frm1 = Frame(frm1_)
senão: de tkinter importar * [Link]()
[Link]('', 'end', values=(row[0], row[1], 'Masculino', row[3], row[4], row[5])) do [Link] import * frm2 = Quadro(frm1_)
da [Link] import Figure [Link](preencher='ambos')
[Link]('<<ComboboxSelected>>', listerPersonnes) from db_connect import * frm3 = Quadro(frm2_)
[Link]('<<ComboboxSelected>>', listerPersonnes) importar matplotlib, numpy como np [Link]()
import [Link] como plt [Link]('SELECT libelle FROM sondages;')
search = Button(interf, text='search', command=listerPersonnes) [Link]('TkAgg') [Link] = [Link]()
[Link](x=130, y=200, largura=80, altura=20) da [Link].backend_tkagg import FigureCanvasTkAgg [Link] = StringVar()
classe Interface(Frame): [Link] = StringVar()
listerPersonnes() def __init__(self, fenetre, **kwargs): [Link] = Label(frm1, text="Libellé soundage:
[Link]() [Link] = Dbconnect() ,justificar=ESQUERDA).grid(adesivo =OESTE,linha=0, coluna=0, pady=8, padx=20)
Frame.__init__(self, fenetre) [Link] = Label(frm1, text="Intitulado assunto: ", justify=LEFT).grid(sticky =
[Link] = StringVar() W,row=1, coluna=0, pady=8, padx=20
[Link](fill=BOTH)
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação em Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 25 Pr. Lahcen Moumoun 26 Pr. Lahcen Moumoun 27
Manipular um banco de dados MySQL Manipular um banco de dados MySQL Manipular um banco de dados MySQL
[Link] = Combobox(frm1,width=25, textvariable=[Link], [Link]['show'] = 'títulos' votos v ON [Link] = [Link] E [Link] = [Link] ONDE [Link] = '
values=[Link]) [Link]("1", width=90, anchor='c') ' AGRUPAR POR [Link];
[Link] = Combobox(frm1, width=25, textvariable=[Link], [Link]("2", width=90, anchor='se') resultCommandes = [Link]()
estado=DESATIVADO [Link]("1", text="NomPrenom") para i em [Link].get_children():
[Link]("<<ComboboxSelected>>", [Link]) [Link]("2", text="EscolhaVoto") [Link](i)
[Link]("<<ComboboxSelected>>", [Link]) def escolherIdadeSom(self,event=None): para c em resultCommandes:
[Link](linha=0, coluna=1, padx=15, pady=6) [Link]["state"] = "ENABLED" [Link]("", 'fim', values=(c[0], c[1]))
[Link](linha=1, coluna=1, padx=15, pady=6) [Link](sondage=[Link]()) tente:
self.labelframe2 = LabelFrame(frm2, text="Infos Votos") def chooseSujet(self, event=None, sondage=""): fig = [Link]()
[Link](fill="both", expand="sim", pady=20, padx=20) [Link]( fig.set_figwidth(2.7)
[Link] = Treeview(self.labelframe2, selectmode='browse') SELECIONE [Link] DE sujets s JUNTE-se aos sondages so ON [Link] = [Link] fig.set_figheight(3)
[Link](fill="both", pady=20, padx=20) ONDE [Link]=' [Link](f"SELECT [Link], [Link], sum([Link]) ")
[Link] = Scrollbar(self.labelframe2, resultCommandes = [Link]() DE votos v, participantes p, assuntos s, pesquisas so ONDE [Link]=[Link] e
orient="vertical" [Link]["values"] = resultCommandes [Link]=[Link] e [Link]=[Link] e [Link]='{[Link]()}'
command=[Link]) e [Link]='{[Link]()}' Agrupar por [Link], [Link] ORDENAR
[Link](sujet=[Link]())
POR [Link]
[Link](side='right', fill='x') def atualizar(self, assunto=""):
res = [Link]()
[Link](xscrollcommand=[Link]) [Link](
todos os resultados = [Link](res)
[Link]["columns"] = ("1", "2") SELECIONE [Link], [Link] DE sujeitos s JUNTE-se a participantes p JUNTE-se

FI SIBD - Módulo Programação em Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 28 Pr. Lahcen Moumoun 29 Pr. Lahcen Moumoun 30

Manipular um banco de dados MySQL Cálculo Científico Cálculo Científico


choixVotes = [Link]()[1] importar [Link] tips.total_bill.descrever()
num = [Link]()[2] from pylab import * tips["total_bill"].describe()
[Link](choixVotes, num) importar pandas como pd tips.total_bill.média()
canvas = FigureCanvasTkAgg(fig, self) import [Link] como scSt tips.total_bill.std()
canvas.get_tk_widget().place(x=330, y=15) tips = pd.read_csv("[Link]", sep = ",") dicas.fatura_total.var()
except: def q2(): tips.total_bill.median()
passar # 2. Utilizar os diferentes atributos do dataframe para exibir os diferentes def q4():
consultation_des_votes = Tk() informtions relatives au dataset : Taille du dataset, type des variables, étiquette des #4. Representar separadamente em um gráfico o histograma de distribuição de "
consultation_des_votes.title("Consultation des votes") variáveis. total_bill »,celui de « tip » et un graphique boxplot (boîte à moustaches) pour visualiser
consultation_des_votes.geometry( "635x350" ) imprimir([Link]) para comparar as medianas associadas às variáveis «total_bill» e «tip».
interface = Interface(consulta_dos_votos); [Link]() subgráfico(2,2,1)
[Link]() imprimir([Link]) dicas["total_bill"].plot(kind="hist", título="hist total_bill",
[Link]() def q3(): xlabel="total_bill" )
#3. Fornecer uma estatística resumida (contagem, média, desvio padrão, mínimo, máximo) [Link](2,2,2)
# e aquela associada às diferentes variáveis quantitativas do conjunto de dados. tips["tip"].hist( )
#print([Link]()) [Link](2,1,2)
imprimir([Link]().arredondar(2)) tips[[
É possível selecionar as variáveis o​ u através de colchetes [], ou por um [Link]()
ponto.
FI SIBD - Módulo Programação em Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 31 Pr. Lahcen Moumoun 32 Pr. Lahcen Moumoun 33

Cálculo Científico Cálculo Científico Cálculo Científico 2


[Link](empilhado=True) def q5(): 1.
[Link]() # 5. Utilizar a função crosstab(variable, "freq") importar pandas como pd
def q6(): para determinar os efetivos associados à variável # Importez l'ensemble de données "[Link]" dans un dataframe
# 6. Retomar esses gráficos para comparar as variáveis "sexo" e "fumante" # qualitativo « sexo » então trace o diagrama df = pd.read_csv("[Link]")
t = [Link]([Link], [Link]) # en barres(type « bar ») et le diagramme circulaire Exiba o cabeçalho do dataframe
print(t) # (tipo « torta ») correspondentes. [Link]ça()
[Link](subplots=True, figsize = (12, 6)) 2.
[Link]() #t = [Link]([Link], "freq" ) # Exclua as colunas 'Lat' e 'Long' do dataframe
def q7(): #t = [Link]([Link], "freq", normalize=True) df = [Link](columns=['Lat', 'Long'])
print(tips.total_bill.corr([Link])) #print(t) Verifique se as colunas foram removidas corretamente
print([Link](tips.total_bill, [Link])) #[Link]() [Link]ça()
imprimir([Link](tips.total_bill, [Link])) #[Link](subplots=True) 3.
def q8(): # # ou Regroupe as linhas do dataframe por país e realize um acúmulo dos casos confirmados por
[Link]("conta_total", "gorjeta") # fig, ax = [Link]() dia
[Link]() # [Link]([Link](t).flatten(), labels = ["Mulheres", "Homens"]) df = [Link]('País/Região').sum()
#t = [Link]([Link], [Link]) Redefina o índice do dataframe
#[Link]() df = df.reset_index()
t = [Link]([Link], [Link], normalizar="índice") print(t)
FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 34 Pr. Lahcen Moumoun 35 Pr. Lahcen Moumoun 36
Cálculo Científico 2 Cálculo Científico 2 Cálculo Científico 2
4. 5. 7.
import [Link] as plt Selecione os dados relativos à China importar pandas como pd
Selecione os países específicos para os quais você deseja traçar um gráfico a china_data = df[df['Country/Region'] == 'China'] Importe o conjunto de dados "[Link]" em um dataframe
curva Mostre um histograma da evolução dos casos confirmados na China worldHR = pd.read_csv("[Link]")
countries = ['France', 'Germany', 'Italy'] china_data.plot(x='País/Região', y='Confirmados', kind='hist') Exiba o cabeçalho do dataframe
Traçar um gráfico de linha dos dados relativos aos países selecionados [Link]() [Link]ça()
para país em países: # Calculez le taux d'infection en Chine en utilisant la méthode "diff()" 8.
df[df['País/Região'] == país].plot(x='País/Região', y='Confirmados', kind='linha') china_data['Infection rate'] = china_data['Confirmed'].diff() Remova as colunas 'Classificação geral', 'Pontuação', 'Generosidade' e 'Percepções de corrupção' do
[Link]() Mostre a taxa de infecção na China dataframe
# Sélectionnez les pays dont le cumul total de cas confirmés dépasse 10e6 china_data.plot(x='País/Região', y='Taxa de infecção', kind='linha') worldHR = [Link](columns=['Overall rank', 'Score', 'Generosity', 'Perceptions of
mask = df['Confirmed'] > 10e6 [Link]() corruption'])
high_confirmed = df[mask] 6. Nomeie o índice do dataframe 'País ou região'
Tracer un graphique à courbe des données relatives aux pays sélectionnés # Crie um novo dataframe "Corona" com uma coluna contendo a taxa de infecção worldHR = worldHR.set_index('País ou região')
para país em alta_confirmados['País/Região']: máximo para cada país Verifique se as colunas foram corretamente removidas e se o índice está
df[df['Country/Region'] == country].plot(x='Country/Region', y='Confirmados', kind='linha') Corona = df[['Country/Region', 'Confirmed']].copy() corretamente definido
[Link]() Corona['Max infection rate'] [Link]()
9.
Funde os conjuntos de dados do dataframe "Corona" e "worldHR"

FI SIBD - Módulo de Programação Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 37 Pr. Lahcen Moumoun 38 Pr. Lahcen Moumoun 39

Cálculo Científico 2 Numpy Numpy


10. import numpy as np # print("Vetores próprios da Matriz A")
Calcule a matriz de correlação entre as colunas do dataframe fundido import [Link] como sclin # imprimir(V)
corr = merged_df.corr() import [Link] como esparso #
def mostrarMatriz(nom, mat): # W = [Link](W)
Exiba a matriz de correlação dimMat=[Link] # print("Classificação dos valores próprios da Matriz A")
print(corr) imprimir ("Matriz %s :" %nom) # imprimir(W)
11. para i em range(dimMat[0]): # A_inv_1 = [Link]([Link](V , 1/W),[Link]())
importar pandas como pd strMat="" print("Inversa 1 da Matriz A")
importar seaborn como sns para j em range(dimMat[1]): # imprimir (A_inv_1)
import [Link] as plt strMat+= (str("%.2f" % mat[i,j]) + "\t\t") # A_inv_2 = [Link](A)
[Link](x="PIB per capita", y="log('taxa máxima de infecção')", data=merged_df) print(strMat) print("Inversa2 da Matriz A")
[Link]() A = [Link]([[4,5,6,-1],[5,10,15,2],[6,15,1,4],[-1,2,4,-2]]) # imprimir (A_inv_1)
mostrarMatriz("Matriz A", A) # print("dif inv de la Matrice A")
# rank = [Link].matrix_rank(A) # imprima (A_inv_2 - A_inv_1)
print("Rango da Matriz A: ", rank) b = [Link]([3,-2,4,1])
# x = [Link](A,b)
#W, V =[Link](A) print("Matriz A")
# print("Valores próprios da Matriz A") imprimir (A)
FI SIBD - Módulo Programação Python
# imprimir (W) FI SIBD - Módulo Programação Python FI SIBD - Módulo de Programação Python
Pr. Lahcen Moumoun 40 Pr. Lahcen Moumoun 41 Pr. Lahcen Moumoun 42

Numpy Numpy Numpy


print("Vetor B") print(b) importar matemática # Calcular a aproximação de cos(x) com n = 5
print("Solução Ax=b") print (x) def C(x, n): resultat = C(x, 5)
lu,piv=sclin.lu_factor(A) c = 1.0 somme = 0.0 # Exibir a tabela de erros de aproximação entre C(x, n) e cos(x)
x = sclin.lu_solve((lu, piv), b) para i em range(n): # para x variar de 0 a 2π com um passo de incremento de 0.1
print("Solução Ax=b") somme += c c = -c * x * x / ((2 * i + 1) * (2 * i + 2)) tabela = tabelaErros(0, 2 * [Link], 0.1)
imprimir (x) retornar soma imprimir(tabela)
U=[Link]([Link](A), (4,4)).toarray() import numpy as npdef
showMatrice("U",U) tableErreurs(minX, maxX, pasX):
Criar um array numpy com os valores de x
xs = [Link](minX, maxX, pasX)
# Criar um array numpy com os valores de n
ns = [5, 25, 50, 100, 200]
Criar um array numpy com os erros de aproximação
erreurs = [Link]((len(xs), len(ns)))
para i, x em enumerate(xs):
para j, n em enumerate(ns):
erreurs[i, j] = abs(C(x, n) - [Link](x))
retornar erros
FI SIBD - Módulo Programação em Python FI SIBD - Módulo Programação Python FI SIBD - Módulo Programação Python
Pr. Lahcen Moumoun 43 [Link] Moumoun 44 Pr. Lahcen Moumoun 45

Você também pode gostar