2012-10-09 3 views
3

여기 내 문제가 있습니다. 나는 길이가 다양한 다양한 정수 입력을 가지고 있지만, 특정 번호 접두사 만 인쇄되도록하고 싶습니다. 접두어 범위는 5 자리 모두 20000-20150입니다. 지금까지 내가 가진 : 괜찮지 만, 어떻게 찾거나 파이썬을 사용하여 수의 접두사 '20000'을 캡처 할파이썬 정수 접두사 범위 알고리즘

print 20000 <= prefix <= 20150 

.

예 : 접두사의 값이 존재하는 경우 두 개의 인스턴스가 있기 때문에 이러한 경우에, 작동하지 않습니다 아래의 코드를 사용하여이 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

당신은 객체에게 (int를 사용하여), (접두사로) 그것의 떨어져 처음 5 개 문자를 슬라이스 한 후 정수로 그것을 다시 변환 (str를 사용하여) 문자열을 만들 수 있습니다

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])