printについて
printは処理したデータとかを出力したい時に用います。
基本的には出力したいものを()で挟んで実行します。
print("Hello World")
実行結果
Hello World
ちなみに”(ダブルクオーテーション)で囲っているのは、「これは文字です」と指示するためです。
シングルクオーテーションでも大丈夫です。
print('Hello World')
実行結果
Hello World
ちなみに出力が文字の場合は、このクオーテーションを忘れると、エラーが出ます。
print(Hello World)
実行結果
File "<ipython-input-X-XXXXXXXXXXXX>", line 1
print(Hello World)
^
SyntaxError: invalid syntax
数字の場合は、クオーテーションはいらないです。
print(12345)
実行結果
12345
変数を表示してみよう!
printで文字や数字を出力できるのは分かった。
でも括弧で括った文字しか出力できないとしたら、使えないなぁと思いませんか?
変数を使うことによって、状況に応じて、出力する文字を変えることができます。
まずは下のプログラムを実行してみましょう。
a = "Hello World"
print(a)
実行結果
Hello World
Hello Worldが表示されたことでしょう。
次に プログラム中のHello World を Goodbye World に変えてみます。
a = "Goodbye World"
print(a)
実行結果
Goodbye World
printの()の中の a は変えていないのに、出力された文字は変わりました。
このaのことは変数と呼ばれます。
せっかく変数が出てきたので、ついでに説明しちゃいます。
変数をもう少し詳しく
この変数という考え方は、プログラムを始める最初の難関というか、感覚が異なる点になるでしょう。
私が理解しているのはこんな感じです。
①変数というのは、箱のようなもので、その箱(a)に文字(Hello World)を入れる
②使うまで保管する
③print(変数)で箱(a)から文字(Hello World)を取り出し、表示する
ちなみにaしか変数として使えないかというとそうではありません。
aは箱の名前であり、ルールに沿う限り好きなように決めることができます。
hello = "Hello World"
print(hello)
実行結果
Hello World
数字との組み合わせでも大丈夫です。
hello1 = "Hello World"
print(hello1)
実行結果
Hello World
ただし数字が最初にくる組み合わせはダメです。
1hello = "Hello World"
print(1hello)
実行結果
File "<ipython-input-X-XXXXXXXXXXXX>", line 1
1hello = "Hello World"
^
SyntaxError: invalid syntax
アンダーバー(アンダースコア)も使えます。
hello_world = "Hello World"
print(hello_world)
実行結果
Hello World
ここからはダメな例です。
数字だけの名前をもつ変数はつくれません。
12345 = "Hello World"
print(12345)
実行結果
File "<ipython-input-49-3bf6883f645f>", line 1
12345 = "Hello World"
^
SyntaxError: can't assign to literal
使えそうだけど、- (ハイフン)も使えません。
ハイフンはマイナスとして使われているためでしょう。
hello-world = "Hello World"
print(hello-world)
実行結果
File "<ipython-input-X-XXXXXXXXXXXX>", line 1
hello-world = "Hello World"
^
SyntaxError: can't assign to operator
これも使えそうだけど、スペースも使えません。
基本的にプログラムではスペースは文字の区切りとなってしまうため、二つの単語を分けたい場合はアンダーバー(_)を使います。
hello world = "Hello World"
print(hello world)
実行結果
File "<ipython-input-4-30a57f18313d>", line 1
hello world = "Hello World"
^
SyntaxError: invalid syntax
ピリオド(.)やカンマ(,)も使えません。
hello.world = "Hello World"
print(hello.world)
実行結果
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-X-XXXXXXXXXXXX> in <module>
----> 1 hello.world = "Hello World"
2 print(hello.world)
NameError: name 'hello' is not defined
hello,world = "Hello World"
print(hello,world)
実行結果
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-X-XXXXXXXXXXXX> in <module>
----> 1 hello,world = "Hello World"
2 print(hello,world)
ValueError: too many values to unpack (expected 2)
特にピリオドで区切られた文字には特殊な役割があるのです。
それは前に少しだけお話ししたパッケージと関係があります。
「文字.文字」とすると、パッケージとその中にあるプログラム(モジュールといいます)だとPythonが認識するようになっているため、変数名としては使えないのです。
カンマ(,)で区切ってしまうと、二つの変数だと認識されるので、カンマで区切った二つの文字を一つの変数として用いることはできません。
では逆に入れるものに関する制限はどうでしょうか?
文字の場合、ダブルクオーテーションで囲っている場合は、アンダーバーでもカンマでもピリオドでもハイフンでも使えます。
a = "_Hello, World.-"
print(a)
実行結果
_Hello, World.-
また数字だけの場合も問題ありません。
a = 12345
print(a)
実行結果
12345
数字と文字の組み合わせですが、これには制限があります。
数字も文字もダブルクオーテーションで囲っている場合、数字は文字として認識されます(つまりこのままでは計算には使えない)。
ですのでダブルクオーテションで囲った数字と文字の組み合わせは大丈夫です。
a = "123abc"
print(a)
実行結果
123abc
上記の例で、123は数字だからダブルクオーテーションで囲わなくてもよい、でもabcは文字だから囲うとしてしまうと、エラーが出ます。
a = 123"abc"
print(a)
実行結果
File "<ipython-input-X-XXXXXXXXXXXX>", line 1
a = 123"abc"
^
SyntaxError: invalid syntax
この場合は、123は数字、abcは文字となり、aという変数に2種類の意味を持ってしまうことになるため、このような処理は許可されないのです。
もう少し詳しく言うと、文字なのか数字なのか、さらに数字の場合は整数のなのか少数なのかと区別することをデータ型といいます。
データ型に関しては、また別の機会に詳しく解説します(予定は未定)。
ここからは文字ではないものとの組み合わせです。
アンダーバーとの組み合わせは使えません。
a = _12345
print(a)
実行結果
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-X-XXXXXXXXXXXX> in <module>
----> 1 a = _12345
2 print(a)
NameError: name '_12345' is not defined
ピリオドの場合は、小数点として認識されます。
a = 123.45
print(a)
実行結果
123.45
カンマだと二つの数字に分けられてしまいます。
a = 123,45
print(a)
実行結果
(123, 45)
またハイフンはマイナスとして認識されます。
a = 123-45
print(a)
実行結果
78
こうやってマイナスが出てくると、そのうちに四則演算に関しても説明したいなぁと思うところです。
とりあえず簡単にですが、変数の説明でした。
次回は配列(リスト)と呼ばれる仕組みを解説していきます。
ではでは今回はこんな感じで。
コメント