ラズベリーパイを使ったプログラミングの入門的な記事です。
今回は、Pythonを使ったプロラミングにおける4つの基本要素について書きます。
Pythonの4つの基本要素
プログラム言語の4つの基本要素については、以下の記事に書きました。
この記事にも書きましたが、プログラム言語の基本要素として、この記事で取り上げるものは、Pythonについての次の4つです。
- 変数
- 表示
- 繰り返し
- 条件分岐
Rubyのときと同様、プログラミングに使用する要素はもちろん他にもたくさんありますが、新しいプログラム言語を勉強するときに、最初に調べる基本要素のうちの4つではないかと思います。
では、順に見ていきましょう。
Pythonにおける”変数”の書き方
変数には、スコープという概念があることを、Rubyに関する記事で書きました。
書く場所や書き方によって、その変数を参照できるかどうかが変わってくるという話です。
ここも、ローカル変数とグローバル変数の2つの書き方を覚えておくことにします。
スポンサーリンクローカル変数
比較のため、上記のRubyの記事と同様のことをやってみます。
ローカル変数は以下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 | a=1 print a b=a+1 print b stm="abc" print stm stn=stm+"def" print stn |
Rubyでは、変数の表示にputsを使用していましたが、Pythonにはputsという関数はありませんので、printを使用します。
この範囲では、このputsとprintの違い以外には、同じ書き方で同じ出力が得られることがわかります。
実行した結果は以下です。Pythonのスクリプトの実行には、pythonを使用します。
1 2 3 4 5 | $ python sample1.py 1 2 abc abcdef |
次に定数について。Rubyでは変数名の先頭を大文字で始めると、変数ではなく定数の宣言をすることになると書きましたが、Pythonでは、その制約は特にないようです。
習慣的に変数名のすべてを大文字で書いて定数を表現しますが、再代入もできてしまいます。
グローバル変数
次に、グローバル変数です。
Rubyでは、グローバル変数を使用するときは、変数名の頭に”$”マークを付けましたが、Pythonではその必要はありません。
1 2 3 4 5 6 7 8 | val_a=1 def func_1(): global val_a val_a=2 func_1() print val_a |
ただし、上記のように、func_1()内でval_aの値を変更するときに、”global val_a”を追加することにより、func_1()内のval_aをその外のスコープで宣言したval_aとして使用することができます。
これで、Rubyの例で書いたことと同じ結果が得られます。
4行目のglobalの行を省略すると、func_1()内のval_aはこの範囲でのローカル変数となってしまいます。両方のスクリプトを書いて、実行してみます。
globalの行を書いた場合、
1 2 | $ python sample2.py 2 |
2と表示されます。
globalの行を書かない場合、つまり
1 2 3 4 5 6 7 | val_a=1 def func_1(): val_a=2 func_1() print val_a |
これを実行すると、
1 2 | $ python sample3.py 1 |
値が1と出力されます。
説明は、Rubyの例を参照してください。
Pythonにおける”表示”の書き方
Pythonでは、主にprintを使用します。ただし、バージョンによって、このprintの使用方法が違います。
Python2ではprint文だったものが、Python3ではprint関数に置き換えられているからです。
以下、特に断りがなければ、Python2のスクリプトを書きます。
1 2 3 | val_a=1 print val_a |
改行は自動的に挿入されます。
もし、改行をしたくないときは
1 2 3 | val_a=1 print val_a, |
と末尾にコンマを入れます。これは、末尾に挿入される改行を半角スペースに置き換えます。
Python3では、
1 2 3 | val_a=1 print(val_a, end="") |
という書き方をします。末尾の改行を””に置き換えます。sample5.pyと同じように、半角スペースに変換したい場合は、end=” “とすればよいですね。
Pythonにおける”繰り返し”の書き方
Pythonにも”繰り返し”を記述する方法がいくつかありますが、ここではfor文について書きます。
1 2 3 | for x in range(10): puts "aaa" end |
これは、puts “aaa” を10回繰り返します。
ループするときのインデックスは変数xに入っていますので、
1 2 | for x in range(10): print(x, "aaa") |
というように書けば、そのインデックスを表示できます。
Pythonにおける”条件分岐”の書き方
最後は条件分岐です。
if文の例は以下です。
1 2 3 4 5 6 7 8 | val_a=1 if val_a == 1: print "aaa" elif val_a == 2: print"bbb" else: print"ccc" |
Rubyでは、elsifでしたが、Pythonではelifです。
末尾の”:”を忘れないように記述してください。