簡體   English   中英

以 10 為底的值的無效文字

[英]Invalid literal for value with base 10

我正在制作一個 discord.py 機器人,按照教程,這是我的代碼 -

import discord
import os
import requests
import json
import random
from replit import db

client = discord.Client()
intents = discord.Intents.all()

#database func
def update_encouragement(encouraging_message):
  if "encouragements" in db.keys():
    encouragements = db["encouragements"]
    encouragements.append(encouraging_message)
    db["encouragements"] = encouragements
  else:
    db["encouragements"] = [encouraging_message]

def delete_encouragements(index):
  encouragements = db["encouragements"]
  if len(encouragements) > index:
    del encouragements[index]
    db ["encouragements"] = encouragements

#api requests
def get_quote():
    response = requests.get("http://zenquotes.io/api/random")
    json_data = json.loads(response.text)
    quote = json_data[0]['q'] + "\n -" + json_data[0]['a']
    return quote

#user-made quotes ----
sad_words = ["sad","unhappy","bad","miserable","depressed"]
starter_encouragement = [
  "You can do it!",
  "Hang in there!",
  "Its okay to feel sad",
  "Tommorow is a mystery, Today is a gift."
]

#clients and events-----
@client.event
async def on_ready():
    print('{0.user}'.format(client) + ' has successfully logged in.')


@client.event
async def on_message(message):
    if message.author == client.user:
        return
    msg = message.content
    if msg.startswith('.ltt help'):
        embedVar = discord.Embed(title="Linus Tech Tips Commands", description="Prefix - `.ltt` | Commands!", color=0x00ff00)
        embedVar.add_field(name="Help", value="Type `.ltt help` to get help on commands!", inline=False)
        embedVar.add_field(name="Inspire", value="`ltt inspire` to get inspirational quotes!", inline=False)
        await message.channel.send(embed=embedVar)

    if msg.startswith('.ltt inspire'):
        quote = get_quote()
        await message.channel.send(quote)
    options = starter_encouragement
    if "encouragements" in db.keys():
      #options = options.append(db["encouragements"])
      options.extend(db["encouragements"][:])

    if any(word in msg for word in sad_words):
      await message.channel.send(random.choice(starter_encouragement))
    
    if msg.startswith(".ltt new"):
      encouraging_message = msg.split(".ltt new ",1) [1]
      update_encouragement(encouraging_message)
      await message.channel.send("New encouraging message added")
    
    if msg.startswith(".ltt del"):
      encouragements = []
      if "encouragements" in db.keys():
        index = int(msg.split('.ltt del',1)[1])
        delete_encouragements(index)
        encouragements = db["encouragements"]
      await message.channel.send(encouragements)

async def on_member_join(member):
    await member.send('Welcome to Linus Tech Tips, check out the merch at https://lttstore.com')

client.run(os.getenv('TOKEN'))

運行並執行.ltt del命令后,我收到以下錯誤 - 在此處輸入圖像描述

即使在搜索了很多之后我也沒有找到解決方案,解決方案說 add float to int 給了我這個錯誤 -

index = int(float(msg.split('.ltt del',1)[1])) #added

在此處輸入圖像描述

當我執行它時會發生什么?
該代碼應該刪除“鼓勵”,這是在您鍵入.ltt new時分配給 discord 消息的字符串值。 但是,它不會刪除它,有時可能會說ObservedList(value=[])而在教程中它說["Added Encourage message 1", "Added Encourage message 2"]其中Added Encourage message 1是消息存儲在數據庫中。

注意:我使用 repli
另一個注意事項:不要關閉問題,說它的重復導致其他解決方案都不起作用。

確保消息不包含逗號、空格或字符。 (它應該只包含 int 或 float)

可以通過下面的例子來理解:-

msg = ".ltt del 92.091"  #Make sure that Your msg/command value should be in this format
print(int(float(msg.split('.ltt del',1)[1])))

Output 將是:-

92

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM