为什么我输出7?

时间:2018-02-14 14:55:11

标签: python

.env

我对上面代码不太了解的是输出。我得到的输出是数字7.为什么7?

我知道如果 cleaningNumber + = number [i] 就是这样的话。但是当我将 + = 更改为 = 时,为什么会得到7。

3 个答案:

答案 0 :(得分:1)

您得到它是因为您不再使用复合作业而非作业。每次到达cleanedNumber = number[i]时,您都分配新值。

看来你希望从字符串中获取数字。由于您最后将类型更改为int,因此您也不关心小数位,否则您将调用float。鉴于这些假设,为什么不这样做:

number = "9,223,372,036,854,775,807"
cleanedNumber = int(''.join(number.split(',')))
print("The number is {}".format(cleanedNumber)) 

否则,您需要的更改是:

number = "9,223,372,036,854,775,807"
cleanedNumber = ''

for char in number: # just iterate over the string
    if char.isdigit():
        cleanedNumber += char

cleanedNumber = int(cleanedNumber)

print("The number is {}".format(cleanedNumber))   

答案 1 :(得分:0)

这是因为"7"是您迭代的最后一位数字,即'0123456789'。如果您需要进一步的指导,请查看this

答案 2 :(得分:-1)

因为你做错了。每当你应该追加它时,你都会重置cleanedNumber的值:

number = "9,223,372,036,854,775,807"
cleanedNumber = ''

for i in range(0, len(number)):
    if number[i] in '0123456789':
        cleanedNumber += number[i]

newNumber = int(cleanedNumber)

print("The number is {} ".format(newNumber))