2012-10-09 102 views
3

這是我的問題。我有各種整數輸入的長度不等,但我只想要打印某些數字前綴。前綴範圍是20000-20150全部五位數字。到目前爲止,我有:Python整數前綴範圍算法

print 20000 <= prefix <= 20150 

這是好的,但我怎麼找到或捕獲前綴'20000'在數字使用Python。

例如:20000201501

使用下面的代碼將無法正常工作,在這種情況下,因爲有兩個實例,其中前綴的價值是存在的,我只想要第一個前綴。

obj = 20000201501 
if prefix in obj 
    print prefix 

回答

1

很簡單:

>>> num = 20000201501 
>>> print int(str(num)[:5]) 
20000 

所以,你需要像這樣:

def prefix(num): 
    return int(str(num)[:5]) 

print 20000 < prefix(20000201501) < 20150 
1

可以使對象(使用str),切掉它的前5個字符(作爲前綴),然後轉換回爲整數(使用int)的字符串:

prefix = int(str(obj)[:5]) 
0
def valid_prefix(number): 
    return 20000 <= int(number) <= 20150 

#obj is string: 
obj = "20000201501" 
print valid_prefix(obj[:5]) 

#obj is number: 
obj = 20000201501 
print valid_prefix(str(obj)[:5])