Python解説【変数】

記事
IT・テクノロジー
初めて投稿してみます。
Pythonの初歩の解説サービスを出品しているので、初歩の初歩、「変数」を試しに解説してみます。
こんなコードが何を狙って初歩の課題として出題されるか解説してみます。
a = 1
b = '2'

【課題】変数をあと二つ追加し、「+」演算子を使って「3」と「12」を出力せよ

【解答】
c = 2
d = '1'
print(a + c)
print(d + b)

【出力】
3
12

【解説】
まずprint文の中の「+」は二つの意味があります。
一つが「+の左右の数値を足し算する」。
もう一つが「+の左右の文字をくっつける」。
print(a + c)は数値の足し算、print(d + b)は文字の結合をしています。

変数はaとbが定義されていますが、aには数値の1、bには文字の2が記録されています。
' 'でくくった部分は文字として扱われます。
プログラミングでは数値と文字は区別して扱われます。
数値はそのまま足したり引いたり計算ができます。
文字はただの文字なので計算ができません。

少し詳しく言うとプログラミングでの文字というのは単なる数値で、文字「あ」はコンピュータでは数値の何番と変換されます。変換された数値には対応する表があって、文字何番は「あ」という風に決められています。その表を文字コードと呼びます。UTF-8やシフトJISといった名前を聞いたことがある方もいるでしょう。
やっかいなのが、文字で定義された'2'には文字コードで2という数値が割り当てられているかどうか確実ではないということです。'2'に5を割り当てて、'3'に8を割りあてても原理的には文字を数値で扱うことができるからです。

今回のprint文では普通にprint(a + b)とするとエラーとなります。
それは数値と文字を足し算しているからです。
1足す2を計算したいのに、片方の文字が確実に2として扱われているかわからないですからね。Pythonではエラーを出力するようにできているのでしょう。
あるいは数値と文字を足し算しようとすると数値か文字かどちらの足し算をすればよいのかわからないという理由もあるでしょう。

基本的に「+」の左右の値は同じ種類のデータでなければなりません。
そして「+」の左右の値のデータの種類に応じてPythonが自動的に足し算をするのか文字の結合をするのか判断して計算を行っているわけです。
数値ではさめば足し算、文字ではさめば結合です。

そこで課題では二つの変数
c = 2
d = '1'
を新たに定義しています。数値1の対になるように数値の2を、文字'2'の対になるように文字の'1'を定義してやるわけです。
そして数値は数値で、文字は文字で計算するようにしています。
print(a + c)では1足す2で3が出力されます。
print(d + b)では文字'1'と文字'2'が合成されて'12'となります。
ちなみに
print(b + d)と入力すると'21'になります。

以上で変数の解説は終わりです。
サービスを購入して頂いた場合、こんな感じで解説いたします。
Pythonプログラミングを始めたばかりでつまづいている方、もしよろしければサービスの購入を検討して頂けたら幸いです。







サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す