# チャットで遊んでみよう

前の章(Pythonを使ってみよう)


# チャットに文字や数字を投稿しよう

前回、Pythonを使って、チャットウィンドウに「Hello!」とメッセージを送りましたので、今回は、チャットにもっと色々なメッセージを送ってみましょう。

まずはmcpiフォルダの中に、「chat.py」という名前のPythonファイルを作って保存してみましょう。

プログラムの中身は、下の2行から始めるのでした。

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()

それでは、続けて下のように入力してみてください。

mc.postToChat('100')

mc.postToChat(100)

前回、チャットに送る言葉は、" "' 'で囲んであげないといけないと説明しましたが、下の行では、( )の中身にそのまま100と書いています。

しかし、プログラムを実行すると、きちんと同じ結果になります。マインクラフト画面で、下のように入力してみてください。

/py chat

結果は下のようになるはずです。

100が出力される

ところが、100ではなく、代わりにHello!と入力すると、今度は上手くいきません。

なぜ、このようなことが起こるのか、見ていきましょう。

# 数値と文字列

'100'100'Hello!'などは、プログラムが扱う 情報(じょうほう) であり、 データ の一つであるといいます。

データには、100のような 数値(すうち) や、'Hello!'のような 文字列(もじれつ) といった色々な種類があり、これらをまとめてデータ型といいます。

文字列のデータは、" "' 'で囲ってあげる必要があります。逆に言えば、これらで囲ってあげることで、「このデータは文字列だよ」とコンピュータに教えてあげているのです。

一方、数値のデータは、文字列のように囲ってあげる必要はありません。囲わないことで、「このデータは数値だよ」と教えてあげているとも言えますね。

先ほどの例で見ると、'100''Hello!'は文字列、100は数値であるということがわかりますね。

それではHello!はどうでしょう。これは、文字列でも数値でもないデータです。' 'で囲っていませんが、数値型は、文字通り数字しかありえないので、Hello!は何者でもないデータとなり、コンピュータは困ってエラーを起こしてしまいます。

# 計算の結果を表示してみよう

さて、Pythonでは足し算や引き算ができますので、マインクラフトのチャットウィンドウにも、計算の結果を表示させることができます。

chat.pyの最後の2行を、下のように変えてみましょう。

mc.postToChat(1 + 1)

mc.postToChat(100 - 20)

結果は下のようになるはずです。

計算結果が出力される

ちゃんと計算できていますね。

次に、下のプログラムはどうなるでしょう。

mc.postToChat(1 + 1)

mc.postToChat('1 + 1')

結果は下のとおりです。確かめてみましょう。

1 + 1が出力される

上の行では、1 + 1の計算結果を表示していますが、下の行では、'1 + 1'という文字を、そのまま文字として表示しています。これは、数値と文字列の大きなちがいです。

ちなみに、数値と文字列を足すことはできません。下のプログラムはエラーになってしまいます。

mc.postToChat(1 + '1')

しかし、文字列と文字列は、足し算でくっつけることができます。

mc.postToChat('1' + '1')

11が出力される

同じ「1 + 1」に見えても、下の3つでは全て結果がちがうことに気をつけましょう。

mc.postToChat(1 + 1)
mc.postToChat('1 + 1')
mc.postToChat('1' + '1')

# 変数を使ってみよう

数値や文字列のデータは、 変数(へんすう) という入れ物に保管することができます。どういうことなのか、見てみましょう。

今度は、chat.pyを次のように書き換えてみます。

a = 100
b = 'Hello!'

mc.postToChat(a)
mc.postToChat(b)

結果は下のようになります。

変数を使って出力

mc.postToChat(a)( )の中はaなのに、100と表示されましたね。このaが、変数と呼ばれるものです。

a = 100は、aという入れ物の中に、100という数値を入れている、と考えてください。

aの中には100が入っているので、mc.postToChat(a)aをメッセージとして送るときには、中身の100がウィンドウに表示されます。

bについても同じです。本当の中身であるHello!が、ウィンドウに表示されます。

このa = 100のように、変数に何かを入れることを、 代入(だいにゅう) といいます。

変数は、aでないといけないという決まりはありません。変数を使うときに、その名前は自由に決めることができます。abcとか、hensuuとかでも大丈夫です。

ただし、数字をそのまま変数にすることはできません。100 = 'Hello!'のようなことはできない、ということですね。ですが、hensuu1のように、文字と数字を組み合わせることはできます。

また、変数にはふつう、半角英数字を使います。全角の文字を使うことは、ほとんどありません。お約束ごととして、覚えておきましょう。

# 変数を使って計算してみよう

変数に数値を代入すると、変数のまま、足し算や引き算をすることができます。

chat.py の中身を下のように書き換えてみましょう。

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()

a = 100
b = 20

mc.postToChat(a + b)
mc.postToChat(a - b)

結果は下のとおりです。

変数を使って計算結果を出力

a + ba - bはそれぞれ、100 + 20100 - 20と同じ結果になっていますよね。

また変数には、下のように計算の答えを代入することもできます。

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()

a = 1 + 1
b = 'I am ' + 'Prosense.'

mc.postToChat(a)
mc.postToChat(b)

計算結果を変数に代入

変数は、プログラミングの勉強でも特に大切なので、しっかり覚えておきましょう。

# おわりに

Prosenseではマインクラフトを使ったプログラミングの個別指導もおこなっております。

マンツーマンでレッスンを受けながらマインクラフトでプログラミングを学びたい方はいますぐProsenseのLINE公式アカウントに登録ください。

ProsenseのLINE公式アカウントと友達になる


練習問題