Python:len()函数在s处不识别0

2024-06-08 07:34:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想测试一个10位数字的长度是否为10,但是每当数字以0开头时,len()只计算9。 我该怎么解决这个问题?在

目前:

某物是一个由数字组成的变量,我把这个变量转换成一个字符串,然后做了这个语句。在

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

我的当前代码:

^{pr2}$

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


Tags: 函数字符串代码lenif数字语句do
3条回答

提供您的代码,这是因为您将输入强制转换为int,然后将其向下转换为string(Python3中的input automatic类型是str,如果您使用Python2,请不要忘记将其转换为str或使用hackaholic之类的原始输入)。在

更换

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

number = str(number)

通过

^{pr2}$

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

如果将其强制为整数,则输入将值作为字符串

 number = input("Enter number: ")

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

len函数作用于字符串

如果使用python2.x,最好使用raw_input("Enter Number: ")

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

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

>编号:65950364数字:8

^{pr2}$

编号:0373451234数字:10

相关问题 更多 >

    热门问题