第1回　プログラミングをしてみよう


## 準備
プログラミング入門と言ったら、"Hello world"の出力からみたいなところがあるので、まずはこれをやってみましょう。

そのために少し準備をします。
今回使っていくのはpythonというプログラミング言語です。日本語や英語など、様々な言語が存在するのと同様に、プログラミングの世界にも、目的に応じた様々なプログラミング言語が存在します。中でもpythonは、使いやすい上に便利なので初心者から上級者まで広く使われています。

そんなpythonを使うためには普通、色々PCにインストールする必要があるのですが、[Google Colab](https://colab.research.google.com/ )という便利なツールを使うと、面倒な環境構築が不要なのでこれを利用します。リンクを踏むと以下のような画面が出てくると思いますので、「ノートブックを新規作成」ボタンを押してください。
 
 ![スクリーンショット 2024-03-07 15.11.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737640/87564cba-d5b2-e003-1de0-a6486c6376e0.png)


こんな画面が出てきたら準備OKです。
![スクリーンショット 2024-03-07 15.15.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737640/47777fa8-1e2e-f2bb-26f0-968dca3d1275.png)

## Hello world!
早速プログラミングをしていきましょう。先程の画面に
~~~py
print("Hello world!")
~~~
を入力してみてください。プログラミングでは、1文字でもスペルミスをしたら動かないので、入力の際は気をつけてください。エラーの原因は大体これです。

入力できたら、再生ボタンを押してみましょう。
![スクリーンショット 2024-03-07 15.23.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737640/12b09377-2b47-2040-9b0e-37f2faa609f5.png)

以下のように出力されましたか？おめでとうございます。あなたはプログラマーとしての第一歩を踏み出しました！
![スクリーンショット 2024-03-07 15.25.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737640/08f01774-323d-d5e7-c86b-bbf971e63686.png)

このようにpythonでは、何か出力する際`print()`というコマンドを利用します。()の中身が出力内容になります。
文字を出力する際は先ほどのように`""`で囲むのがルールです。好きに中身を変えて遊んでみてください。

~~~py
print("プログラミング入門")
~~~

## 演算
次に、超簡単な計算をPCにやってもらいましょう。

~~~py
print(1 + 2)
~~~

をHello worldの時と同様に実行してみてください。今回は数字なので""で囲む必要はありません。そういうルールです。

（ちなみにプラスの前後にスペースを入れていますが、これはどっちでも動きます。見やすさのために入れるのが一応標準です。）

同じボックスに入力してもOKですし、+コード　をクリックすると分けることもできます。見やすさのため、今回は分けておきました。
![スクリーンショット 2024-03-07 15.39.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3737640/dd7d1228-4f4c-76da-0923-b9335926bcc7.png)

3が出力されましたね。このように簡単な命令で、PCに計算を行ってもらうことができます。

これだけでは味気ないので、式も書いてみましょう。""で囲むとただの文字として処理されるので、
~~~py
print("1+2=", 1 + 2)
~~~
を実行すると
~~~実行結果:実行結果
1+2= 3
~~~
が出力されるはずです。"1+2"という文字と、1+2という値を並べてprintしてあげたということですね。PCは文字と数値を区別するので、printする際は","で繋いであげる必要があります。まあこういうものだと思ってください。

もちろん掛け算や割り算もできます。色々調べながら試してみてください。

## 変数
第1回の最後として、変数を扱ってみましょう。数学で使う文字x, yなんかに似ています。

以下のコードを入力してみてください。
~~~py
a = 1
b = 2
print(a + b)
~~~
先ほどと同様に3が出力されましたか？
このように、文字に値を入れて管理することができます。これだけでは余計なことをしているようにしか見えないと思いますが、計算が複雑になると、変数が役に立ちます。

結果を変数に入れることもできます。
~~~py
a = 1
b = 2
c = a + b
print(c)
~~~
先に計算しておいて、結果をcという変数に代入します。それをprintしたわけですね。

まだ便利さがあまりわからなかったかもしれませんが、今後普通に使っていくので、ふーんそういうのもあるのかと受け止めておいてください。

### ちょっと大事なこと

先ほど数学の文字に"似ている”という表現をしましたが、ここで重要なことは、プログラミングにおいてイコールは左辺と右辺が等しいという意味ではなく、右を左に**代入する演算子**です。例えば、数学ではあり得ない以下のような式が、プログラミングでは普通に使われます。
~~~py
a = 1

a = a + 1
print(a)
~~~
実行すると、特にエラーも出ず2が出力されたと思います。
このコードを追いかけると、まずaに1が代入されます。それからaにa+1が代入されていますが、この時すでにaは1なので、1＋1で2になるということです。

:::note
イコールは代入！
:::

## コメントアウト
おまけです。
「このコードもう使わないっぽいけど一応取っておきたい」とか「どんな気持ちで書いたかメモしておきたい」ということが今後増えていくと思います。そんな時に役立つのがコメントアウトです。pythonだと、先頭にシャープをつけた行は実行されなくなります。
~~~py
# シャープをつけるとコメントアウト
# print("Hello")
print("world")  # 横にコメントをつけることもできる
~~~
~~~:実行結果
world
~~~

エディタ[^2]によっては、行を選択しながら `ctrl + /` でコメントアウトしてくれます。便利ですね。
[^2]:プログラミングコードを書くためのノートみたいなツールをエディタと呼びます。今回はgoogle colabがエディタの役割をしています。
番外編にもう少し詳しく書きます。

## 例題
1. 半径3 cmの円の面積$s$を求め、$s$ cm^2 と出力せよ
1. あまりを計算する方法を調べ、2024を3で割ったあまりを出力せよ
1. 以下のリンク[APG4bPython](https://atcoder.jp/contests/APG4bPython/tasks/APG4bPython_ct)から問題を解け[^3]
[^3]:第0回で紹介したように、AtCoderはとってもおすすめのサイトです。無料のアカウント登録をして、ぜひ利用してください
***
<details><summary>解答例</summary>

~~~py
r = 3
s = r*r*3.14
print(s, "cm^2")
~~~

~~~py
print(2024%3)    # あまりを求める演算子はシャープ
~~~

</details>

***
いかがでしたか?
プログラミングとはどういうものか、なんとなくイメージが湧いたでしょうか。
次回はもう少し複雑なプログラミングをしてみます。できることが一気に広がるので、お楽しみに。

***
- 第0回　[はじめに](https://qiita.com/tau14/items/d6620cb24945d8e564c2)
- 第1回　[プログラミングをしてみよう](https://qiita.com/tau14/items/3d3086844c6eb9a05cca)
- 第2回　[if文、for文を使ってみよう](https://qiita.com/tau14/items/501abc293c5a93422c35)
- 第3回　[グラフを描いてみよう](https://qiita.com/tau14/items/68b92efe2bba7a6de5f1)
- 第4回　[物理の計算をしてみよう](https://qiita.com/tau14/items/3216260f786d49f807d4)
- 応用編　[関数（メソッド）を使ってみよう](https://qiita.com/tau14/items/6e875492afd3d5915ea0)
- 番外編　[環境構築をしてみよう](https://qiita.com/tau14/items/edc12e66548ad8c669f4)