禁止文字の検出

# -*- coding: utf-8 -*-
FORBIDDEN_CHARS = set(unichr(c) for c in xrange(0xFF61, 0xFFA0))

s = "入力文字列"
if any(c in FORBIDDEN_CHARS for c in unicode(s, 'utf-8')):
    print "半角カタカナを入れてはいけない"
else:
    print "OK"

たぶんこういうのは正規表現で書いた方が実行速度は速いと思います。
でもこの文字の集合として扱う方法も、検出文字の組み合わせを集合演算で切り替えられたりするので捨て難いものがあります。