1. Pythonの基本

1-1. Pythonとは
 Pythonはプログラミング言語の1つです。プログラミング言語とは、コンピュータに命令を与えるプログラムを記述できる言語になります。
 Pythonはインタプリタ方式のプログラミング言語になります。インタプリタ方式とはプログラムを1行ずつ読みとってコンピュータが読める機械語に変換する方式になります。PyhonやJavaScriptがインタプリタ方式の代表的なプログラミング言語になります。PythonやJavaScriptなどの比較的簡単に書けるインタプリタ型言語を総称してスクリプト言語とも呼ばれます。
 インタプリタ方式の他に、コンパイラ方式があります。コンパイラ方式とは、プログラムをすべて読み取ったあとにまとめて機械語に変換する方式になります。コンパイラ方式のプログラミング言語には、C、C++、C#、Java、Go、Swiftなどがあります。

1-2. PyScriptとは
 PyScriptとは、WebブラウザでPythonを動かせるようにする仕組み(フレームワーク)です。この学習サイトでも使用しています。以下のプログラミングセル内にPythonのプログラムを記述して実行させることができます。動作させるには、[Shiftキー]+[Enterキー]もしくは「セルの右端に隠れている三角ボタン」をクリックします。それでは以下のプログラムをプログラミングセル内に記入して実行してみましょう。※2023.10.28現在、PyScriptは開発中のものになります。途中で利用できなくなる機能などが発生する可能性がある点は注意してください。

▽サンプルプログラム1-1. Hello World!

print("Hello World!")
▼プログラミングセル(プログラムの記述と実行:[Shiftキー]+[Enterキー]もしくは「セルの右端に隠れている三角ボタン」をクリック)1-1. packages = [] terminal = false

※Webブラウザを更新して再読み込みすると、それまでに入力したプログラムはクリアされます。長いプログラムを作成するときは、プログラムが保存できるGoogle Colabolatoryなどの別の環境を利用しましょう。

1-3. Pythonの基本構造
 以下はPythonの基本的な構造になります。C言語などとは異なり、プログラムの最初に呼び出されるmain関数がなくても1行目から順に読み込まれて動作していきます。また、変数の型が自動できまったり、{ }を記述しない代わりに、プログラムのブロックを半角スペースで作ったインデントで制御したりします。

▽サンプルプログラム1-2. 1から100までの自然数の合計

total = 0
for i in range(1,100): # for文ではループ処理を行うプログラムブロックが必要
    natural_number = i # 行頭のインデント(スペース)は半角スペースでそろえる
    total = total + natural_number
print("1から100の合計は" + str(total) + "です")
▼プログラミングセル1-2.

1-4. インデントの注意
 Pythonでは、半角スペースを使って行頭のインデントをそろえることで、プログラムのグループ(ブロック)を識別します。もしインデントが適切にそろっていない場合はエラーになるので注意してください。

▽サンプルプログラム1-3. 1から100までの自然数の合計(インデントエラー版)

total = 0
for i in range(0,100): # for文ではループ処理を行うプログラムブロックが必要
    natural_number = i + 1
     total = total + natural_number #エラー箇所
    print("natural_number is " , natural_number)
print("1から100の合計は" + str(total) + "です")
▼プログラミングセル1-3.

1-5. コメント文

 プログラムとして読み込まれずに無視されるコメント文は、無視したい行の先頭に#を記述します。また、シングルクォートやダブルクォートを3つ連ねたもの(三連引用符)で囲むことで複数行のコメント文とすることもできます。

▽サンプルプログラム1-4. コメント文

print("コメントの前")
# 行頭の#から行末までの文章が無視されます(改行するとコメントから抜け出ます)
print("コメントの後")
print("コメントの前")
""" 三連引用符で囲まれた範囲が無視されます。
    囲まれた範囲の中で改行することもできます。
    後で出てくる関数の1行目の説明文にも利用されます。"""
print("コメントの後")
▼プログラミングセル1-4.

1-5. Pythonの2つのモード
 Pythonにはインタラクティブモード(対話処理)とスクリプトモード(一括処理)の2つのモードがあります。PyScriptを使った本サイトはインタラクティブモードになります。プログラミングセルに書き込んだプログラムを順番に(対話的に)実行していくことができます。スクリプトモードではソースファイル(例えば、filename.py)にプログラムをすべて書き込み「python filename.py」といったコマンドを使って一気に実行するモードになります。インタラクティブモードの代表的なものは前述したGoogle Colabolatoryになります。Google Colabolatoryは省略してColabとも呼ばれます。Googleアカウントがあれば誰でも無料で利用できるので興味のある人は利用してみてください。広島修道大学の学生はalphaアカウントで利用することができます。
 スクリプトモードを利用したい場合は、Pythonの公式ページからPythonの最新版をインストールしてください。その他、Anacondaなどの実行環境をインストールしても利用することができます。
 インタラクティブモードではprint関数は省略できる点に注意してください。逆に、スクリプトモードではprint関数を省略することはできません。

▽サンプルプログラム1-5. インタラクティブモードにおけるprint関数の省略

"Hello World!"
▼プログラミングセル1-5.

1-7. Python/PyScriptにおける記述エラー
 プログラムに記述ミスがあった場合、エラーメッセージが出る場合と出ない場合があるので注意してください。また、PysScriptの現バージョンでは" "などのペアを間違えた場合、実行させた回数だけ結果が重複して表示される場合があります。結果が重複してもプログラムには問題はないので、基本的には無視してください。気になる人は、Webブラウザを更新して書き直せば表示されなくなります。

▽サンプルプログラム1-6. エラーのあるプログラム

pRint("Hello World!") #スペルミス(エラーメッセージあり)
print("Hello World!" + 10) #Pythonの構文ミス(エラーメッセージあり)
print("Hello World!) #ダブルクォートのペアのミス(エラーメッセージなし、修正後に結果重複)
total = 0
for i in range(1,100):
    natural_number = i
     total = total + natural_number #インデントミス(エラーメッセージなし、修正後に結果重複)
print("1から100の合計は" + str(total) + "です")
▼プログラミングセル1-6

問題
 以下の問題に解答しましょう。

  1. Pythonの方式として適切な用語を1つ選んでください。
  2. コンパイル、インタプリタ、フレームワーク、PyScript
  3. コメント文を意味する記号を1つ選んでください。
  4. %, &, \, #
  5. 自分の名前を出力するプログラムを記述してください。
  6. ▼プログラミングセル
  7. 以下のプログラムには1か所エラーがあります。行数を指定して修正方法を記述してください。
  8. 1:total = 0
    2:for i in range(0,100):
    3:     natural_number = i + 1
    4:    total = total + natural_number
    5:    print("natural_number is " , natural_number)
    6:print("1から100の合計は" + str(total) + "です")
    ※行頭の数字は行数を表す
    
  9. 以下のプログラムにはエラーが数か所があります。すべての間違いの行数を指定して修正方法を記述してください。
  10. 1:total = 0
    2:for i in range(0,100):
    3:    natural_number = i + 1
    4:    total = total + natural_number
    5:    Print("natural_number is " , natural_number)
    6:print("1から100の合計は + str(total) + です")
    ※行頭の数字は行数を表す