2017-06-20 88 views
0

我正在使用discord.py來製作一個discord機器人。我想在用戶提到的2個數字之間生成一個隨機數。因此,如果用戶鍵入%rand 1 9,我想機器人1和9之間的隨機整數返回,所以說4 這裏是我到目前爲止的代碼:Python discord.py閱讀完整信息

async def on_message(message): 
    x = str(1) 
    y = str(2) 
    if message.content.startswith('%rand ' + x + y): 
     NumberX = int(x) 
     NumberY = int(y) 
     msg = "Random Number Is: " + str(random.randint(NumberX,NumberY)) 
     await client.send_message(message.channel, msg) 

但是,這是行不通的。我不太明白我出錯的地方。我無法在其他地方找到其他解決方案。 我想我需要強制機器人閱讀完整的信息或類似的東西。任何幫助將不勝感激。先謝謝你。

+0

你在告訴它'如果message.content.startswith('%rand 12'):'那是你想要的嗎? –

回答

2

問題來自您的if語句從未實際觸發的事實。你正在檢查它是否以「%rand 12」開始,這不是你正在尋找的。這裏是你的代碼應該是什麼樣子:

async def on_message(message): 
    if message.content.startswith('%rand '): 
     vals = message.content.split(" ") 
     NumberX = int(vals[1]) 
     NumberY = int(vals[2]) 
     msg = "Random Number Is: " + str(random.randint(NumberX,NumberY)) 
     await client.send_message(message.channel, msg) 

另外,不要忘了import random才能使用該功能。

+0

我收到以下錯誤:'AttributeError:'消息'對象沒有屬性'split'' – Sank6

+1

等待別擔心,它只是使用'message.conent.split'而不是'message.split'只是,編輯你的答案... – Sank6