Çözüldü Python kodu istediğim gibi çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

ardozcnn

Femtopat
Katılım
1 Şubat 2023
Mesajlar
6
Daha fazla  
Cinsiyet
Erkek
Python'dan bir Discord botu kodlamaya başladım. Ve botuma ".dolar" yazınca doların güncel fiyatını gösteren bir kod yazdım ve çalıştı.

Python:
@client.command()
async def dolar(ctx):
 url2 = "https://www.google.com/finance/quote/USD-TRY?hl=en"
 sayfa1 = requests.get(url2)
 html_sayfa1 = BeautifulSoup(sayfa1.content,"html.parser")
 dolar = html_sayfa1.find("div",class_="YMlKec fxKbKc").getText()
 embed = discord.Embed(title = "USD -> TURKISH LIRA" , description = f"{dolar} TRY", color = discord.Colour.red())
 await ctx.send(embed=embed)

Daha sonra ".dtl (sayı)" yazınca o yazdığımız sayının kaç dolara eşit olduğunu gösteren bir kod yazdım. Tekrardan üstteki koda benziyor ama doların fiyatı X yazılan sayı ekledim ama bana doların fiyatını birkaç kere yazıyor.

Python:
@client.command()
async def dtl(ctx, num1:int):
 url2 = "https://www.google.com/finance/quote/USD-TRY?hl=en"
 sayfa1 = requests.get(url2)
 html_sayfa1 = BeautifulSoup(sayfa1.content,"html.parser")
 usd = html_sayfa1.find("div",class_="YMlKec fxKbKc").getText()
 carpim=usd * num1.
 embed = discord.Embed(title = "USD -> TURKISH LIRA" , description = f"", color = discord.Colour.red())
 embed.add_field(name = f'{num1} USD', value = f"```{carpim}``` TL" , inline = True)
 await ctx.send(embed=embed)

1675259058330.png
 
Çözüm
Büyük ihtimalle `carpim=usd * num1` içine verdiğiniz usd bir string. (Ki .getText() kullandığınıza göre öyle) Siz de çarpımı yaptığınızda aynı metni kaç kere yazmanız gerektiğinin bir "çarpım"ını yapıyorsunuz. Bu `carpim=usd * num1.`ı çalıştırmadan önce `usd = float(usd)` yazarsanız düzelmesi lazım.
Büyük ihtimalle `carpim=usd * num1` içine verdiğiniz usd bir string. (Ki .getText() kullandığınıza göre öyle) Siz de çarpımı yaptığınızda aynı metni kaç kere yazmanız gerektiğinin bir "çarpım"ını yapıyorsunuz. Bu `carpim=usd * num1.`ı çalıştırmadan önce `usd = float(usd)` yazarsanız düzelmesi lazım.
 
Çözüm
Evet denedim şimdi oldu, teşekkür ederim.
Büyük ihtimalle `carpim=usd * num1` içine verdiğiniz usd bir string. (Ki .getText() kullandığınıza göre öyle) Siz de çarpımı yaptığınızda aynı metni kaç kere yazmanız gerektiğinin bir "çarpım"ını yapıyorsunuz. Bu `carpim=usd * num1.`ı çalıştırmadan önce `usd = float(usd)` yazarsanız düzelmesi lazım.
 

Geri
Yukarı