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

Python 如何将一些整数替换为字符串?,python,discord,discord.py,Python,Discord,Discord.py,我今天开始学习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:'Ha

我今天开始学习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:命令引发异常:TypeError:“int”对象不可iterable


有人能帮我吗?

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

str(zarList[0])

希望它有帮助,(刚才回答了您在标题上的问题)

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

str(zarList[0])

希望能有所帮助(仅回答标题上的问题)

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


返回一个int值,您无法对其进行迭代。

在查看代码时,错误不会出现,因为列表元素不是字符串,而是因为您试图迭代int元素,而不是iterable对象。
zarList = [str(x) for x in zarList]
在这里:

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

zarList = [str(x) for x in zarList]
基本上,您可以通过列表进行迭代,并使用str将其转换为字符串


基本上,您可以通过列表进行迭代,并使用str将其转换为字符串

您需要使用
范围进行迭代

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]


您需要使用
范围进行迭代

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]


您正在引用的变量有哪些,如“zarsonucsayi”和“tanim”?@AbhimanyuShekhawat oops,我的错。我已修复。请在您提供的信息后查看编辑后的答案。您正在引用的变量有哪些,如“zarsonucsayi”和“tanim”?@AbhimanyuShekhawat-oops,我的错。我修复了它。:p请在您提供的信息后查看编辑过的答案。您测试过您的答案吗?这只会创建一个生成器对象
['']
您测试过您的答案吗?这只会创建一个生成器对象
[']