python勉強4日目 リスト/for文/range()関数

これは僕が最高のエンジニアになるまでの物語だ。
なお、本稿のコードはそのままコピペしても動かない場合がある(iPadで執筆していて波括弧やダブルクォートが本来のものと違うため)

リスト

リストを使えば、複数の値を1つの変数に入れることができる
使い方は

変数名 = [A,B,C,D]

具体的には

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]

と言った感じ。[]で囲む。
変数名がリストとなる。
変数名をprint()すると、リスト内にあるものが全て出力される。

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]
print(fruits)
# ['Apple', 'Orange', 'Strawberry', 'PineApple']

リストの中のもの(”Apple”や”Orange”)を「要素」または「インデックス」という。
要素には左から順番に要素Noが振り分けられている。

特定の要素を取り出したいときは「print(変数名[要素No])」とコードを書く。

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]
print(fruits[1])
# Orange

と言った感じだ。pythonでは数字を0から数えることに注意。
人間的には1番目がAppleで、2番目がOrangeで…となるが、Pythonでは0番目がAppleで、1番目がOrangeで…となるため、上記の例だとOrangeが出力されている。

複数の要素を取り出したい場合は[0:2](※0は省略可能)や「2:」と書く。

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]
print(fruits[0:2])
# ['Apple', 'Orange']
print(fruits [2:]
# ['Strawberry', 'PineApple']

[0:2]は「要素No “0”から“2の1つ前まで”(つまり1まで)」を意味する。
よって、「print(fruits[0:2])」の出力結果は「['Apple', 'Orange']」となる

「[2:]」は「要素No “2”以降」を意味する。
よって「print(fruits [2:]」の出力結果は「 ['Strawberry', 'PineApple']」となる。

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]
print(fruits [-1]
# PineApple

最後の要素を取り出したい場合は「-1」だ。
実は要素には最後の要素…つまり一番右の要素からも逆に(左の要素に)向かって「-1」から「-2」「−3」…と要素Noが振り分けられている.

変数名.append(“追加したい要素”)で、要素を追加することができる。

fruits = ["Apple", "Orange", "Strawberry", "PineApple"]
print(fruits)
# ['Apple', 'Orange', 'Strawberry', 'PineApple']

fruits.append("Grape"print(fruits)
# ['Apple', 'Orange', 'Strawberry', 'PineApple', 'Grape']

for文

for文は繰り返し行う処理を簡略化することができる。
後述するrange()関数と組み合わせて、指定の回数処理をループさせることも可能。
また、制御構文でもある。

for 変数名 in リスト/関数:
    処理

といった形で使う。コロンを忘れないように注意

names = ["Satou", "Suzuki", "Tanaka"]
    
for name in names:
    print(name + "さん"#
Satouさん
Suzukiさん
Tanakaさん

for 変数名 in (リスト/関数):

の部分でリストなど、複数の値をもつ変数や関数から値を1つずつ取り出して、(別の)変数に代入することができる。

上記の例だと、「Satou」「Suzuki」「Tanaka」が変数nameに1つずつ取り出されて代入される。
そして、変数に“さん”をつけて出力するように命令を出しているため、コードの実行結果は「Satouさん」「Suzukiさん」「Tanakaさん」となる。

もしfor文を使わずに同じ出力結果となるコードを書こうとすると以下のようになる

names = [“Satou”, “Suzuki, “Tanaka”]

print(f”{names[0]}さん”)
print(f”{names[1]}さん“)
print(f”{names[2]}さん”)

range()関数

範囲のある数字(int型)を簡単に扱うことができる関数。
for文と組み合わせて

for 変数名 in range():
    処理

このように使う。

rangeのあとの()には、順に「start値」「stop値」「step」値を指定する。
start値は数字をいくつから始めるか、stop値は数字をいつ終わらせるか(stop値に書いた値は含まない。)step値はstart値からstop値までの増減値を意味する。

値は必ずしも3つ全て埋める必要はない。

値を1つしか書かかなかった場合はstop値となり、0から1ずつ、stop値(stop値 -1の値)まで処理される。
値を2つ書いた場合はstart値、stop値となる。step値は自動的に1となる。

for num in range(10):
    print(num)

上記のコードは値が1つしか書かれていない。つまりstop値が(10と)なる。
内容としては
一行目で変数numに「0〜9」(9 = 10 - 1)までの数字を代入し
二行目でそれを出力する
というものになる
よって出力結果は「0」「1」「2」「3」…「9」となる。

for num in range (1,10):
    print(num)

上記のコードは値が2つ書かれているため、start値/stop値となる。
よって出力結果は「1」「2」「3」…「9」となる。

for num in range (0,10,2):
    print(num)

上記のコードは「変数numに0から数字を増加値2で9まで代入し、その結果を出力する」というもの。
よって、出力結果は「0」「2」「4」「6」「8」となる。


for i in range(10)
    print("Hello")

上記のコードは指定の回数処理をループさせる例。
コードを実行すると「Hello」が10回出力される。




この記事が気に入ったらサポートをしてみませんか?