スライシングも非常に便利。リストや文字列に対して使えます。文字列の処理なんかには重宝しそうです。
とりあえず使ってみましょう。
また標準出力から文字列を読み取り、受け取った文字列の8文字までを結果として返す関数と、9文字目以降を*でマスクして返す関数を作ってみる。
cutletters.py
def cutletters(s,x): return s[:x] def maskletters(s,x): cutlength = len(s) - x if cutlength > 0: s = s[:x] s = s + '*' * cutlength return s else: return s while(1): s = raw_input() if s == '': break print cutletters(s,8) print maskletters(s,8)
実行すると以下のようになる。
C:\Python24>python.exe cutletters.py Michael Jordan result1 : Michael result2 : Michael ****** abcdefghijklmnopqrstu result1 : abcdefgh result2 : abcdefgh************* hatena result1 : hatena result2 : hatena
マスクの方はもう少しスマートな書き方があるのかも。
追記:
こうすればもっとスマートだ。うん。リスト万歳。
def maskletters(s,x): L = list(s) L[x:] = ['*'] * (len(s) - x) return ''.join(L)