素人が0から学ぶプログラミング 17日目

今日の学び1 (進捗)

https://note.nkmk.me/python-for-usage/ を読み切る
https://note.nkmk.me/python-break-nested-loops/ の後半を読む
・教本 p104-108を改めて理解する

今日の学び2 (コード例と,教本に記載のないpoints)

Tky = ["Journey", "to", "the", "Sunshine"]
New_Tky = []
for i in Tky:
   New_Tky.append(i.upper())
print(New_Tky)

# ['JOURNEY', 'TO', 'THE', 'SUNSHINE']

* iは数値ではなく抽出された各要素なので、Tky[i].upper()とはならないことに注意。

Tky = ["Journey", "to", "the", "Sunshine"]
for i in Tky:
   Tky.append(i.upper())
print(Tky)

# (何も返ってこず)

* 取り出し中のリストに追加していくのはやはり無理そうですね。むしろ、エラーが出ないのが不思議です。

Tky = ["Journey", "to", "the", "Sunshine"]
for i, new in enumerate(Tky):
   new = new.upper()
   Tky[i] = new
   
print(Tky)

# ['JOURNEY', 'TO', 'THE', 'SUNSHINE']

* 教本には new = Tky[i] と書かれていますが、enumerate関数がイテラブルオブジェクトの要素とインデックスを同時に取得するものであるため、不要なはずです。ある意味enumerate関数の説明をしているにすぎません。

XtothepowerX = []
for i in range(1, 10):
   XtothepowerX.append(i ** i)
print(XtothepowerX)

# [1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489]

XtothepowerX = [i ** i for i in range(10)]
print(XtothepowerX)

# [1, 1, 4, 27, 256, 3125, 46656, 823543, 16777216, 387420489]

* インデントを意識せずに書くとprintがforループ内に入って[1][1.4][1,4,27],...と表示されてしまう場合があるので注意。
* range(n)は[0,1,2,...,n]つまりrange(0, n)を意味します。range(1, n)ではないので注意。
* 比較ですが、スライスは objectX[:4] objectX[2:] objectX[3:6] objectX[:](←copyができる)のように記します。
* コード2例目はfor文の代わりにリスト内包表記を採用しています。

今日の学び3 (感想)

試験があるので、7/23-7/30の期間は休もうと思います。

教本

『独学プログラマー Python言語の基本から仕事のやり方まで』
(コーリー・アルソフ著 清水川貴之監訳 日経BP社発行)

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