Jump to content

Thanael

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    217
  • Ingressou

  • Última visita

  • Dias Ganhos

    28

Tudo que foi postado por Thanael

  1. Exato, vou lhe passar algumas dicas para concatenação de strings. variavel = 18 # Ambos fazem a mesma coisa que é concatenar maneira1 = 'minha idade é ', variavel maneira2 = 'minha idade é {}'.format(variavel) maneira3 = f'minha idade é {variavel}' #Maneira que eu utilizo e acho mais pratica A concatenação normal do python ocorre através de , Lembrando que ao utilizar o f'string' a variável deve estar dentro de { }. Portanto será necessário ajustar ali seu código para um dos casos acima.
  2. Olá @cmoreti tudo bem? Você consegue sim rodar uma query do SQL no Python, um ótimo jeito é rodar através do pandas com o função pd.read_sql('select * from table', conexao_banco), você utiliza o sql server correto, vou lhe passar um exemplo de como ficaria o código para que você execute o que deseja. import pandas as pd import pyodbc # Exemplo de conexão, basta acessar a documentação da biblitoeca conexao = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass') variavel = 100 df = pd.read_sql(f'SELECT * FROM TABLE WHERE numero = {variavel}' , conexao) Caso não queira utilizar um DataFrame, você pode estar criando um cursor nesta conexão do banco de dados e rodar os SELECTS através do cursor Alguns link que possam lhe ajudar. Documentação do pyodbc Documentação Pandas read_sql Enfim, espero que isso lhe auxilie, também estou a disposição para eventuais dúvidas.
  3. Olá @ningu3m0, tudo bem? Para obter o valor que esta dentro de um elemento do HTML deve-se usar o get_text( ) no seu find, desta forma ele trará o valor ">2<" que você deseja. tittle = soup.find('span',{'class':'swl-history...........').get_text() # O {'class':''} é outra maneira de passar a classe do elemento, particulamente acho mais facil usar assim Desta forma você conseguirá obter o valor que está no elemento. Se mesmo assim não funcionar, sugiro você rodar um find( ) na div em que esse span se encontra para verificar como ele está vindo dentro da div, ai com base nisso procurar novamente pelo span Mas acredito que adicionando o get_text( ) já irá funcionar adequadamente seu código, caso contrario me avisa que ai procuramos outra maneira de lhe ajudar. 👍
  4. Olá @Kryne, tudo bem? Então, nunca cheguei a criar um bot no Telegram com Python, uma vez estudei um pouco sobre isso, porém nada especifico, recomendo que de uma olhada no conteúdo da Hashtag Treinamentos, eles possuem conteúdos sobre a criação de Bots no Telegram com Python, segue abaixo alguns links que possam ser úteis. Artigo: BOT DE TELEGRAM COM PYTHON – CRIE O SEU PRIMEIRO BOT Vídeo: Como Criar um Bot de Telegram com Python
  5. Bom dia @carlosfarias, tenta fazer o seguinte, antes do FOR executa df.reset_index() Para resetar os index ai tenta executar normalmente o código. Caso mesmo assim não funcionar poderia me mandar um print do dataframe contendo os index? igual na imagem que mandei anteriormente.
  6. Thanael

    Biblioteca emoji

    Olá @willcjr, tudo bem? Você está passando um parâmetro que a principio não existe, o use_aliases, uma dica seria abrir a documentação da biblioteca emoji. lá existe uma tabela que mostra como utilizar ela, segue abaixo esta imagem. Ajusta seu código para um desses exemplos que irá funcionar corretamente. 👍
  7. Olá @carlosfarias segue abaixo um jeito de realizar o que você deseja. 👍 for qtd in df['Qtd_cartoes'].unique(): numero = 0 for index,row in df.iterrows(): if df.loc[index,'Qtd_cartoes'] == qtd: df.loc[index,'N°_cartão'] = df.loc[index,'N°_cartão'] + numero numero += 1 Com isso você terá o seguinte resultado. DataFrame antes do script DataFrame após o script Validação (Verifique os cartões de número 853) Enfim espero que isso resolva sua dúvida, caso contrário fico a disposição para lhe ajudar. 😀
  8. Olá @Diego Mancini tudo bem? Não entendi muito bem a sua pergunta... 😅 Mas acho que você queria que a variável saldo se torne o valor armazenado na variável total a cada iteração correto? Caso seja isso basta realizar o seguinte ini = float(input('Digite o valor inicial da dívida: ')) # Variavel total inicia com o valor da divida. total = ini for c in igpm_mes: pago = float(input(f'Digite o valor pago no mês {c[0]}: ')) saldo = total - pago juros = saldo * (c[1]/100) total = saldo + juros #Atualiza a variavel total, na proxima iteração o saldo será calculado com base nesse valor de total print(f'O saldo é de R${saldo}. O IGP-M oficial de {c[0]} que é {c[1]}% resulta em R${juros} de juros, ' f'dá um total de R${total}.') Acredito que seja algo assim que deseja, realizando um teste de mesa seria algo como: Suponhamos que possuo uma dívida de R$ 100,00 e eu pague R$ 10,00 todo Mês. # Variaveis ini = 100 total = 100 pago = 10 # Iteração 1° saldo = total - pago # 100 - 10 = 90 (saldo) juros = saldo * 10 % # 90 * 0.1 = 9 (juros) total = saldo + juros # 90 + 9 = 99 (total) # Iteração 2° | Perceba que agora total é 99 saldo = total - pago # 99 - 10 = 89 (saldo) juros = saldo * 10 % # 89 * 0.1 = 8,9 (juros) total = saldo + juros # 89 + 8,9 = 97,9 (total) # valor de total agora será 97,9 ou seja esse será o valor para descobrir o próximo saldo # e assim por diante... Enfim, espero que seja essa sua dúvida, caso contrario, fico a disposição para lhe auxiliar no que precisar 😀
  9. Então sabemos que o erro esta no Tipo do dado, tenta fazer o seguinte. for cliente in jsonString: clienteId = int(cliente['clienteId']) nomeAbrev = cliente['nomeAbrev'] nome = cliente['nome'] comandoSQL = f"INSERT INTO cliente (cliente_id, nome_abrev, nome) VALUES ({clienteId}, '{nomeAbrev}', '{nome}')" cursor.execute(comandoSQL) conexao.commit() Ao ajustar o comandoSQL, faz com que ele force adicionar as aspas (' item ') de modo com que não ocorra erro na hora da inserção no banco.
  10. Tenta ajustar para clienteId = int(cliente['clienteId'])
  11. Em relação ao seu código ao meu ver, pode ser que seu problema esteja no for cliente in jsonString: e na criação do comando SQL estar fora do seu LOOP, tenta ajustar para executar cada SQL de INSERT dentro do FOR, desta forma for cliente in jsonString: clienteId = cliente['clienteId'] nomeAbrev = cliente['nomeAbrev'] nome = cliente['nome'] comandoSQL = f"INSERT INTO cliente (cliente_id, nome_abrev, nome) VALUES ({clienteId}, {nomeAbrev}, {nome})" cursor.execute(comandoSQL) conexao.commit() Acredito que desta forma possa funcionar também, tenta realizar alguma das maneiras e me informa se funcionou, caso não funcione, procuramos outra solução.
  12. Olá @TecInfo tudo bem? Se eu fosse realizar isso utilizaria o pandas, para tratar os dados e inserir no banco, segue um exemplo de como ficaria o código. # Importar as libs import requests import pyodbc import json import pandas as pd # pip install pandas # Conexão com o banco server = 'SRVBanco' dataBase = 'DWSimu' userName = 'sa' passWord = 'senha' conexao = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+dataBase+';UID='+userName+';PWD='+ passWord) # Request request = requests.get('http://SRVAPI:8280/api/cdp/v1/getCliente') # Transformar em DataFrame dados = json.loads(request.content) df = pd.DataFrame(dados['items']) # Transformar o clienteId em inteiro - pode ser que ao criar o dataframe já venha como inteiro df['clienteId'] = df['clienteId'].astype(int) #Realizar a inserção no banco de dados df.to_sql('cliente',conexao,index=False,if_exists='append') Esta seria a maneira com a qual eu realizaria este processo.
  13. Opa boa tarde @EduardoT tenta realizar o seguinte. df.to_excel('nome_desejado.xlsx') Testei aqui assim e funcionou normalmente.
  14. Olá @rodr tudo certo? Não consegui entender muito bem qual a sua dúvida, a ideia é criar n listas iguais? caso seja isso basta criar um dicionário da seguinte forma. listas = {} lista_exemplo = [0, -1,5, -3,0, -4,5 , -6,0, -7,5, -9,0, -10,5] for i in range(int(input('Quantas listas?'))): listas[i+1] = lista_exemplo print(listas) Deste modo tu terá um dicionário com n keys, correspondente a uma lista cada. Agora se sua dúvida for, ao invés de criar listas iguais, você declarar os valores dela, basta fazer o seguinte. listas = {} lista_exemplo = [0, -1,5, -3,0, -4,5 , -6,0, -7,5, -9,0, -10,5] for index in range(int(input('Deseja criar quantas listas ? '))): lista = [] for item in range(int(input(f'Quantos items deseja adicionar a {index}° lista? '))): lista.append(int(input(f'Digite o {item} da lista. '))) listas[f'lista_{index+1}'] = lista print(listas) Deste modo você conseguira especificar quantas listas deseja criar e os valores para elas também. Enfim, não entendi muito bem sua dúvida, mas espero que seja essas as soluções que você esteja procurando, caso contrario, peço que me explique novamente o que procura que vou tentar lhe auxiliar novamente. 😅
  15. Thanael

    dúvida em índice lista

    Olá @rodr tudo bem? 😀 Para conseguir realizar isso vamos precisar utilizar a biblioteca do numpy. segue abaixo como ficaria o código para conseguir realizar isso. import numpy as np # Criar a o np.array lst=np.array([2.932112, 0.032211, 0.023123, -2.6032100, 0.9321001, -3.0321000, 0.3210000, 0.5430000, 0.0000000, 0.0000000, 2.8761000]) x=float(input('informe um valor =')) # Procurar o valor mais proximo difference_array = np.absolute(lst-x) index = difference_array.argmin() print(f'Valor mais proximo de {x} é {lst[index]} no indíce {index}') Espero que isso resolva sua dúvida, caso contrario estou a disposição para o que precisar. 👍
  16. @iPaulo Você quer anotar a quantidade de arquivos presente naquela pasta ? basta utilizar a função LEN( ), que trás o tamanho do nosso array que esta armazenando os arquivos. então basta você adicionar uma linha no seu código. with open('arquivo.txt', 'w') as arquivo: arquivo.write("\n".join(conteudo)) arquivo.write(f'\nTotal de arquivos {len(conteudo)}') Acredito que isto resolva sua dúvida.
  17. Olá @iPaulo tudo bem? 😀 Como o Listdir( ) irá lhe retornar uma lista (array), para salva-la em um arquivo .txt basta converte-la para uma string e usar o open( ) e write( ) para criar o arquivo. Segue um exemplo abaixo import os path = 'C:\\Users\\thanael.butewicz\\Documents\\Data Science' conteudo = os.listdir(path) with open('arquivo.txt', 'w') as arquivo: arquivo.write(str(conteudo)) Com isso você terá um arquivo chamado arquivo.txt contendo o resultado da seguinte forma ['item1','item2'] igual a um print() de uma lista do python, caso você queira salvar o nome de um item por linha, você pode fazer da seguinte forma. with open('arquivo.txt', 'w') as arquivo: arquivo.write("\n".join(conteudo)) Desta forma o resultado será item1 item2 Espero que isso resolva sua dúvida, caso contrario fico a disposição para lhe ajudar no que precisar 😀
  18. Thanael

    problema envolvendo lista

    Olá @rodr tudo bem? 😀 Podemos arredondar todos os valores da sua lista da seguinte maneira. distance_arredondada = [round(item,2) for item in distance] print(distance_arredondada) Você também pode arredondar os valores no momento de inserir na lista. Para isto basta adicionar a função round( número , casas decimais ) dentro do seu distance.append(a), ficando da seguinte forma distance.append(round(a,2) Acredito que isto resolva sua dúvida, caso contrario estou a disposição para lhe ajudar no que precisar 👍.
  19. Thanael

    dúvida nesse programa

    Olá @rodr para ajustar isso basta colocar o print("%.1f" % a) antes de adicionar o valor a variável a, ficando da seguinte forma. from math import * a=int(0) l=float(input('indique o comprimento da viga = ')) np =int(input('indique o número de pontos na viga = ')) for i in range(0,np+1): print("%.1f" % a) a+=(l/np) Obs: também é necessário adicionar o +1 na declaração do for, de modo com que ele vai do 0 até o np, caso contrario ele iria de 0 até um numero antes do np. Acredito que isto resolva sua dúvida 😄
  20. Olá Dev(a) tudo bem? Você já ouviu falar do termo List Comprehension em python? Você costuma usar ela no seu dia a dia com python? Hoje vou lhe explicar um pouco sobre o que são List Comprehensions e como usa-lo. List Comprehensions List Comprehensions são maneiras de criar e manipular listas dentro do python de forma mais curta em apenas 1 linha. Geralmente é utilizado para realizar operações simples dentro de uma lista (array). Segue abaixo a sintaxe de como utilizar ela. lista = [expr for item in lista] Olha uns exemplos de quão prático e usar as list comprehensions se comparado a um for convencional para operações simples. # List Comprehension tabuada = [i*5 for i in range(1,10)] print(tabuada) # Metodo convencional tabuada = [] for i in range(1,11): tabuada.append(i*5) print(tabuada) Outro ponto interessante é que pode ser utilizado estruturas de condição (IFs) dentro do List Comprehension #List Comprehension pares = [n for n in range(1,21) if n % 2 == 0] print(pares) # Metodo Convencional pares = [] for i in range(1,21): if i % 2 == 0: pares.append(i) print(pares) É uma maneira muito mais prática e sucinta de manipular e criar listas no python, você concorda? Deixa ai nos comentários se já conhecia ou já utiliza essa técnica no seu dia a dia.
  21. Olá @rodr tudo bem 😀? Segue abaixo algumas dicas que possam lhe ajudar. Obter uma lista de 5 números aleatórios. from random import randint numeros = [randint(0,5) for i in range(5)] # Trará um array com 5 números aleatorios de 0 a 4 Agora basta utilizar os números dessa lista que não será alterado para obter tanto a média quanto a soma. Média # Sum retorna a somatoria de uma lista de valores. # Len retorna a quantidade de números de uma lista de valores. media = sum(numeros) / len(numeros) Desvio Padrão import numpy as np # pip install numpy #Numpy.std() calcula o desvio padrão do array desvio_padrao = np.std(numeros) Acredito que isto resolva sua dúvida, caso contrario fico a disposição para lhe auxiliar no que for preciso. 👍
  22. Opa, se está salvando significa que um passo já foi 😄 Agora essa questão de salvar no mesmo arquivo, ai precisa dar uma olhada no código, acredito que ai precisa de uma alteração, mas nada que seja muito complicado, se puder mandar um print do código ou colar o trecho que cria o arquivo, assim podemos analisar e verificar como proceder. (Caso colar o código aqui sugiro colocar ele como um bloco de código clicando em
  23. Olá @Solut Contudo bem? Então nunca passei por este erro, mas vou tentar lhe ajudar mesmo assim, andei fazendo umas pesquisas relacionado a este erro e me deparei com este post feito no StackOverflow. Post: Google Colab script throws "Transport endpoint is not connected" Ao dar uma lida por cima, percebe-se que o erro é o mesmo que esta acontecendo com você, ou seja o script não está conseguindo conectar no arquivo, isso ocorre na linha 71 do seu código: with open(pdf_out,'wb') as pdf_named: pdf_writer.write(pdf_named) Sugiro dar uma olhada neste post e tentar realizar alguns dos passos dos comentários. Tenta realizar alguma daquelas ações e após isso comenta se deu certo ou não, caso não funcione, vamos procurar outra maneira de resolver.
  24. Olá @Jeyfferson tudo bem? Obrigado pela paciência 😄 Posso tentar lhe ajudar, nunca vi este erro antes, mas como você executou o pip install? tenta desta forma abaixo e me diz o retorno completo. pip install pip install MySQL-python pip install mysql-connector-python-rf
  25. Olá @web_trechosbr tudo bem? obrigado pela paciência 😀 Vou tentar lhe ajudar neste exercício. Então vamos começar. Primeira parte é obter os dois numero n1 = int(input('Digite a quantidade números que serão somados')) n2 = int(input('Digite o numero do inicio')) Agora "Verificar se o primeiro e par ou impar" if (n1 % 2 == 0 and n2 % 2 == 0) or (n1 % 2 != 0 and n2 % 2 != 0): n_inicio = n2 else: n_inicio = n2 + 1 print(n_inicio) Fiz essa logica onde: SE o n1 e o n2 forem ambos iguais (pares ou impares), o numero que irá iniciar a soma é igual ao n2, SENÃO o valor inicial será n2 +1 para ficar com o operador igual ao n1 Agora basta realizar o laço de repetição para realizar as somas total = 0 soma = n_inicio for i in range(n1): total += soma print(soma, ' + ') soma += 2 Este print foi só para ver se ficaria iguais no exemplo do enunciado. EX1: Para a entrada 4 e 5, o programa somará 4 termos pares a partir do número 5, portanto, a soma será 6+8+10+12. EX2: Para a entrada de 5 e 11, o programa somará 5 termos ímpares a partir do número 11, portanto, a soma será 11+13+15+17+19. Ex1: Ex2: Agora falta somente que "Ao final, imprima apenas o resultado da soma." print(total) Enfim, acho que é isso. Caso ficou com qualquer dúvida em relação a lógica que eu utilizei basta perguntar que ficarei feliz em explicar. Também fico a disposição para quaisquer outras dúvidas. 😀
×
×
  • Create New...