TypeError:'int'类型的对象没有len()*减法*

问题描述 投票:1回答:4

我试图弄清楚是否有办法通过从4减去变量数来进行小计算

number_1_raw = random.randrange(1, 1000)
number_1_len = len(number_1_raw)
number_of_zeros = 4 - number_1_len
print("0" * number_of_zeros + number_1_raw)

我希望脚本给我一个范围从1-3的答案,但代码没有正确执行。

期望的输出将是这样的:0617或0071或0008等。

请帮忙解决这个问题,谢谢!

python python-3.x random
4个回答
0
投票

你不能在一个整数上调用len。

len()函数返回对象中的项数。当对象是字符串时,len()函数返回字符串中的字符数。

所以你能做的就是

number_1_len = len(str(number_1_raw))

str将int类型更改为字符串类型。


0
投票

这条线number_1_len = len(number_1_raw) 是问题。您将获得一个整数值number_1_len,长度为1。这个number_1_len实际上是你想要的零个数


0
投票

拳头我需要更好地了解发生的事情......

拳头

number_1_raw = random.randrange(1, 1000)

random.randrange返回一个数字,可能是int。

第二

number_1_len = len(number_1_raw)

有问题,因为number_1_raw是一个int而len是一个计算数组元素数量的函数,一个对象......但是number_1_len不是......那是一个int而len不能计算一个int元素。 ..

重要的是你要表明你所得到的所有错误......并更好地解释你正在尝试做什么......


0
投票

我想你需要:

import random

number_1_raw = random.randrange(1, 1000)
number_1_len = len(str(number_1_raw))
number_of_zeros = 4 - number_1_len
print(number_of_zeros)
result = "0" * number_of_zeros

print(result+str(number_1_raw))

产量

1            # number of zeros
0801

你的代码出了什么问题

您正在尝试查找整数number_1_raw的长度,它会给您错误,因为您需要迭代或字符串来查找该对象的长度。首先将其转换为字符串然后使用len

此外,在print语句中,您需要将number_1_raw转换为字符串,以便可以追加它。你不能在+str上执行int操作。

© www.soinside.com 2019 - 2024. All rights reserved.