Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

desafio dev jr #1

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions construdelas/Desafio_dev_jr/desafio_dev_jr.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import pandas as pd
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] O que você acha de colocar uma docstring no início do arquivo explicando como este módulo funciona?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] O uso do pandas aqui é realmente necessário? Esta é uma biblioteca bem poderosa, mas para apenas escrever arquivos, utilizar os módulos nativos do python é uma melhor opção!

from os import path
import win32com.client as win32

print(""" Acompanhamento do jogo!
**************************
MENU DE OPÇÕES:
[1] para inserir
[2] para consultar
[3] para exportar em arquivo Excel
[4] para encerrar""")
resumo = []
cont = 0
opcao = 0
maxi = 0
mini = 1000
qmini = 0
qmaxi = 0
Comment on lines +15 to +18
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] O que você acha de utilizar nomes de variáveis mais descritivos?


while opcao != 4:
with open('resumo_dos_jogos.xlsx', 'a+') as arquivo:
arquivo = df
Comment on lines +21 to +22
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[question] Aqui o arquivo é aberto dentro de um contexto como a variável arquivo e depois atribuído a variável df. Não seria melhor trabalhar só com uma variável?

opcao = int((input('Digite a opção desejada de acordo com o Menu:')))
if opcao == 1:
cont += 1
pontuacao = int(input('Digite os pontos do último jogo'))
if cont == 1:
lista = [1, pontuacao, pontuacao, pontuacao, 0, 0]
mini = pontuacao
maxi = pontuacao
resumo.append(lista)
else:
if pontuacao > maxi:
maxi = pontuacao
qmaxi += 1
if pontuacao < mini:
mini = pontuacao
qmini += 1
lista = [cont, pontuacao, mini, maxi, qmini, qmaxi]
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] Ao invés de trabalhar com uma lista (que pode ter muitas variações nas posições dos dados) o que você acha de utilizar um dicionário? Assim a estrutura de dados ficaria bem mais definida, evitando assim dúvidas!

resumo.append(lista)

pastaUsuario = path.join(path.expanduser('~'))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] Em python, atribuímos os nomes de variáveis no estilo snake_cased

# print('#Gera a planilha a partir dos dados obtidos usando um dataframe e depois convertendo em excel')
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] Já que está trabalhando com git, evite adicionar comentários de trechos de código em seus commits!

df = pd.DataFrame(resumo)
df.rename(columns={0: 'Jogo',
1: 'Placar',
2: 'Mínimo da temporada',
3: 'Máximo da temporada',
4: 'Quebra de recorde min.',
5: 'Quebra de recorde máx'
}, inplace=True)
df.to_excel(pastaUsuario + '\\resumo_dos_jogos.xlsx', index=False)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] O que você acha de ao invés de utilizar um arquivo .xlsx ( que apenas o office consegue trabalhar) utilizar um arquivo .csv?

# print('Planilha salva com sucesso no diretório - ' + pastaUsuario + '\\resumo_dos_jogos.xlsx')


elif opcao == 2:
dados = pd.read_excel(pastaUsuario + '\\resumo_dos_jogos.xlsx')
display(dados)

elif opcao == 3:
# criar a integração com o outlook
outlook = win32.Dispatch('outlook.application')
# criar um email
email = outlook.CreateItem(0)
jogador = input('Digite o nome do jogador: ')
assinatura = input('Digite o nome do responsável pelo envio desse email: ')
anexo = pastaUsuario + '\\resumo_dos_jogos.xlsx'
# "C:/Users/amand/resumo_dos_jogos.xlsx"
# configurar as informações do seu e-mail
email.To = "[email protected]"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[question] E se outra pessoa utilizar este módulo? O email deve continuar sendo enviado para você ou não?

Comment on lines +62 to +70
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] Uma outra alternaiva seria utilizar a biblioteca nativa do python smtplib. Pois caso não possua o Outlook em sua máquina, o código não irá funcionar.
Aqui tem um exemplo de como enviar emails com a lib nativa do python.

email.Subject = "E-mail automático do Python"
email.Attachments.Add(anexo)
email.HTMLBody = f"""
<p>Olá, segue o resumo de desempenho dos jogos de {jogador}.</p>
<p>Abs,</p>
<p>Atenciosamente, {assinatura}</p>
"""
email.Send()
print("Email Enviado")

else:
print('Opção inválida. Tente novamente')
print('Fim do programa. Obrigado(a). Até a próxima')

"""Fazer uma lista de dicionários em que cada indice da lista é um dicionario com as respectivas chaves"""