Java.use(better, Python)《1》文字列とリスト(1)
|記事一覧|《こちらに移動中です》2006年7月10日 (月)
Java.use(better, Python) # Jython はじめました
《1》文字列とリスト(1)《Jython2.5.0》
文字列
他のプログラミング言語と同様に、文字列は基本的な要素のひとつです。
s = "ABCDE" print type(s) print len(s) # -------------------------------- Output --5
変数 s に文字列を代入します。print 文を使うと、任意の情報が出力されます。組み込み関数 type を使うと、その型が得られます。出力結果を見ると、文字列の型は str となるのが分かります。組み込み関数 len を使うと、文字列の長さ(要素の数)が得られます。出力結果を見ると、その長さは 5 となるのが分かります。
print s[0] print s[4] print type(s[0]) # -------------------------------- Output -- A E
添字を使うと、文字列の各要素を参照できます。先頭の要素を参照するには、添字 0 を使います。末尾の要素を参照するには、文字列の長さ-1である、添字 4 を使います。出力結果を見ると、先頭の文字が A で、末尾の文字が E となるのが分かります。さらに、文字列の各要素の型も str となるのが分かります。
print s[5] # -------------------------------- Output -- IndexError: string index out of range
文字列の長さを超えて参照しようとすると、例外 IndexError を生じます。
print s[0],s[2],s[4] # -------------------------------- Output -- A C E
print 文の中で「,」を使うと、そこに空白を挿入します。出力結果を見ると、文字列 C の前後に空白を挿入しているのが分かります。
print "ABCDE"[1],"ABCDE"[3] # -------------------------------- Output -- B D
文字列は、変数を使わずに、リテラル表記のままで参照できます。出力結果を見ると、2文字目が B で、4文字目が D となるのが分かります。
print s[0],s[2], print s[4] # -------------------------------- Output -- A C E
出力結果を見ると、文字目が E が改行されずに、同じ行に出力されているのが分かります。これは、print 文の末尾が「,」であると、そこに空白を挿入するだけで、自動的に改行しないからです。
print s[0],s[2], print print s[4] # -------------------------------- Output -- A C E
そこで改行したいときには、print 文だけを記述します。出力結果を見ると、改行した後に、E を出力しているのが分かります。
for i in range(3): print i # -------------------------------- Output -- 0 1 2
組み込み関数 range を使うと、任意の範囲内の数を要素とするリストが得られます。for 文では、変数 i に 0 から 2 までの数が順に代入されます。print 文を使って、変数 i の値を出力します。出力結果を見ると、0 から 2 までの数を改行しながら、順に出力しているのが分かります。
for i in range(3): print s[i], print # -------------------------------- Output -- A B C
print 文を使って、i 番目の文字 s[i] を空白で区切りながら出力します。出力結果を見ると、0 番目から 2 番目のまでの文字を空白で区切りながら、順に出力しているのが分かります。
s = "XYZ" for i in range(3): print s[i], print # -------------------------------- Output -- X Y Z
変数 s に別の文字列を代入します。for 文は、複数行にまたがって記述できます。そのとき、インデントが必要になります。
for i in range(len(s)): print i,":",s[i] # -------------------------------- Output -- 0 : X 1 : Y 2 : Z
組み込み関数 range の引数に len(s) を指定すると、変数 i の値は、0 から文字列 s の長さ-1 まで変化します。出力結果を見ると、変数 i の値と i 番目の文字を空白で囲まれた ":" で区切りながら、順に出力しているのが分かります。
for i in range(len(s)): print "%i: %s" % (i, s[i]) # -------------------------------- Output -- 0: X 1: Y 2: Z
print 文には、書式指定文字を使えます。各書式指定文字には、タプル内に指定された式が順に対応します。%i には i の値を整数として、%s には s[i] の値を文字列として、それぞれの位置に挿入します。
for i in range(len(s)): print '"%s"[%i]: %s' % (s, i, s[i]) # -------------------------------- Output -- "XYZ"[0]: X "XYZ"[1]: Y "XYZ"[2]: Z
文字列の中で「"」を表現するには、「'」で囲まれた文字列を使います。出力結果を見ると、「"」で囲まれた文字列 s と、[ ] で囲まれた整数 i と、「: 」に続けて i 番目の文字 s[i] を、順に出力しているのが分かります。
==================================
森こねこ 著 ◆ 監修:小泉ひよ子とタマゴ倶楽部