本やUdemy、Progateなどを用いてPythonやhtml、cssの学習過程を残していきます。

【Python入門編】変数の使い方を詳しくメモしていく

pythonの変数に関するめも

Pythonの学習で一番最初に学んだ”変数”

どの入門本でも一番最初に記載してあり、プログラムを構築していく為には欠かせない要素の一つとなっています。

その文字の通り、”変数”は「変わる数」プログラムの中で更新していくことができます。

尚、数値だけではなく、文字列も変数に代入することができます。

変数とは

数値や文字列などのデータ類をまとめて「値(あたい)」と呼びます。

同じ値を複数箇所で使う場合、プログラムに値を直接入力していると、値を修正しなければならなくなった際に手間がかかりますよね。

上記の様に事前に繰り返し使うことがわかっている値は、「変数」に入れておくと後々便利です。

”変数”は何らかの値を入れて置ける箱の様なものだと思ってください。

※変数に初めて値が入ることを初期化(もしくは生成)と呼びます。

例1
#変数textに文字列ハローを代入する。
text = "ハロー" 
#変数numに数値100を代入する
num = 100

尚、例1の様に代入する文字列は”文字列”の様に「””(ダブルクオテーション)もしくは’’(シングルクオテーション)」で囲み、数値を代入する際は何も囲わず記載することに注意してください。

#をつけることで、行末までコメントアウトすることができます。
#行は無視しますので、そのコードが何を表しているか表現する為にコメントをつけることがあります。

「数値=値」という書き方の文を「代入文」と呼びます。

「=(イコール)」は演算子の一種で、数学だと「等しい」という意味ですが、Pythonでは「右辺を左辺に入れろ」、または「記憶しろ」という意味で使われます。

変数はいくつも作成できるので、区別する為に分かりやすい名前をつけておきましょう。

変数の上書き

>>>i = 10
>>>print(i)
10

>>>i = 20
>>>print(i)
20

変数に新しい値を代入することで、変数を上書きすることができます。

上では変数iに10が入っていましたが、その後20で上書きされたので20が呼び出されています。

 numA = 2
 numB = numA + 5
 numB = numA - numB
 print(numA)
 >>>2
 print(numB)
 >>>-5

上の動きを説明していきます。

まずnumAに2を代入しています。

numBにはnumA + 5が代入され、7となっています。

numA – numB で2 – 7となっており、numBは-5が上書きされています。

変数命名のルール

変数に使うことができる文字の種類は、アルファベット、数字、アンドースコア(_)だけです。

日本語の文字が使えないので、変数名は英語を使ったパターンをよく見かけますが、ローマ字で日本語表記しても問題はありません。

変数名を1つの単語で表現できない場合は複数の単語を「_」で繋げます。

例えば、「フルーツの名前」なら「fruit_name」と言った具合です。

また、変数名はアルファベットの大文字と小文字を区別されます。

その為、xyzとXYZは違う変数として扱われます。

変数として使えない文字

・数字
 →変数名の先頭に数字を使うことはできません。「a5」は問題ありませんが「5a」という変数は作れないので気をつけましょう。

・日本語

・予約語
 →「True」「is」「def」の様な予約語は変数名として単独で使うことができません。

予約語一覧

False None True and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not
or pass raise return try while with

#使える変数名
apple = "りんご"
a_b = 100
_ab = 100

他にも、

「TrueStory」の様に他の文字と組み合わせた場合はOKです。

因みに、「print」の様な組み込み関数と同じ名前の変数を作ることもできます。

「print」という変数を作ってしまうと、その時点でprintは変数のものとなってしまう為、print関数を呼び出すとエラーになってしまいます。

エラーが出なくても名前の重複は避ける様にしましょう。

変数を作って表示させてみる

では実際に変数を作って、それを表示するプログラムを作ってみます。

>>>text = "ハロー"
>>>print(text)

ハロー

「変数=値」という代入文の働きは、正確に表すと、その名前の変数がなければ新たに作成して値を記憶し、同名の変数があればそこに値を新しく記憶しろとなります。

つまり、代入した時から値を入れた変数は値の代わりに使うことができる様になるのです。

#消費税の計算
a = 150
s = a * 1.08
print(s)

#表示結果
162.0

変数aに何か商品の定価を入れると、消費税額を含めた売値を割り出して変数sに入れ、それを表示するというプログラムです。

変数の型について

Pythonでは変数の型を宣言しなくても、自動的に判別されていますが以下よく使うので覚えておいたほうが良い型を紹介します。

整数型

小数点を含まない型は全て整数型になります。そこには正の数はもちろん0や負の数も含まれています。Pythonでは「int(イント)型」という名前がつけられています。

Python-整数型(int型)の確認

※Pythonで型を調べたい時は”type()”関数で引数に指定したオブジェクトの型を調べることができます。

小数型

小数型は、小数点を含む数字を表すデータ型です。

小数点入りの数字を書くと、小数型のデータが表示されます。Pythonでは「float(フロート)型」という名前がつけられています。

pythone_小数型(float型)
小数型がある理由

整数型があれば十分でしょ!と思いませんか?
コンピューターのメモリは有限なので、無限に続く小数を簡単に扱うことができません。

例えば「1/3」を小数で表すと、0.333333……となりますよね。

よほどの精度が要求される計算でない限り影響はありませんが、Pythonの内部で整数型と小数型は違う仕組みで扱われているということは頭の片隅に置いときましょう!

文字列型

文字列型は文字列を表現する為のデータ型です。前述しましたが、シングルクオート「’文字列’」かダブルクオート「”文字列”」で文字列を囲みます。

数字も「”数字”」「’数字’」で囲むと文字列型になります。

また、「””」「”」の様に1文字も使わない文字列を使うこともできます。
これを空文字列といいます。

Pythonでは「str型」という名前がつけられています。

Python-文字列(str型)の確認

こんなエラーメッセージが出たら!?
SyntaxError: EOL while scanning string literal

意訳: 文字列リテラルをスキャン中に文末に到達してしまった。。。

文字列のクォートの閉じ忘れである可能性が高いです。というかほぼそうです。

真偽型

「True」「False」の2つが真偽型に当たります。Pythonでは「bool(ブール)型」と呼ばれます。

文字列型や整数型がとりうる形は無限にありますが、ブール型は「True(真)」か「False(偽)」の2種類しの値しか取れません。

※ブール型は数学者Geoge Booleに因んで名付けられたデータ型らしいです。

if文やwhile文などでよく使われますが、「<」や「==」などの、演算子を使って右辺と左辺を比べる際に使われます。

python-真偽型(bool型)

比較演算子

演算子意味
==等しい
!=等しくない
<より小さい
>より大きい
<=以下
>=以上

ブール演算子

ブール演算子(and,or,not)は、ブール値を組み合わせる際に使用します。

比較演算子の様に、一つのブールを返します。

andとor演算子は、常に2つのブール値をとるので、二項演算子と呼ばれます。

and演算子は両方のブール値がTrueの時にTrueとなり、それ以外はFalseとなります。

>>>True and True
True
>>>True and False
False
>>>False and False
False
>>>False and False
False

一方、or演算子はブール値のどちらかがTrueであればTrueとなり、両方ともFalseであればFalseとなります。

>>>True or True
True
>>>True or False
True
>>>False or False
False

andやorと異なり、not演算子は一つのブール値だけをとります。

not演算子はブール値を反転させます。

>>>not True False >>>not False True >>>4 == 5 False >>> not 4 == 5 True

リスト型

リストは、数値や文字列などを並べて格納できるデータ型です。

書き方は要素を「,」で区切り全体を「[]」で囲みます。

#リスト
l = ["a",10,"b","めもを"]
python_リスト型(list型)

リストにはインデックス番号がつけられており、前から順番に0,1,2と数えます。

例えば、上記より「10」を取り出したい時は l[1] の様にします。

リスト型を実際に使って、より詳しい説明と使い方をめもしておきました。

連結と四則演算

>>>"ラム" + "レム"
"ラムレム"

上記の様に文字列同士を演算子「+」で連結させることもできます。

では、文字列と整数を連結しようとすればどうなるでしょうか?

>>>"シュタインズゲート" + 0
TypeError: can only concatenate str (not "int") to str

意訳: strはstrとだけ連結出来るから!!

と怒られてしまいました。

Pythonは自動的に型変換してくれないので、整数を明示的に文字列に変換する必要がある様です。

>>>"シュタインズゲート" + str(0)
>>>"シュタインズゲート" + "0"
'シュタインズゲート0'

上記の様に関数str()を用いて整数をstr型に変換させるか、””で囲ってstrとして連結させれば解決です。

>>> "レム" * 5
'レムレムレムレムレム'

因みに、上の様に演算子「*」を使って文字列と整数をかけると、整数で指定した数だけ文字列を繰り返した文字列ができます。
※あまり使われません。

「*」演算子は2つの数値の掛け算と、文字列と整数値の掛け合わせだけ用いることができます。

計算の優先順位に関しては6.17. 演算子の優先順位を確認してください。

まとめ

Pythonの変数について紹介していきました。

特に難しいことは無いと思いますが、変数名の付け方やデータ型にはきをつけてprintしましょう!笑

よくintとstrの間違えでエラーになることがあります。。。

Jupyter Notebookで変数をまとめてみました。

この記事を書いた人

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です