我试图找出是否有办法通过从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等。
请帮助解决此问题,谢谢!
答案 0 :(得分:0)
您不能用整数调用len。
len()函数返回一个对象中的项目数。 当对象是字符串时,len()函数返回 字符串中的字符。
所以您可以做的是
number_1_len = len(str(number_1_raw))
str将int类型更改为字符串类型。
答案 1 :(得分:0)
此行number_1_len = len(number_1_raw)
有问题。您将得到一个整数值number_1_len,它的长度为1。这个数字_1_len实际上是您想要的零个数字
答案 2 :(得分: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
操作。
答案 3 :(得分:0)
首先,我需要更好地了解正在发生的事情...
拳头
number_1_raw = random.randrange(1, 1000)
random.randrange返回一个数字,可能是整数。
第二
number_1_len = len(number_1_raw)
有一个问题,因为number_1_raw是一个int而len是一个用于计算数组,对象中元素的数量的函数...但是number_1_len不是...这是一个int,而len不能计算一个诠释元素...
重要的是要显示所有错误,并更好地说明您要做什么...
答案 4 :(得分:0)
我在特定行中添加了 str() 以便您的代码运行时没有任何错误
import random
number_1_raw = str(random.randrange(1, 1000)) #I added the str() in this line
number_1_len = len(number_1_raw)
number_of_zeros = 4 - number_1_len
print("0" * number_of_zeros + number_1_raw)
它完全是您的代码,除了修改后的行兄弟。 你写得很好,兄弟,但一个小的数据类型错误只有你在学习时才能纠正它们。 我希望这是有用的:)