Python整数前缀范围算法

时间:2012-10-09 15:22:40

标签: python regex type-conversion

这是我的问题。我有各种长度不同的整数输入,但我只想打印某些数字前缀。所有五位数的前缀范围均为20000-20150。到目前为止,我有:

print 20000 <= prefix <= 20150

这很好,但如何使用Python在数字中找到或捕获前缀'20000'。

示例:20000201501

使用下面的代码不起作用,在这种情况下,因为有两个实例存在前缀的值,我只想要第一个前缀。

obj = 20000201501
if prefix in obj
    print prefix 

3 个答案:

答案 0 :(得分:1)

您可以将对象设为字符串(使用str),将前5个字符切片(作为前缀),然后将其转换回整数(使用int):< / p>

 prefix = int(str(obj)[:5])

答案 1 :(得分:1)

非常简单:

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

所以,你需要这样的东西:

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

print 20000 < prefix(20000201501) < 20150

答案 2 :(得分: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])