Python のお勉強1 ( 文字列、for 文 )

特に理由はないのですが、最近、パーフェクト Python を読みながら Python の勉強中です。やったことを忘れないように「Python のお勉強シリーズ」としてメモに残しておきます。

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)


今回は、文字列と for 文について。

■ String.py

#coding: cp932

s1 = "abc"
s2 = "def"

print("s1:", s1)
print("s1+s2:", s1+s2) #連結
print("s1:", s1, "s2:", s2) #"abc def" と空白が挿入される

print("s1[1]:", s1[1]) #インデックス 1 の文字を取り出す
print("s1[0:2]:", s1[0:2]) #スライスの使用

print("len:", len(s1)) #文字の長さを取得

print("id(s1):", id(s1)) #オブジェクトには固有の id がある
print("id(s2):", id(s2))

s11 = "abc"
print("id(s11):", id(s11)) #同じ文字列だと同じ id になる ( s1 が指してる文字列が使いまわされるらしい )

s3 = "あいう"
print("s3:", s3)
print("len:", len(s3)) #日本語の文字数を返してくるみたい

■ 実行結果

s1: abc
s1+s2: abcdef
s1: abc s2: def
s1[1]: b
s1[0:2]: ab
len: 3
id(s1): 30315072
id(s2): 30365504
id(s11): 30315072
s3: あいう
len: 3


■ for.py

#coding: cp932

list = [1, 2, 3, 4, 5]
for i in list:
    print(i)
else:
    print("----(1)")

for index, val in enumerate(list): #enumerate 使うとインデックスも取れる
    print(index, val)
else:
    print("----(2)")

for i in ["a", "b", "c", "d", "e"]:
    print(i)
else:
    print("----(3)")

for i in range(5):
    print(i)
else:
    print("----(4)")

for i in range(5):
    print(i)
    if i == 2:
        break #break で抜けると else 部分は実行されない
else:
    print("not execute")
print("-----(5)")

# 辞書関連の for 文
map = {"key1":"val1", "key2":"val2", "key3":"val3"}
for key in map: # in *** の部分を辞書にするとキーでイテレートされる
    print(key)
else:
    print("----(6)")

for val in map.values(): #values() 使うと値でイテレートされる
    print(val)
else:
    print("----(7)")

for key, val in map.items(): #items() 使うとキー、値どっちも取れる
    print(key, ":", val)
else:
    print("----(8)")

■ 実行結果

1
2
3
4
5
----(1)
0 1
1 2
2 3
3 4
4 5
----(2)
a
b
c
d
e
----(3)
0
1
2
3
4
----(4)
0
1
2
-----(5)
key1
key2
key3
----(6)
val1
val2
val3
----(7)
key1 : val1
key2 : val2
key3 : val3
----(8)


以上です。

[ 環境情報 ]
Windows 7 SP1
Python 3.4.3