我正在开发一个用于计算游戏中某些值的库。我有这段代码:
million = [1000000, "M"]
billion = [million * 1000, "B"]
trillion = [billion * 1000, "T"]
quadrillion = [trillion * 1000, "Qd"]
quintillion = [quadrillion * 1000, "Qn"]
sx = [quintillion * 1000, "Sx"]
septillion = [sx * 1000, "Sp"]
suffixes = [million, billion, trillion, quadrillion, quintillion, sx, septillion]
def getSetupResult(orevalue, furnacemultiplier, *upgrades, **kwargs):
for i in upgrades:
orevalue *= i
orevalue *= furnacemultiplier
for suffix in suffixes:
if orevalue > suffix[0] - 1 and orevalue < suffix[0] * 1000:
print("$"+str(orevalue)+suffix[1])
getSetupResult(quintillion,700,5,4,10,100)
当我尝试运行它时,它会引发此错误:
Traceback (most recent call last):
File "C:/Users/???/Desktop/MinersHavenCalculator.py", line 19, in <module>
getSetupResult(quintillion,700,5,4,10,100)
File "C:/Users/???/Desktop/MinersHavenCalculator.py", line 16, in getSetupResult
if orevalue > suffix[0] - 1 and orevalue < suffix[0] * 1000:
TypeError: '>' not supported between instances of 'list' and 'int'
是什么导致了这个错误?
原文由 Bloxy Craft 发布,翻译遵循 CC BY-SA 4.0 许可协议
您有很多问题无法区分列表和整数。
billion[0]
实际上不是1000000 * 1000
,它是一个长度为 1000 的列表。这是所有问题的根源,因为现在
suffix[0]
在循环的第一次迭代后成为一个列表。您需要的最大更改如下:这确保其中每一个都是具有正确后缀和值的二元列表。这是全部:
输出: