今回はpythonの基本的な文法を説明したいと思います。
基本的にはpython3系の文法で進めていきます。python2もそれ程違いはないです
また,今回は簡単な文法のみの説明ですので対話モードで事足ります。※勿論プログラムファイルを作成して実行してもOKです。
対話モードの起動方法等については以下の記事を参考にしてください。
それでは本題です。
目次
「=」を使って変数に色々なものを代入してみる
早速ですがプログラミング初心者の皆さんにとても大事なことをお教えします。
プログラミング言語において「=」は”同じ”という意味ではありません!
あまり意識されていないような気もしますが,これはとっても大事です!
プログラミング言語において「=」は “代入”なのです!
実際「=」は(殆どの言語で)右のものを左の変数に代入する役割を持ちます。勿論今回扱うpythonでもこの意味になります。
ちなみにここで「右のもの」と言ったのには理由があります。それは何故かと言うと
代入するものは数字でも文字でも何でもいい
のです。pythonの場合は何も考えなくても「=」を使えば適した型になってくれます!便利!
ではいくつか例を出しましょう。ここでは簡単な演算等も扱うので一緒に覚えていきましょう。
数字・計算結果の代入
まずは「a」という変数に”1″を代入して見ましょう
a = 1
これで「a」は”1″になりました。aが何か確認したいときは以下を実行するだけです。
a
では次に「b」に”a+2″を代入してみましょう。
b = a + 2
さっき「a」は”1″になったのでb=1+2で3になっている筈ですね。確認してみましょう。
つまりこの例からもわかるように代入には変数も使えるわけです。では次に少し複雑な計算をしてみましょう。
c = 6 + b / 3 - a
これの結果を見ると”6.0″となったと思います。何が起きたのでしょうか。
まず計算のルールですが,これは僕たちが普段使っている四則演算と同じルールで実行されています。
つまり+,-よりも×,÷の方が優先されるのでb÷3つまり3÷3が先に実行されてその後に6+1-1のような計算をしているわけです。
もし6+bを先にして欲しかったら僕らが数学でやるように()で囲んであげます。つまり
c = (6 + b) / 3 - a
これだと結果は2.0になると思います。こういう細かいところをミスしてしまってデバッグに時間がかかる事はよくあるので皆さん気をつけてください。
気になっている方もいらっしゃるかと思いますが,なぜ結果は”2″ではなく”2.0″になってしまったのでしょうか。これ実は
型が変更されてしまったからなのです。つまりこの計算のために整数の型から小数の型へ型変更が起こっているのです。
もしプログラミングを少しわかる方がいればint型からfloat型への変更と言ったほうが良いでしょうか。
pythonは型推論というものを勝手にやってくれる言語なのですが,割り算を入れたために「小数の方がいいだろう!」とpythonが思っちゃったんですね。
実際割り算の結果が小数になることはよくありますよね。
最初は型が何かということはあまり気にならないかもしれませんが,少し難しいコードを書くようになると型を意識していないとすぐエラーが出ちゃいます笑
ですので少しずつ型に慣れていきましょうね。
文字の代入
次は文字を代入してみます。文字は”(ダブルクォーテーション)で囲みます。ちなみに'(シングルクォーテーション)でも問題無いです。
“で囲むのと’で囲むのでは何が違うか気になるかと思いますが,pythonでは殆ど違いはないです!
ですので好きな方で書くといいかと思います。僕は何となく”を使っています笑
ここで1つ注意です。
“a”はもちろん文字ですが,“1”も文字です!
これは最初間違えやすいかもしれませんが,””の中にあるものは全て文字列として判断されるので注意しましょう!
では実際に文字を代入してみましょう。
moji = "Hello!"
これで代入できました。変数名はこんな感じで複数のアルファベットを組み合わせても良いのです。
途中で数字を入れたり,_(アンダーバー)を入れてもOKです(例えばmoji_2)が,先頭に数字は駄目ですのでご注意ください。
print( )を使って文字や数字を出力してみる
次にprint( )という関数をご紹介します。これは引数(関数に渡す文字や数字のこと)を出力するための命令です。
早速例を見てみましょう。
print("I am Moromi.")
これを実行すると I am Moromi. と出力される筈です。簡単ですね。
では次にひらがなや漢字を出力させてみましょう。
print("僕はもろみ先輩です。")
如何でしょうか。人によってはエラーが出ていませんか?
これは実はひらがなや漢字がマルチバイト文字列であるために起きているのですが,簡単に言うと英語に比べてちょっと扱いが難しいからなんですね。
これを解決するためには文字コードを指定してあげる必要があります。
そのためにはプログラムの頭に1行文言を加えます。
# -*- coding: utf-8 -*- print("僕はもろみ先輩です。")
これでエラーが出なくなった筈です。もし最初から出なかったという方も,色々な環境で動くプログラムにするために書いておくことを推奨します。
まとめ
代入演算子「=」と出力のための関数であるprint( )を簡単に説明しました。
実はもっと色々とルールだったり他の使い方もあるのですが,一度に説明しても(僕の場合は)覚えれないのでそれは使っていく内に覚えていきましょう。
それでは今回もお疲れ様でした。次回は条件分岐や繰り返し辺りを説明する予定です。