2014-11-02 20 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