如何将一些整数替换为字符串?

2024-09-27 21:33:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我今天开始学习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.

有人能帮我吗


Tags: 字符串机器人整数random骰子choicessumyi
3条回答

如果要将整数替换为字符串,可以将其转换为字符串。例如,如果要将数组的第一个数字转换为字符串,可以说:

str(zarList[0])

希望能有帮助,(只是回答了你在标题上的问题)

您需要使用range进行迭代

tanimsonuc = [zartanim[n] for n in range(zar_sonuc_sayi)]

输出:

['Düz', 'Eh', 'İyi', 'Baya İyi']

解释


  • [zartanim.get(n,n) for n in zarsonucsayi]

    您需要通过zarsonucsayi进行迭代才能使用range(zarsonucsayi)

    您需要相应骰子值的值,请使用zartanim[n]

查看代码时,不会出现错误,因为列表元素不是字符串,而是因为您试图迭代int元素和notiterable对象。 在这里:

tanimsonuc = [tanim.get(n,n) for n in zarsonucsayi]

zarsonucsayi = sum(zarsonuc)

返回一个int值,不能对其进行迭代

相关问题 更多 >

    热门问题