【问题标题】:How to fix' type error decimal module' in python如何在python中修复'类型错误十进制模块'
【发布时间】:2019-06-27 13:11:16
【问题描述】:

我正在制作一个随机数生成器,但遇到了编码错误

我曾尝试修改错误并检查了一些解决方案,但都没有成功

from decimal import Decimal
import random
def Random(num1,num2):
random_list=[random.randint(num1,num2)for i in range(num2)]
random_number=(random.choice(random_list))
randomer_number=random.choice(random_list)
print("The two numbers are",str(random_number),"and",str(randomer_number))

我希望生成随机数,但存在类型错误,其中“decimal.Decimal”对象无法解释为整数

【问题讨论】:

  • 你没有在你的代码中使用Decimal() 那么你是怎么得到这个错误的呢?
  • 请修正你的缩进。
  • 我猜:num2Decimalrange(num2) 给出问题。尝试在代码range( int(num2) )中使用int(num2)进行转换
  • 抱歉,我需要 num1 和 num2 都为十进制,因此我可以知道如何在保持 num1 和 num2 为十进制的同时防止此类错误吗?

标签: python integer decimal


【解决方案1】:

'decimal.Decimal' 对象不能解释为整数

这里有什么不清楚的地方?只需使用range(int(num1)) 而不是range(num1)

我想你想要类似的东西

from decimal import Decimal
import random


def Random(num1,num2):
    random_list=[random.randint(num1, num2)for i in range(int(num2))]
    random_number=(random.choice(random_list))
    randomer_number=random.choice(random_list)
    return random_number, randomer_number

r1, r2 = Random(Decimal(1), Decimal(100))
print(f"The two numbers are {r1} and {r2}")

正常运行

【讨论】:

  • 你能显示产生错误的代码吗?您在帖子中显示的那个根本不是python代码-您丢失了缩进,您根本不调用函数 Random() 等等。我已将我的猜测添加到答案中
  • 对不起,但是我再次尝试了代码并且没有错误。我想我在某个地方犯了一个错误,谢谢你的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2013-10-15
相关资源
最近更新 更多