我今天开始学习Python。我正试图制造一个不和谐的命运骰子机器人。我想用字符串替换整数,我写了:
zarList = [1,-1,0]
zarsonuc = random.choices(zarList, k=4)
zarsonucsayi = sum(zarsonuc)
zartanim = {-4:'Felaket', -3:'Rezalet', -2:'Kötü', -1:'Dandik', 0:'Düz', 1:'Eh', 2:'İyi', 3:'Baya İyi', 4:'Harika'}
tanimsonuc = [zartanim.get(n,n) for n in zarsonucsayi]
await ctx.send(f"{tanimsonuc} bir zar attın.{sonuc},{zarsonucsayi}")`
但我认为这是一个打字错误:(
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'int' object is not iterable.
有人能帮我吗
如果要将整数替换为字符串,可以将其转换为字符串。例如,如果要将数组的第一个数字转换为字符串,可以说:
希望能有帮助,(只是回答了你在标题上的问题)
您需要使用
range
进行迭代输出:
解释
[zartanim.get(n,n) for n in zarsonucsayi]
您需要通过
zarsonucsayi
进行迭代才能使用range(zarsonucsayi)
您需要相应骰子值的值,请使用
zartanim[n]
查看代码时,不会出现错误,因为列表元素不是字符串,而是因为您试图迭代int元素和notiterable对象。 在这里:
自
返回一个int值,不能对其进行迭代
相关问题 更多 >
编程相关推荐