print(70 + 30)を実行すると画面には計算結果の「100」が表示されます。では、計算結果ではなく「70 + 30」という計算式をそのまま画面に表示するにはどうすれば良いのでしょうか。
Pythonは文字と数字を区別する
人間は「100」を見てこれが文字か数字かを特別に意識して扱うことはありませんが、Pythonは文字と数字を全く別物として区別して扱います。
文字と数字の扱い方の違い
例えば「100」を文字(文字列)として扱う場合は、ダブルクォーテーション「”100″」またはシングルクォーテーション「’100’」で囲います。どちらも同じなので状況にあわせて好きな方を選ぶと良いでしょう。ちなみに筆者は好んでダブルクォーテーションを使用しています。
「100」を数字(数値)として扱う場合は、そのまま「100」でOKです。
ソースコード
「100」を文字列(文字)として表示する方法と数値(数字)として表示する方法をソースコードで確認します。
行番号1と2が「100」を文字列として画面に表示する方法です。
行番号3は数値として画面に表示する方法です。
print("100") print('100') print(100)
ソースコードの保存先
- 保存先(venv仮想環境):C:\code\py310\venv\trial
- ファイル名:sample_code_003.py
- エンコード:UTF-8
コマンドプロンプトでPythonのソースコードを実行
実行結果を見るとすべて同じように「100」が表示されますが、Pythonは文字列(文字)と数値(数字)でそれぞれ異なる扱いをしています。数字を表示しただけだと違いが良くわかりませんね。
(trial) C:\code\py310\venv\trial>python sample_code_003.py
100
100
100
(trial) C:\code\py310\venv\trial>
Pythonの文字と数字の扱いの違いを確認する
前のソースコードだと文字列(文字)と数値(数字)の扱いの違いが良くわかりませんでした。そこで今回は、より分かりやすいソースコードで確認してみます。
ソースコード
ソースコードを次のように編集して上書き保存します。
print("70" + "30") print('70' + '30') print(70 + 30)
コマンドプロンプトでPythonのソースコードを実行
ソースコードの行番号1と2は文字列の連結に、行番号3は数値の足し算になっていることがわかります。
行番号1はダブルクォーテーション、行番号2はシングルクォーテーションの違いがありますが、実行結果は全く同じです。
(trial) C:\code\py310\venv\trial>python sample_code_003.py
7030
7030
100
(trial) C:\code\py310\venv\trial>
Pythonは文字列と数値の計算はできない
Pythonは文字列と数値の計算はできません。ソースコードで確認してみます。
ソースコード
ソースコードを次のように編集して上書き保存します。
print("100" + "Python-Start") print(100 + "Python-Start")
コマンドプロンプトでPythonのソースコードを実行
行番号1は文字列同士のため文字列が連結され「100Python-Start」と画面に表示されました。しかし、行番号2は数値と文字列のためエラー(赤字部分)となってしまいました。Pythonは文字列と数値の計算はできません。
(trial) C:\code\py310\venv\trial>python sample_code_003.py
100Python-Start
Traceback (most recent call last):
File “C:\code\py310\venv\trial\sample_code_003.py”, line 2, in <module>
print(100 + “Python-Start”)
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
(trial) C:\code\py310\venv\trial>
「Traceback (most recent call last):」にはエラーとなったファイルの場所・行番号・ソースコードの一部・エラーの種類などが表示されます。
ファイルの場所と行番号
ファイルの場所:”C:\code\py310\venv\trial\sample_code_003.py”
行番号:line 2
ソースコードの一部
print(100 + “Python-Start”)
エラーの種類
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
まとめ
Pythonは文字列と数値を全く異なる物として区別して扱います。
文字列として扱う場合はダブルクォーテーションかシングルクォーテーションで囲います。
print("100" + "Python-Start") print('100' + 'Python-Start')
数値を扱う場合は数字のみでOKです。
print(100 + 100)
Pythonは文字列と数値の計算はできません。下記はエラーとなります。
print(100 + "Python-Start")