Python演習ドリル200 基礎練習1〜10

Pythonプログラムを学び始めた方向けの演習ドリルです。

まずは、基礎練習の1〜10から始めましょう。

jupyterとjupyter notebook

print(ord(“0”)) 本演習ではjupyter notebookを使用します。 インストールされているか確認してください。 インストールされていない場合、jupyterjupyter notebookのインストール方法については、レッスン33を参照してください。

演習前の基礎学習

実際にjupyter notebookを使用して演習を行う前に、演習の中で使用するPythonの機能について学習しましょう。

  • 画面への出力(print関数)

    Pythonで画面に文字列や数値を出力するにはprint関数を使用します。

    print("文字列")を実行すれば改行付きで文字列が出力されます。

    引数で、end="XX"を指定すると、改行の代わりに文字列の末尾にXXが付いて出力されます。 end=""(空文字列)を指定すれば、文字列の末尾は改行されず、何も付与されないで文字列だけが出力されます。

    print(変数)を実行すれば、変数の値が出力されます。変数が数値の場合は、数値が出力されます。 配列の場合は[要素1, 要素2,...]のように全体が[]でくくられ、各要素がカンマ(,)で区切られて出力されます。

    print(変数1, 変数2)のように「,」で区切って複数の変数を指定すると、各変数の値はスペース区切りで出力されます。

    引数で、sep="XX"を指定すると、スペース区切りの代わりにXX区切りで出力されます。 改行区切りにしたければsep="\n"を指定し、区切りなしで(くっつけて)出力したい場合はsep=""を指定します。

    文字列の中に変数の値を入れて出力したい場合はf文字列を使用します。 f"文字列1{変数}文字列2"のように記述して、文字列の中に{変数}を埋め込むことができます。 {変数}の部分には変数だけでなく、関数や式も記述することができます。

  • キーボードからの入力(input関数)と数値変換

    Pythonでキーボードから文字列や数値を入力するのはinput関数を使用します。

    s = input()のようにすれば、画面に何も出力されずに入力待ちになり、文字列や数値を入れて改行すると改行抜きで文字列が変数sに入ります。

    入力時に画面に文字列を表示したい場合はs = input("文字列")のように引数として文字列を入れます。 文字列の代わりに先ほど説明したf文字列を使用することもできます。

    input()の戻り値は常に文字列です。 数値に変換したい場合はint("文字列")関数(整数値)、float("文字列")関数(実数値、小数点のある値)で変換を行う必要があります。

    int関数では10進数の文字列を整数に変換します。 10進数の値を2, 8, 16進数の文字列に変換するには、それぞれbin(),oct(),hex()という関数を使用します。 これら2, 8, 16進数の文字列には先頭にそれぞれ0b0o0xという進数を識別する文字列が付きます。

  • 条件分岐(if,ifelse,else

    入力した値によって処理を分けたい場合はif,ifelse,elseという条件式を使用します。

    例えばxの値が0以上のときだけ表示したい場合は、以下のように記述します。

    if x >= 0:		# 行の末尾に「:」を忘れずに付けること
    	print(x)	# インデントで字下げをすること
    

    加えて、0以上以外のときに「マイナス」と表示するようにしたい場合は、以下のように記述します。

    if x >= 0:
    	print(x)
    else:		# 上記の条件以外
    	print("マイナス")
    

    x0より大きければ「プラス」、0より小さければ「マイナス」、それ以外(0)なら「ゼロ」と表示するようにしたい場合は、以下のように記述します。

    if x > 0:		# 条件1
    	print("プラス")
    elif x < 0:	# 条件1以外で条件2
    	print("マイナス")
    else:		# それ以外(条件1でも条件2でもない)
    	print("ゼロ")
    

    elifelse ifという意味で、1つ前のif(あるいはelif)の条件が満たされない場合のみ、処理されます。 例えば以下のような条件の場合、x10であればelifの条件を満たしていますが、先にifの条件も満たしているので、先のifの方が処理され、elifは処理されません。

    if x >= 5:
    	print("xは5以上")
    elif x >= 0:
    	print("xは0以上")
    else:
    	print("xは0未満")
    

    他のプログラミング言語では一般的に文を{...}で囲むことでブロック(複文)を構成しますが、Pythonではインデント(行頭の空白文字の数)が重要な意味を持ち、同じ数の空白やタブ文字でインデントされた文がブロックとみなされます。

    a = 3
    if a == 5:
    	print("AAA")		# if文の対象
    	print("BBB")		# if文の対象
    print("CCC")			# if文の対象ではない
    

    インデントは通常4個の空白文字を使用します。

    if a = 5:
        print("AAA")	# 4個の空白文字
    

    インデントにタブ文字(tab)を用いる場合、半角スペースを用いるか、タブ文字を用いるか統一が必要です。 統一されていない場合、インデントエラーが発生することがあります。

    if a == 5:
        print("AAA")		# この行は半角4個のインデントなのに
    	print("BBB")	# この行はタブ1個のインデントなので見た目は一緒でも空白文字の数が違うのでインデントエラーになる
    

    エディターによってはタブを自動的に半角スペース4個に置き換える機能もあるので、このような機能を使用すれば、タブと半角スペースの共存によるエラーを防ぐことができます。

    また、ififelseelseなどの文の行末には「:」を付けるのを忘れないでください。

演習

それでは実際にjupyter notebookを使用して、演習を行います。

コマンドラインからgit pullを実行してmcc1フォルダに最新のファイルをダウンロードしてください。

ターミナルのコマンドラインからcd mcc1/code/jupyterを実行して、jupyterフォルダに移動し、jupyter notebookを実行してください。

すると、ブラウザが起動し、jupyterのホーム画面が表示されます。

その中からPython演習ドリル200基礎練習1〜10.ipynbをクリックしてください。

そうするとPython演習ドリル200基礎練習1〜10というタイトルの演習問題が表示されます。

課題1から課題10までありますので、課題の内容にしたがって、In[]:の部分にPythonプログラムを書いてください。 書き終わったら、画面上の ▶| Run というアイコンをクリックすると、今書いたPythonプログラムが実行されます。

出力結果が課題の(実行画面)と一致するか確認してください。

どうしても正解がわからないときは、▶プログラム例 をクリックすると、正解例のPythonプログラムが表示されます。

まとめ

今回はPython演習として、入出力と条件分岐の演習を行いました。

今後も新しい演習問題を追加していきますので、演習を通じてPythonを学んでいきましょう。