我正在Python上构建一个简单的discord bot,以便在输入的每个字符和其他一些东西之间留出空间。在
我的代码在这里:
import discord
import asyncio
client = discord.Client()
def bos(a):
a=a.upper()
a=a.replace("0", "SIFIR")
a=a.replace("1", "BİR")
a=a.replace("2", "İKİ")
a=a.replace("3", "ÜÇ")
a=a.replace("4", "DÖRT")
a=a.replace("5", "BEŞ")
a=a.replace("6", "ALTI")
a=a.replace("7", "YEDİ")
a=a.replace("8", "SEKİZ")
a=a.replace("9", "DOKUZ")
a=" ".join(a)
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_message(message):
if message.content.startswith('*'):
a = message.content[1:]
await client.send_message(message.channel, a.bos(a))
#counter = 0
#tmp = await client.send_message(message.channel, 'Calculating messages...')
#async for log in client.logs_from(message.channel, limit=100):
# if log.author == message.author:
# counter += 1
#await client.edit_message(tmp, 'You have {} messages.'.format(counter))
#elif message.content.startswith('!sleep'):
#await asyncio.sleep(5)
#await client.send_message(message.channel, 'Done sleeping')
client.run('token')
但当我在discord上写*test
时,终端返回:
有人能帮我修正这个代码吗?在
bos
是一个正则函数,而不是str
方法。此外,在函数内部给a
赋值不会影响调用之外的参数;您需要返回一个新的字符串。在bos
不是str
上的方法;它是一个全局范围的函数。不用a.bos(a)
,只需使用bos(a)
。在相关问题 更多 >
编程相关推荐