Python:len()函数在开始时不识别0

时间:2014-11-02 15:40:32

标签: python function

我想测试一个10位数的长度是10,但只要数字从0开始,len()只计算9。 我该如何解决这个问题?

目前:

某个东西是由数字组成的变量,我将变量转换为字符串,然后创建此语句。

if len(something) != 10:
    (do something)

我目前的代码:

number = int(input("Enter number: "))

number = str(number)

if len(number) != 10:
    print ("Not 10 digits long")
else: 
    print ("Good")

如果我输入一个10位数的数字就可以了,但是,当我输入一个10位数的数字并从零开始时,len()函数将该数字识别为9长。帮助PLZ

3 个答案:

答案 0 :(得分:2)

提供你的代码,因为你将输入转换为int,然后将其转换为字符串(输入自动类型是Python3中的str,如果你使用Python2,请不要忘记施放为str或使用像hackaholic这样的raw_input)。

替换

number = int(input("Enter number: "))

number = str(number)

通过

number = input("Enter number: ")

所以数字将直接是一个字符串。你可以使用len()。它甚至适用于0000000000

答案 1 :(得分:1)

你强制它为整数,输入取值为字符串

 number = input("Enter number: ")

if len(number) != 10:
    print ("Not 10 digits long")
else: 
    print ("Good")

len函数适用于字符串

如果你使用python 2.x更好地使用raw_input("Enter Number: ")

答案 2 :(得分:0)

以0开头的数字以python中的基数8(八进制数)表示。您需要将它们转换为字符串以计算其数字:

# Not converted
number1 = 0373451234
print "number: "+str(number1)+" digits:"+str(len(str(number1)))

<强>&GT;编号:65950364位数:8

# Converted
number2 = "0373451234"
print "number: "+str(number2)+" digits:"+str(len(str(number2)))

<强>&GT;编号:0373451234位数:10