教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
Pythonプログラミングを行う上で最初に覚えてほしい言葉がインデントです。
インデントとは、字下げを行う文法です。
インデントという言葉も、字下げという言葉も、日常生活では出てこないのでいまいちピンときません。
おそらく、学習初日にインデントを利用しないことのほうが多いと思います。
それでも、初期段階でインデントについて知っておくことは、Pythonプログラミングを学習する上でも重要です。
実際にインデントがどのようなものか見てみましょう。
Copied!天気 = "雨"
if 天気 == "雨":
print("傘をさします。")
今回はif文という文法を利用して解説します。
if文というのは、「もし、〇〇だったら、▲▲する」という処理です。
今回は、「もし、雨だったら、傘をさします」という流れの処理をしています。
if文に関する詳しい文法に関しては、再度if文で解説しますが、プログラミング初日でもわかるように日本語で解説してみます。
ここでは、if文に関してご理解をしていただかなくても良いです。
今回は、インデントの役割を解説するためにif文を利用しているということになります。
なお、if文自体は日常生活でも利用しています。
例えば、今回のプログラムの処理例を日本語に翻訳すると次のようになります。
Copied!「もし、文字列が雨だったら、傘をさしますという表示をする」
日本語に翻訳した文章を日本語で意味の通る文章に書き直すと次のようになります。
Copied!「もし、天気という名前の段ボール箱に雨という文字が入っていたら、傘をさしますという文字列を、画面上に表示します」
次の行では、天気という変数に雨という文字を代入しています。
Copied!天気 = "雨"
変数というのは、段ボール箱をイメージするとわかりやすいです。
つまり、天気 = "雨"
では、段ボール箱に「雨」という文字列を代入した状態です。
次の行では、「もし、段ボール箱天気という変数が、雨という文字だったら」という条件を指定しています。
Copied!if 天気 == "雨":
次の行では、 傘をさします。
という文字列を、画面上に表示する処理です。
Copied! print("傘をさします。")
print
の直後に有る ()
の中に、 "
で文字列を囲むことで、画面上に表示できます。
ここでは、if
を利用したコードのインデント部分の解説を行います。
最初に、インデントは字下げという解説をしていたかと思います。
字下げというのは、日本語の作文で言う、段落の最初に1文字空ける国語の文法を意味します。
日本語の作文では段落の最初に字下げしますが、Pythonプログラミングでは、段落ではなく if
などの処理部分で、字下げを行います。
プログラミングでは、1文字ではなく、半角スペース2個や4個空けることをインデント(字下げ)と言います。
今回、 if文のプログラムの解説
で、次の行が、 傘をさします。
という文字列を、画面上に表示する処理という解説をしました。
Copied! print("傘をさします。")
ここで重要なのは、 print
の直前にある空白部分です。
今回は半角スペース4個を利用して空白部分を入力しています。
この、半角スペース4個分の空白をインデントと言います。
インデント実装することで、 print
部分が if
の処理の一部として処理できます。
インデントを利用して、 print
部分が if
の処理の一部として処理された結果、次のようなプログラムが実行されます。
Copied!「もし、天気という変数に雨という文字が入っていたら、傘をさしますという文字列を、画面上に表示します」
今回解説した if
文のコードにインデントを利用しない場合次のようなコードになります。
Copied!天気 = "雨"
if 天気 == "雨":
print("傘をさします。")
if
でインデントを利用しないと IndentationError
というエラーが発生します。
つまり、インデントを実装する必要があるというエラーを意味します。
もちろん、 if
を利用した際、インデントを利用せずに処理する三項演算子という文法も存在します。
ただし、今回はインデントが何かという学習ですので、一旦は次のような流れで理解してみてください。
if
にはインデントが必要if
でインデントを利用しないと IndentationError
というエラーが発生するインデントしたプログラムを、字下げした日本語の文章として作文してみます。
当初次のように1行の日本語で解説していました。
Copied!「もし、天気という変数に雨という文字が入っていたら、傘をさしますという文字列を、画面上に表示します」
今回は、字下げ部分を意識して、次の実際のプログラムと対応するような形で日本語の作文にしてみます。
Copied!天気 = "雨"
if 天気 == "雨":
print("傘をさします。")
プログラム同様、3行の日本語で作文すると次のようになります。
Copied!段ボール箱である天気という変数に、雨という文字を代入しました。
もし、段ボール箱に入っている文字が、雨だったら、
傘をさします。という文字列を画面上に表示させます。
如何でしょうか。
もし、
から始まる条件に当てはまると、字下げしている 傘をさします。という文字列を画面上に表示させます。
という処理が実行される事が、作文内容からもわかりやすいと思います。
つまり、どのような 条件
と 処理
を行っているか気にしなくても、どの行が 条件
で、どの行が 処理
かわかりやすいです。
コンピュータにとっては、明確にインデントで区切らないと意味が通じません。
結果的に、インデントを利用しないと、 IndentationError
という、インデントが無いエラーが発生し、プログラムが動作しませんでした。
インデントという文法のお陰で、コンピュータにとってわかりやすいだけでなく、人間にとってもわかりやすいプログラムにすることができました。
インデントの解説なのに ブロック
とは何だろうというお気持ちよくわかります。
この段階では、 if
文も、 変数
も詳しく解説していない段階のため、 ブロック
も一旦読み物として楽しんで読んで下さい。
ブロックとは、インデントによって区切られた、プログラムの塊を意味します。
これまでに学習していただいた if
文は 2種類
のブロックに分けることが出来ます。
つまり、外側にある ブロック1
の中に、 ブロック2
が存在するということが言えます。
Copied!天気 = "雨"
if 天気 == "雨":
print("傘をさします。")
Copied! print("傘をさします。")
Pythonは、初学者にとって学習しやすく、短期間で良いコードを実装できるようになれます。
この根拠が、インデントとブロックという文法にあります。
Pythonプログラムを記述する時、インデントを正しく記述しないとエラーになります。
つまり、学習する段階で見るコードと全く同じ様にインデントを記載する学習こそが、確実にブロックを把握し、動作するプログラムを習得する最短と言えます。
他のプログラム言語では、インデントを記載しなくても動作する物が多いです。
インデントを記載しなくても動作するということは、なんとなく記述しても動作するというメリットと、きれいなプログラムを習得できないというデメリットを併せ持っています。
Pythonを学習していただくと、だれもが、きれいな記法を習得しながら、他のプログラム言語でも活かせるスキルを身につけることが可能です。