2014-11-02 45 views
-1

我想测试一个10位的数字是10的长度认识0,但每当数从0开始,LEN()只计算9. 哪有我解决这个问题?的Python:将LEN()函数不会在一开始

目前:

的东西是由数字的变化,我转换成可变的字符串,然后说这句话。

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

+1

显示完整的代码这再现了这个问题。 – 2014-11-02 15:42:43

+0

什么呢当数用'0'它计数9. PLZ给乌尔期望的输入,重量ù获取和预期以何种形式输出 – Hackaholic 2014-11-02 15:43:09

+0

被存储在10位数字启动它意味着什么? – tvandenbrande 2014-11-02 15:43:16

回答

2

提供YOUT代码,那是因为你是铸造你的输入为int,然后铸造下来到字符串(输入自动型是海峡在Python3,如果你使用Python2,不要忘了投作为海峡或者像hackaholic一样使用raw_input)。

更换

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

number = str(number) 

通过

number = input("Enter number: ") 

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

+0

非常感谢您罗宾CARLIER了迅速而正确的反应<3 – Edwarric 2014-11-02 15:55:59

+0

@user:相反的意见thaking,考虑标志着答案被接受。 – GingerPlusPlus 2014-11-02 16:12:57

+0

'input'的类型为字符串在Python 3 – GingerPlusPlus 2014-11-02 16:14:26

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: ")

+0

谢谢你的正确反应Hackaholic! :d – Edwarric 2014-11-02 15:56:56

0

号码从0开始在在python基座8(八进制数)来表示。你需要将它们转换为字符串以计算他们的数字:

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

>号:65950364个位数:8

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

>编号:0373451234位数:10