内部向け資料。
今日の内容:
(1) list に慣れる, append()
(2) 関数 int(), float()
(3) 関数range(), list(range())
(4) for 文
(5) 復習問題
(1) list に慣れる, append()
-
append(A)
は、リスト末尾に要素Aを加える。
# 復習
# 何が出力されるか?
a = [7, 8, 'taro', 'jack']
print(a)
print(a[2])
# 何が出力されるか?
a = [7, 8, 'taro', 'jack']
a.append('10')
print(a)
a.append(10)
print(a)
# 10 と '10' は別のもの。
# [7, 8, 'taro', 'jack', '10', 10]
- リストの位置指定の裏技: [-1] = マイナス1番目という位置は末尾。
# 何が出力されるか?
a = [7, 8, 'taro', 'jack']
print(a)
print(a[3])
print(a[-1])
# 要素数4のとき、住所"[3]"と住所"[-1]"は同じ。
- リストにリストを入れることもできる。
# 何が出力されるか?
a = [7, 8, 'taro', 'jack']
b = ['ML', 3.14]
a.append(b)
print(b)
print(a[-1])
print(a[-1][0])
print(a[-1][1])
(2) 関数 int(), float()
-
int(A)
: Aを整数に直す。 -
float(A)
: Aを実数に直す。
# 何が出力されるか?
b = '5'
c = int(b)
print(b)
print(c)
d = 5.5
e = int(d)
print(d)
print(e)
f = 1.234
g = float(f)
print(f)
print(g)
(3) range(), list(range())
-
int(A)
: Aを整数に直す。 -
float(A)
: Aを実数に直す。 -
list(A)
: Aをリスト型に直す。
A = range(10)
print(A)
B = list(range(10))
print(B)
C = list(range(1,11))
print(C)
D = list(range(1,11,2))
print(D)
E = list(range(11,1,-2))
print(E)
# [2000,2004,2008,2012,2016,2020] を表示するにはどうすれば良いですか?
# [2020,2016,2012,2008,2004,2000] を表示するにはどうすれば良いですか?
なお、Python2, Python3ではprint(range(5))
の出力結果が異なる。
# python3
$ print(range(5))
range(0,5)
# python2
$ print(range(5))
[0,1,2,3,4]
(4) for文 [for loop]
- 繰り返す内容が1行でまとめられるなら
for [繰り返しに関するルール]:
_タブ_ [繰り返す内容]
- 繰り返す内容が2行にわたるなら
for [繰り返しに関するルール]:
_タブ_ [繰り返す内容]
_タブ_ [繰り返す内容]
このようにタブを使ってブロックを作ります。
これは、見やすいようにする(可読性を増す)ために作られたPythonのルールです。
for loopの中でこれを行わないと、エラーを起こしたり、意図しない結果が生じます。
例えば、
list_a = ['Tokyo', 'Cambridge', 'Ann Arbor', 'Pittsburgh']
というリストがあり、これを順番に表示する場合、よく使われるのは、以下の2通りです。
- 「通し番号
i
」を0-3まで回し、「リストの中のi
番目の要素」を表示
for i in range(4):
_タブ_ print (list_a[i])
- 「リストの要素を最初から1個ずつ取り出して、それを表示」
for a in list_a:
_タブ_ print (a)
list_name = ['Taro', 'Jack', 'Tom', 'Andy', 'Jason']
print(list_name)
for x in list_name:
print(x)
print('---')
for i in range(10):
print(i)
print('---')
for i in range(2000,2021,4):
print(i)
print('---')
for i in range(2020,1999,-4):
print(i)
print('---')
N_people = len(list_name)
for i in range(N_people):
print(i, list_name[i])
for i in range(0,N_people,2):
print(i, list_name[i])
print('--. . . --')
(5) 復習問題
# Q. 何が表示されると思いますか?
list_name = ['Taro', 'Jack', 'Tom', 'Andy', 'Jason', 'Matt']
list_name.append('John')
list_name.append('Madoka')
list_name.append('Ichiro')
print(list_name)
N_people = len(list_name)
print(N_people)
for i in range(1,N_people,3):
print(i, list_name[i])
(6) if 文
if (条件A):
_タブ_ 「条件Aを満たす」場合読み込まれる
if (条件A):
_タブ_ 「条件Aを満たす」場合読み込まれる
else:
# その他
_タブ_ 「条件Aを満たさない」場合読み込まれる
if (条件A):
_タブ_ 「条件Aを満たす」
elif (条件B):
_タブ_ 「条件Aを満たさない」かつ「条件Bを満たす」
else:
# その他
_タブ_ 「条件Aを満たさない」かつ「条件Bを満たさない」
x = 5
if (x>0):
print('x=', x, '(This is larger than 0.)')
x = -3
if (x>0):
print('x=', x, '(This is larger than 0.)')
else :
print('x=', x, '(This is NOT larger than 0.)')
x = -3
if (x>0):
print('x=', x, '(x>0)')
elif (x>-10) :
print('x=', x, '(-10 < x < 0)')
else :
print('x=', x, '(otherwise)')