Pythonでループの基礎と内包表記を対応付けて解説「宜保愛子じゃない!!」

この記事を読むことで、

・ループの基本的なコードの書き方

・内包表記ではどのように書くのか

・標準入力の使い方

の理解出来ます。

・ループの内包表記ってイマイチ分かんないよ。混乱するんだもん。

・ついでに標準入力についてザッとおさらいしたい

とう方にもお役立て頂けたらと思い、記事を書きました。


特に内包表記は通常のループの表記と一つずつ対応付けて書きましたので、この記事を読に終わる頃には内包表記にちょっと慣れると思います。

今回標準入力でキーボードから入力させる文字列は、ドラマ「不適切にもほどがある!」の中から選んだセリフ、「宜保愛子じゃない!!」です。

この記事の前編として、Pythonでループの基礎2つずつ増加と標準入力「同情すんなら金をくれ!」を掲載しました。

今回は、その記事の後編となります。

まずは基本的なループです。
0から4までの数を表示します。

for i in range(5):
    print(i)

このコードを内包表記で書くと、たったの1行で済みます。

[print(i) for i in range(5)]

実行結果です。

内包表記は、

[ 計算(表示)結果 いつものfor文 ]

という書式になるので、この数列を2倍にすることも可能です。

<2倍の基本的な書き方>

for i in range(5):
    print(i*2)

<2倍の内包表記>

[print(i*2) for i in range(5)]

実行結果です。

では、30から-3ずつカウントダウンしていくコードです。

for i in range(30,0,-3):
    print(i)

内包表記です。

[print(i) for i in range(30,0,-3)]    

実行結果です。

では、いよいよ、ドラマふてほど「宜保愛子じゃない!!」を指定の回数だけ表示させる、基本のFor文のコードと、内包表記の解説に移ります。

標準入力でキーボードから「宜保愛子じゃない!!」を入力してループで指定の回数までを表示するコードです。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

for i in range(N):
    print(str(i)+':'+Dialogue)

内包表記です。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

#ここを内包表記でループしている
[print(str(i)+':'+Dialogue) for i in range(N)]

実行結果です。

参考記事でこの記事の前編:
Pythonでループの基礎2つずつ増加と標準入力「同情すんなら金をくれ!」

最後までお読み頂きありがとうございました。

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonでループの基礎と2つずつ増加、ドラマの名台詞を表示、「同情すんなら金をくれ!!!!」

この記事を読むと、ループの基礎の基礎、ループで2つずつ増加して表示させること、
逆に数を減らしていくこと、ドラマの名台詞をループで指定した回数分だけ表示させること、標準入力の理解が出来ます。

・Python始めたばかりで、ループの書き方ってどうやるのか分からないんだけど・・・。

・Pythonのループで2ずつ増加(1個飛ばし)ってどうやるの?

・逆に減らすのは?

・指定の文字列をループで指定した回数分表示させたいんだけれど。

とお悩みな方にお役立て頂けたらと思い、記事を書きました。

指定の文字列表示に使う具体例は、ドラマの名台詞です。
「同情すんなら金をくれ!」
「僕は死にません!あなたが好きだから、僕は死にましぇ〜〜〜ん」
「宜保愛子じゃない!!」

の3つのセリフを使います。

まずは基本的なループです。
0から19までの数を表示します。

for i in range(20):
    print(i)

このようにrangeで指定する場合は、その数未満の数が対象になるので、0〜19までが表示の対象となります。
その実行結果です。

これを、2つずつの増加のループに書き換えます。
rangeのカッコ内に

range(開始,終了(指定未満),増加分)

と書きます。

for i in range(0,20,2):
    print(i)

2ずつ増加の実行結果です。

では、逆に数を減らす場合にはどうしたら良いでしょうか。

range(開始,終了(その数は含まない),減らす分)

ここでは、30から1までを3ずつ減らすコードと実行結果を記載します。

for i in range(30,0,-3):
    print(i)

3つずつ減らされていることと、0は含まれていないことが確認できました。

では、今度は指定の数だけドラマの名台詞を表示させてみます。
平成の名ドラマ「家なき子」の安達祐実さんのセリフ、「同情すんなら金をくれ!」を5回表示させます。
Nに表示回数の5、Dialogueにセリフを入れてコードを書いて実行します。

#表示する回数
N=5

#ドラマの名台詞
Dialogue='同情すんなら金をくれ!'

for i in range(N):
    print(Dialogue)

5回出力されました。
あの頃の安達さんの表情が蘇ります(涙)
で、range(5)は5未満なのに、5回表示されるのはおかしいじゃん!
4回にならね?
と思われたアナタ、鋭いです!!

print文の下記を変更して、ループの変数「i」も同時に表示させてみます。

print(str(i)+’:’+Dialogue)

コードと実行結果です。

#表示する回数
N=5

#ドラマの名台詞
Dialogue='同情すんなら金をくれ!'

for i in range(N):
    print(str(i)+':'+Dialogue)

他のセリフに変えるには、4行目のDialogueのところを変更して実行します。

#表示する回数
N=5

#ドラマの名台詞←ここを101回目のプロポーズに変更
Dialogue='僕は死にません!あなたが好きだから、僕は死にましぇ〜〜〜ん!'

for i in range(N):
    print(str(i)+':'+Dialogue)

武田鉄矢さんの金八先生とは全く異なるキャラで必死な愛を感じました。
ただ、当時、どこかの中学生の男子が真似して車の運転手に怒られていたという話を噂程度に聞いたことがあります。

では、ドラマのセリフを標準入力を使って、都度変更させるコードにしてみます。

print(‘あなたが好きな名セリフを入力して下さい—>>’,end=”)

end=”で、改行しないで直後に入力できるようにしている。

標準入力はinput関数を使用して、Dialogueに代入しています。

Dialogue=input()

では、コードと実行結果です。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

for i in range(N):
    print(str(i)+':'+Dialogue)

例えば、「不適切にもほどがある」の「宜保愛子じゃない!!」などを入力してみるのも面白いかも知れません。
宜保愛子さん、すっごく久しぶりに名前を聞きました。

(「愚か者」と「ギンギラギン」は、ブログで書いちゃっても良いのかな・・・?)

お若い方にとって、「宜保愛子って誰??」だと思われるかも知れませんので、簡単に書くと、「タレント、霊能力者、作家」です。

この記事の後半は、こちらで扱ったコードを中心に、基本のFor文コードと内包表記でのコードを対応付けていきます。
Pythonでループの基礎と内包表記を対応付けて解説「宜保愛子じゃない!!」

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)