3

これが私の問題です。長さが異なるさまざまな整数入力がありますが、特定の番号のプレフィックスのみを出力する必要があります。プレフィックス範囲は、5桁すべて20000〜20150です。これまでのところ:

print 20000 <= prefix <= 20150

これは問題ありませんが、Pythonを使用して番号のプレフィックス「20000」を検索またはキャプチャするにはどうすればよいですか。

例:20000201501

以下のコードを使用しても機能しません。このような場合、プレフィックスの値が存在するインスタンスが2つあるため、最初のプレフィックスのみが必要です。

obj = 20000201501
if prefix in obj
    print prefix 
4

3 に答える 3

1

オブジェクトを(を使用して)文字列にし、(プレフィックスとして)最初の5文字を​​スライスしてから、(を使用して)str整数に変換し直すことができます。int

 prefix = int(str(obj)[:5])
于 2012-10-09T15:24:51.580 に答える
1

非常に簡単です:

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

したがって、次のようなものが必要です。

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

print 20000 < prefix(20000201501) < 20150
于 2012-10-09T15:25:22.710 に答える
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])
于 2012-10-09T15:25:07.170 に答える