Jump to content

Thanael

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    217
  • Ingressou

  • Última visita

  • Dias Ganhos

    28

Postagens postado por Thanael

  1. Olá @One human tudo bem?

    Quando precisamos que um programa funcione initerruptamente é interessante usar o While True, ou seja ele ficará sempre no loop até que exista um break para lhe retirar deste loop.


    Uma maneira mais simples de realizar isso seria utilizando um While True e um break quando a opção digitada por 5, segue abaixo um exemplo de como eu realizaria este exercício.

    numeros = [int(input(f'Digite o {numero}° número: ')) for numero in range(1,3)]
    
    while True:
        opcao = int(input('''
    Escolha uma opção: 
    [ 1 ] - Soma
    [ 2 ] - Multiplicação
    [ 3 ] - Maior
    [ 4 ] - Novos números
    [ 5 ] - Sair
    
    Opção: '''))
        
        if opcao == 1:
            print(f'{numeros[0]} + {numeros[1]} = {numeros[0] + numeros[1]}')
        elif opcao == 2:
            print(f'{numeros[0]} X {numeros[1]} = {numeros[0] * numeros[1]}')
        elif opcao == 3:
            print(f'{numeros[0]} > {numeros[1]} = {numeros[0] > numeros[1]}')
        elif opcao == 4:
            numeros = [int(input(f'Digite o {numero}° número: ')) for numero in range(1,3)]
        elif opcao == 5: 
            print('Obrigado por usar o programa, até mais!')
            break
        else:
            print('Digite uma opção válida!')

    Print da saída:

              image.png                                 image.png


    Enfim espero que com este exemplo consiga lhe dar uma ideia, caso contrario fico a disposição para lhe ajudar no que precisar 👍

  2. Olá @llFernando tudo bem?

    Vou tentar lhe ajudar, no caso seu DataFrame na coluna Nota tem apenas 9 caracteres, porém você precisa que ele fique com 12 caracteres correto ? então tu precisa adicionar '0' até ficar com os 12 caracteres... 

    Sabe me informar se esses '0' para completar ficam no inicio ou no fim do campo, se puder me passar um exemplo fictício de nota e como gostaria que ficasse vou conseguir lhe ajudar com mais assertividade.
     
    Me passando essas informações vou conseguir lhe ajudar da melhor forma 👍

    Obs: Não sei se tem como definir o tamanho do campo da coluna, porém existem outras formas de obter só os 12 igual tu tentou fazer ou até mesmo adicionar os valores '0' para ter os 12 caracteres.

  3. Olá @Rafael Zille tudo bem?

    Vamos lá, primeiro precisamos criar essa lista com os 5 valores.

    numeros = [int(input(f'Digite o {numero}° número: ')) for numero in range(1,6)]
    print(numeros)

    image.png

    Agora realizar o esquema que tu comentou de categorizar os números.

    categorias = {
        1: [1, 25],
        2: [26, 50],
        3: [51, 75],
        4: [76, 100]
    }
    
    resultado = {}
    for key, value in categorias.items():
        resultado[key] = len([numero for numero in numeros if numero <= max(value) and numero >= min(value)])
        print(f'{resultado[key]} números estão na categoria {key}') 

    image.png

    Agora só realizar esse esquema de digita o novo número e inseri-lo no inicio da lista

    numeros.insert(0, int(input('Digite um novo número: ')))
    numeros.pop()
    
    print(numeros)

    image.png

    Pronto, ai caso tu precise que isso seja sempre repetido e tals só adicionar em um laço de repetição, acredito que tenha resolvido sua questão, caso não tenha compreendido algum ponto na resolução sinta-se a vontade para perguntar que ficarei feliz em tirar todas as suas dúvidas. 👍

    OBS: Vou adicionar o código em anexo caso queira ele inteiro exercicio.py

  4. Show @Tiago de Freitas Damasceno, agora consegui entender, segue abaixo um exemplo de como realizar isso, talvez não seja a melhor maneira caso sejam milhares de linhas, mas é um modo que funciona.

    df['target'] == None
    
    for index in range(len(df['unit_number'])):
        proximo = index + 1 
        
        # Verifica se o index do proximo é maior que o ultimo index... Evitar dar erro quando usar o ILOC
        if proximo > max(range(len(df['unit_number']))):
            df['target'].iloc[index] = 0
    
        elif df['unit_number'].iloc[index] == df['unit_number'].iloc[proximo]:
            df['target'].iloc[index] = 1
            
        else:
            df['target'].iloc[index] = 0
    
    print(df)

    Segue a saída deste código.

    image.png

    Acredito que seja isso que esteja tentando. A lógica que usei foi a seguinte, basta eu verificar o unit_number de 1 linha com o unit_number da próxima linha desta forma se eles forem iguais, sei que a linha atual não é a ultima que possui este valor, portanto seu target será 1.  Agora se o valor da linha atual ser diferente do valor da outra linha, significa que esta linha é a ultima que possui esse valor portanto seu target será 0.

    Fazendo um teste de mesa do código seria algo assim

    Linha         -      Valor Atual       -        Valor da próxima Linha            -         Target

        0                             1                                                1                                                   1

        1                              1                                                1                                                   1

        2                             1                                                1                                                   1

        3                           1                                             2                                             0

        4                             2                                                2                                                  1

        5                              2                                               2                                                   1

        6                           2                                            3                                              0

    Pontos de atenção para isso funcionar: 

    O DataFrame precisa estar ordenado pelo unit_number, a ultima linha não entrará nesta lógica pois não existe próximo valor, portanto basta setar 0 no target.

    Enfim acredito que seja isso que você precisava, caso contrario estou a disposição para lhe ajudar. 👍

  5. Olá @Tiago de Freitas Damasceno tudo bem?

    Poderia me explicar novamente qual a lógica para essa coluna target, não consegui entender muito bem essa questão, seria algo como.

    "Pega o valor de unit_number, verificar em todas colunas sensor caso o unit_number seja igual ao ultimo número de alguma dessas colunas ele coloca o target = 1 e se não não for igual ai target = 0 ?, ou o valor do unit_number e para saber em qual coluna olhar ?"

    Me explicando isso eu consigo lhe ajudar de forma mais assertiva, mas algumas maneiras que você pode fazer isso é seguindo essa lógica aqui,

    • cria a coluna com um valor None, df['target'] = None, 
    • Cria um Loop, FOR index, dado in df.iterrows( 😞
    • Realiza as verificações que quiser agora, pois o campo dado é um dicionário da linha do DataFrame então tem a liberdade para fazer as verificações que necessita basta usar dado['unit_number'] ou outra coluna.
    • Ai atualiza o próprio valor da linha através do index, algo como
      df['target'][index] = 0 ou 1

    Essa é uma maneira com mais liberdade para você realizar isso, outra maneira também é utilizando o apply( ) do pandas que ocorrerá de maneira semelhante a acima, porém com desempenho muito mais rápido. 

    Enfim, espero que essas ideias tenham lhe dado uma ideia de como prosseguir, caso mesmo assim precise de ajuda, peço que me explique melhor essa lógica para o Target que ai consigo lhe ajudar de forma mais assertiva. 👍

  6. Olá @Ferreira tudo bem?

    Existem algumas abordagens para realizar isso, vou lhe mostrar abaixo como eu realizaria isto. 
     

    1° Obter uma lista com as notas.

    qtd_notas = int(input('Digite o número de notas que deseja inserir: '))
    
    notas = []
    for index in range(qtd_notas):
        notas.append(int(input((f'Digite o valor da {index + 1}° nota: '))))
        
    print(notas)

    Exemplo de saída deste código.

    image.png

    2° Agora obter esses dados como 

    • quantas notas foram inseridas
    • a soma dessas notas
    • a média das notas
    • quantidade de notas acima da média (5,0)

    Para realizar isso vou fazer de um jeito mais resumido aqui, portanto caso tenha alguma dúvida sobre como fiz, sinta-se a vontade para perguntar que ficarei feliz em responder.

    print(f"Quntidade de notas inseridas {qtd_notas}")
    print(f"A soma das notas é {sum(notas)}")
    print(f"A media das notas é {sum(notas)/len(notas)}")
    print(f"A quantidade de notas acíma de 5 é {len([nota for nota in notas if nota > 5])}") 

    Exemplo de saída deste código.

    image.png

    Caso tenha ficado em dúvida relacionado a esta forma de printar os resultados ou em relação a como realizei essa parte de obter o número de notas acima de 5 sugiro dar uma olhada nestes posts onde explico alguns destes conceitos.

    Enfim esta é a maneira que eu resolveria este problema, caso tenha ficado qualquer dúvida pode me perguntar que ficarei feliz em explicar como fiz ou como você pode fazer de outra forma. 👍

  7. Olá @Ferreira tudo bem?

    Segue abaixo um exemplo de como realizar isso em Python.

    lista1 = ['a','b','c','d','e']
    lista2 = [1,2,3,4,5]
    
    lista3 = []
    for index in range(len(lista1)):
        lista3.append(lista1[index])
        lista3.append(lista2[index])
    
    print(lista3)
    # ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]

    Acredito que seja isso que você precisa correto, caso contrario estou a disposição para lhe ajudar no que precisar 👍

  8. Olá @daviborbinha tudo bem? caso seu problema esteja em encontrar dados, sugiro dar uma olhada no Kaggle lá você encontra diversos dataset, ai pode se divertir com eles para concluir seu trabalho. 

    Vou dar alguma sugestões do que pode ser feito.
     

    As possibilidades do que você pode fazer são muitas, sugiro olhar no Kaggle e encontrar algum assunto que goste ai a partir disso criar os gráficos com pandas e matplotlib. 👍

  9. Você em algum momento já precisou realizar cálculos com datas e também ficou perdido em como realizar isso sem quebrar a data? Antes de lhe mostrar como realizar isso, vou compartilhar com você um simples problema e quero que você pense em como soluciona-lo. 

    "Preciso saber qual dia era 10 dias atrás"

    Aparentemente parece algo simples, ou seja basta pegar o dia atual (29) e diminuir 10 dias ou seja 29 - 10 = 19 desta forma sabemos que 10 dias atrás era dia 19, mas e se hoje fosse dia 5 ? poderíamos usar essa mesma lógica ?  5 - 10 = -5 ou seja não iria funcionar, além disso precisaríamos saber também o número de dias do mês para obter um resultado assertivo.
    Complicado né ? 😅 o que parecia tão simples agora parece tão complicado.
     

    Mas calma, vou lhe mostrar como isso ainda é simples e fácil de realizar, ao lhe mostrar a maneira de realizar isso você ficará chocado com o quão simples é realizar isso em basicamente 1 linha de código.

    Primeiro precisamos ter as bibliotecas necessárias para trabalhar com as datas, portanto certifique-se de ter as bibliotecas datetime e dateutil

    Vamos agora resolver esse exercício que comentei anteriormente.

    from datetime import date
    from dateutil.relativedelta import relativedelta
    
    # Obter a data atual
    hoje = date.today()
    print('hoje:',hoje)
    
    #Agora basta realizar a subtração de 10 dias desta data
    new_data = hoje - relativedelta(days = 10)
    print("Data -10 dias:", new_data)

    Olha o resultado.

    image.png

    Mas Thanael.... Nesse caso ai é o mesmo que só fazer 29-10... Mas olha agora quando faço o exemplo que comentei que se hoje fosse dia 5
    image.png

    Viu só, agora a biblioteca realiza tudo isso de verificar numero de dias no mês e tudo mais, ou seja ela que realiza toda a magia 😄

    Nos exemplo fizemos subtração de dias de uma data, mas podemos realizar também adições, somente mudando o sinal de - ali para +Outro ponto, nos exemplo fizemos com dias, porém a biblioteca aceita outros termos como weeks, months, years sugiro você olhar na documentação para entender tudo que se pode fazer com este método de relativedelta portanto vou deixar abaixo um link para acessar a documentação. 👍

    Documentação: https://dateutil.readthedocs.io/en/stable/relativedelta.html

    • Amei 1
  10. Opa, que ótimo que funcionou, agora para salvar esse resultado vindo do request em um arquivo json, existem alguns meios, sugiro você dar uma olhada neste artigo.

    Trabalhando com JSON no Python

    No artigo tem uma parte que ele explica sobre load e loads, acredito que seja bem aquilo que tu precisa.

    "E o método loads, assim como o dumps, é para lidar com JSON em formato de string. No caso do loads, transformar uma string em um objeto Python."

    Acredito que lendo esse artigo tu consiga realizar isso, caso contrario me avisa que procuro outra forma de lhe ajudar ou até mesmo posso mandar um exemplo de código em últimos casos. 👍

  11. Olá @Paulo Leao tudo bem?

    Se não estou enganado isso ocorre por você estar modificando a mesma variável dicionario em todos os momentos. 

    Vamos analisar por exemplo a sua lista declarei dentro dela não esta sendo armazenado os dicionários e sim uma referencia a variável dicionario, portanto seria algo como 

    declarei = [dicionario, dicionario, dicionario]

    ao invés de 

    declarei = [{'a': 0, 'b': 0, 'c': 0}, {'a': 1, 'b': 0, 'c': 1}]

    ou seja sempre que você modificar a variável dicionário, você estaria modificando a lista como um todo, pois seus valores são referencias a variável dicionário. 
     

    Vou tentar exemplificar isso numa imagem.

    image.png

    Perceba que em nenhum momento eu inseri este valor 5 na variável B, só modifiquei a variável A.

    Portanto uma maneira de corrigir seu código é criar variáveis diferentes ou caso precise usar mesmo valores utilize o .copy( ) que desta forma você não estará mais referenciando a variável usada antes, veja o mesmo exemplo que citei a cima.

    image.png

    Desta forma ao modificar a variável A a B não será modificada também


    É bem confuso mesmo essa questão 😅 Sugiro você dar uma lida em alguns artigos, ficará mais claro de entender isso.
    Segue abaixo um artigo sobre

    VARIÁVEIS, VALORES E REFERÊNCIAS

    Enfim espero que isso consiga resolver sua dúvida, caso contrario estou a disposição para tentar lhe ajudar. 👍
     

  12. Olá @rssilva_22 tudo bem ? 

    Uma maneira simples de realizar isso é inserindo o seguinte no seu código.

    # Caso não tenha a biblioteca só executar pip install datetime
    from datetime import date
    from datetime import timedelta 
    
    data = date.today() - timedelta(days=7)

    O date.today( ) lhe trará a data de hoje no formato date, e o time delta é usado para diminuir 7 dias da data. 

    O formato da variável é date, portanto caso gere algum erro basta converte-la para string que ficara no formato desejado. 

    image.png

    Espero que seja isso que deseja, caso contrario estou a disposição para lhe ajudar. 👍

  13. Olá Dev!



    Hoje vou lhe mostrar uma nova forma de criar funções em Python de forma muito mais simples e prática.

    Acredito que assim como eu você já deve ter feito esta pergunta abaixo a si mesmo.
    "Poxa preciso usar o def toda vez que for criar uma função ? mesmo que minha função seja muito simples"

    Então a resposta para isso é NÃO você até pode, mas com certeza irá preferir usar o método que irei lhe explicar.

    Em Python existe um método muito mais simples para criar uma função, este método é chamado de Lambda!

    Funções Lambda consistem em um modo diferente e mais prático de declarar funções em Python, veja no final os comparativos entre funções Lambda e funções tradicionais, você vai se surpreender com o quão simples é utilizar as funções Lambdas.
     

    Vamos ver agora como criar uma função Lambda, é importante prestar atenção na sua estrutura.

    Criação de uma função Lambda!

    A criação de uma função Lambda é semelhante a criação de uma variável normal, lembrando de seguir a estrutura abaixo.

    image.png

    Está e a estrutura para criar uma função Lambda, simples não acha?

    1. Primeiramente passamos o nome 
    2. depois a palavra reservada Lambda
    3. Ai passamos os parâmetros
    4. Colocamos os dois pontos ( : ) para separar o parâmetro do retorno da função 
    5. Agora definimos qual será o retorno da função.

    Veja abaixo alguns exemplos de criação de funções Lambda

    # Printar Hello World 
    
    hello_world = lambda nome : f'Hello World { nome }'
    hello_world('Thanael')
    #'Hello World Thanael'
    
    # Potenciação
    
    potencia = lambda num1, num2 : f'{num1} Elevado à {num2} é {num1 ** num2}'
    potencia(4,3)
    #'4 Elevado à 3 é 64'

    Vamos ver agora alguns comparativos entre funções Lambda e funções Tradicionais!

    image.png

    Se mesmo com esse comparativo simples, eu ainda não consegui lhe convencer a usar Lambdas, veja abaixo outro comparativo utilizando utilizando estruturas de condições junto.

    image.png


    E então, você já conhecia esse método de criar funções?

    • Amei 1
  14. Olá @Diogo Nicolastudo bem? 

    Segue abaixo um exemplo de como realizar isso de forma simples.

    # 1° Obter as variaveis
    combustivel = int(input('Quantos livros de gasolina ainda restam no veiculo: '))
    consumo_medio = int(input('Qual o consumo médio (km/l) de gasolina do seu veículo: '))
    postos = [2,15,22,10.2]
    
    # 2° Verificar quantos kilomestros o carro faz com a gasolina atual
    # os \n é so para pular linha no resultado do print....
    km_a_rodar = consumo_medio * combustivel
    print(f'\nCarro aguenta andar {km_a_rodar} Kilometros\n')
    
    # 3° Ordenar a lista dos postos para facilitar.
    postos.sort()
    print('\n\n Postos de Gasolinas \n',postos,'\n\n')
    
    # 4° Verificar qual o posto mais próximo
    for posto in postos:
        if posto <= km_a_rodar:
            print(f'O Posto mais próximo de você está a {posto} Kilometros')
            break
        else:
            print(-1)
            break

    Pronto, o resultado deste código é o seguinte.

    image.png

     

    Espero que seja isso o que esta procurando, caso contrario estou a disposição para lhe ajudar no que for necessário. 👍

  15. Olá @zDnA tudo bem?

    Um jeito de realizar isso que você precisa é utilizando o styler do pandas, nele você consegue ajustar diversos pontos da visualização do DataFrame, como fonte de texto, cores, tamanhos e tudo mais. Em relação a essa questão de adicionar o R$ e a % você consegue fazer também mesmo se o campo for tudo texto.
    Uma maneira de fazer isso é usando o Apply com funções lambdas para verificar se é numero e adicionar o R$ ou se é texto ai você por exemplo não mexe.

    Tenho um Post aqui introduzindo e mostrando um pouco sobre o styler. 

    Estilização de um DataFrame

    Tenta dar uma pesquisada para ver se consegue realizar isso, caso contrario comenta aqui que ai eu tento fazer o código para resolver este seu problema 👍

    • Amei 1
  16. Olá @Guilherme Moreira tudo bem?

    Seu problema esta nesta parte do código

    for i in range(dim):
            partA += x[i]**2
            partB *= math.cos(float(x[i]) / math.sqrt(i+1))

    Perceba que o x[ i ] não irá funcionar pois seu X consiste no valor 60 (int) e você esta usando ele como se fosse um list tentando acessar um index do list

    Caso sua ideia seja apenas passar o valor do parâmetro ali, basta ao invés de x[ i ] ** 2 usar x ** 2.

  17. Quer saber como remover o fundo de uma imagem de forma simples e prática com Python?
     

    "Já perdi a conta de quantas vezes precisei retirar o fundo de uma imagem e toda vez é a mesma tristeza, de procurar por uma ferramenta online que realize isso ou até mesmo ter de abrir o Photoshop apenas para realizar o trabalho simples de remover o fundo da imagem"
    Obs: Eu já cheguei a utilizar até o Power Point para fazer isso 😅
     

    Porém alguém ouviu minhas preces 🙏 e desenvolveu uma maneira de realizar isso com o Python e o melhor de tudo, é muito simples tu consegue realizar isso com um simples comando. 

    Tá . . . 🤥 entendi, mas qual é esse comando mágico ?

    Melhor do que lhe falar o comando, vou lhe mostrar na pratica como fazer isso. 🤭.


    Veja no final o resultado do processo.

    1. Vamos importar a biblioteca que realiza essa magia.

    # pip install rembg para instalar a biblitoeca
    from rembg import remove

    2. Vamos importar o modulo Image da biblioteca PIL para facilitar a abertura de imagem.

    # pip install Pillow para baixar a biblioteca
    from PIL import Image

    3. Abrir a imagem.

    #Caminho da Imagem
    input_path = 'imagem.png'
    # Caminho para salvar a imagem sem fundo
    output_path = 'imagem_sem_fundo.png'
    # Abrir a imagem no Python
    input = Image.open(input_path)

    4. Tirar o fundo da imagem e salvar a imagem

    # Comando mágico que remove o fundo
    output = remove(input)
    # Salvar a imagem
    output.save(output_path)

    Resultado

    Lembrando que dependendo da imagem e do fundo o código possa não conseguir remover o fundo adequadamente, portanto sugiro sempre realizar testes para ver se de fato atingiu o resultado esperado.
     

    Imagem com fundo. 

    image.png

    Imagem sem fundo

    imagem_sem_fundo.png

     

    • Curtir 1
  18. Se você estuda sobre investimentos ou até mesmo já começou a investir em ações talvez já tenha se feito algumas destas perguntas abaixo.

    "Como utilizar a programação na hora de estudar qual ação comprar ? "
    "Como posso automatizar aquela filtragem inicial de ações que sempre consome muito tempo ?  "

     

    Neste Post vou fomentar sua curiosidade mostrando como é simples e prático obter os dados de ações. 

    Depois disso as possibilidade do que você poderá fazer com isso são inúmeras, desde verificar informações históricas, filtrar pelos indicadores e até mesmo criar gráficos para visualizar o comportamento da ação.
     


    Passo a Passo de como realizar isso.

           1. Então como podemos obter os dados de ações ? 

    Existem diversas bibliotecas que fornecem esses dados, uma delas e a que vamos utilizar neste Tópico é a yfinance que fornece os dados provindos do Yahoo Finance. Portanto antes de iniciar o desenvolvimento realize a instalação da biblioteca com o comando. 

    pip install yfinance


           2. Vamos passar a ação desejada.

    Para realizar isso basta executarmos o seguinte.

    import yfinance as y
    # Passar a ação desejada
    acao = yf.Ticker("ODPV3.SA")

    Neste exemplo quero visualizar os dados da ação ODPV3. Sugiro que você verifique como ela está dentro do Yahoo Finance, no meu caso está como ODPV3.SA.

       
       3. Como obter seus indicadores.

    Para visualizar as informações gerais das ações basta executar o seguinte.

    info = acao.info
    print(info)

    Este acao.info retorna um dicionário python contendo todas as informações da ação, este dicionário é bem extenso sugiro estudar ele visto que ele nós traz informações muitos relevantes como PegRatio, dividendYieldEnterprise Value (EV)EBITDA entre outras informações cruciais para calcular indicadores ou entender melhor sobre a empresa.

    (Segue abaixo a imagem de uma parte deste Dicionário) 

    image.png


       4. Obtendo histórico da ação.

    Para visualizar as informações executamos o comando acao.history( ) no qual podemos passar um intervalo de datas, neste exemplo quero obter todo o histórico da ação.

    hist = acao.history(period='max')

    Seu retorno consiste em um DataFrame, veja como é sua visualização.
    Lembrando que o valor ali está em R$ neste caso

    image.png

     

       5. Agora com os dados em mão podemos fazer qualquer coisa haha 🤑

    Como um exemplo do que podemos fazer irei mostrar um gráfico simples para verificar o histórico de cotações desta ação.

     image.png

     


    As oportunidades do que se pode fazer com estes dados são muitas, portanto espero neste post ter despertado sua curiosidade para aplicar seus conhecimentos de programação nas mais diversas áreas como finanças por exemplo

    • Curtir 1
    • Amei 1
  19. Olá @tulio.fem tudo bem?

    Você comentou que quando escreve em inglês ela funciona no caso ali do "yellow" correto?  

    Existe algumas bibliotecas simples que realizam traduções de palavras, uma alternativa para lhe ajudar seria obter seu input em portugues e usar uma dessas libs para converter a cor digitada para ingles. 

    Input: Amarelo 
    Sistema converte amarelo para yellow e pronto. 

    Dá uma olhada nesses artigos para tu ter uma ideia. 
    Tradução de Texto com Python e Googletrans

×
×
  • Create New...