我现在正在尝试使用discord.py制作机器人,现在我正在测试基本功能。基本上,我有一个带有3个补语的变量数组,然后在命令/ compliment不和谐地运行时,它会选择一个随机数,然后从数组中打印出来(因此每次补语都是不同的。
但是,在变量数组中,我想将另一个变量放在一个恭维中,我以为您会使用f字符串,但这只会将所有内容转换为字符串。下面是我使用的代码
randomvariable = "hello"
randomvariablearray = "Good day","You are amazing","{myid} nice to meet you"
基本上,我希望该数组中的第三个句子读为“ Hello,很高兴认识你”。
从上面的数组中获取字符串。
答案 0 :(得分:2)
您可以使用格式功能:
greetings = "Hello"
txt = "{myid} nice to meet you"
print(txt.format(myid = greetings))
答案 1 :(得分:0)
也许您正在寻找.format()
?
答案 2 :(得分:0)
>>> myid = 'Hello'
>>> randomvariablearray = "Good day","You are amazing","{} nice to meet you"
>>> print(randomvariablearray[2].format(myid))
Hello nice to meet you
>>>
这是您要寻找的吗? 也有%s方法,但这是格式方法。
答案 3 :(得分:0)
您可以通过以下方式准备补语:
示例代码:
import numpy
# Put your sentence part in a list
randomvariablearray = ["Good day","You are amazing","{myid} nice to meet you"]
# Roll a number
number = np.random.randint(0, len(randomvariablearray))
# Create your randomize compliment
compliment = "hello, {0} !".format(randomvariablearray[number])
print(compliment)
答案 4 :(得分:0)
这是一个示例命令:
import random
@bot.command()
async def compliment(ctx):
rnd_compliment = "Hello"
compliments = ["Good day!", "You're amazing :)", f"{rnd_compliment}, nice to meet you!"]
await ctx.send(random.choice(compliments))
参考: