【初心者向け】GoogleColabでPythonを使ってみよう！

## はじめに
　Pyhonは、近年ではスタンダードになりつつあるプログラミング言語で、プログラミング初心者にもとっつきやすく、一方でAI開発などの高度な使い方までができるのが特徴となっています。実は私は50代のおじさんでして、昔はBASIC、C、C++、Javaなどのプログラミングをしていましたが、久々にプログラミングをしてみたくなり、Pythonを知りました。BASICのようにやさしく初めることができるこの言語は初心者には最適と思いますので、今回ご紹介いたします。

## GoogleColabで気軽にPythonプログラミング
　Pythonは、非常に多くの環境で使うことができる言語になっていますが、最初、何から始めよう？と思いますよね。そんな時に気軽に利用できるのが、GoogleColabです。（Googleさん、ありがとう！！）
　習うより慣れろ！が定番だった昔を思い出しつつ、まずはGoogleColabを使ってみます。早速ですが、まずはブラウザの検索画面で、「GoogleColab」と入力してみましょう。
 
 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/044e960d-5e1b-2c91-3225-8294b93af45d.png" width=100%>

　概ね上記のように、「Colaboratoryへようこそ」といったリンクが出てくると思いますので、そちらをクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/a2018411-bcd1-2c9b-ebb0-abf16d71f155.png" width=100%>

「Colaboratoryへようこそ」画面が表示されますので、
「ファイル」「ドライブの新しいノートブック」を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/602c71e6-33b3-edba-bff7-7cdaaa36334c.png" width=100%>

※もしGoogleアカウントを持っていなければ、まずはGoogleのアカウントを取得・ログインしてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/65ee9d86-5897-305e-0811-0bbf5869b866.png" width=100%>
 
この画面までくれば、すぐにプログラミングが始められます！
なお、GPUを無料で使うこともできますので、いろいろ試して見てください！

## まずは単純な数式を使ってみよう
　「コーディングを開始するか、AIで生成します。」と表示されたところにマウスカーソルを持っていき、クリックします。
 　すると入力可能になるので、例えば、

```:Google Colab
1+1
```
として、[SHIFT]+[Enter]を押します。すると、
```:Google Colab(結果)
2
```
と表示されます。（1+1が計算できました）
簡単ですよねー。次に、
```:Google Colab
2**3
```
として、[SHIFT]+[Enter]を押します。
```:Google Colab(結果)
8
```
と表示されます。（2の3乗が計算できました）
Javaなどでは、「2^3」とすると思いますが、べき乗は「**」で表す様です。
次に、すこしプログラムっぽいというところで、代入と関数を使ってみましょう。
```py:Google Colab
x=2
print(x**10)
```
としますと、
```:Google Colab(結果)
1024
```
となります。2の10乗が計算され、表示（print）されました。
実はこの「print(x\*\*10)」を、「x\*\*10」とだけ書いても同じ結果になりますが、あえてprint()関数を使ってみました。

## for文を使ってみよう
　次に、繰り返し処理の基本ということで、For文を使ってみます。

```py:Google Colab
for i in range(10):
    print(i)
```
とすると、
```:Google Colab(結果)
0
1
2
3
4
5
6
7
8
9
```
と表示されます。
ここで注意が必要なのは、単純にfor i in range(10)とした場合、
1～10ではなく、0～9となる点です。（BASICよりもCやJavaに近い考え方かなと）
また、for文の最後に、コロン「:」をつける必要がある点も重要です。
さらに、BASIC、C、Javaとの大きな違いは、インデント（空白）が重要な意味を持つ点にあります。（私も理解に時間がかかりました）
for文の次の行は、インデント（tabなどで）しないとエラーになってしまいます。
for文は「()」や「{}」といった括弧でくくるのではなく、インデントによりforループの中の要素であることを示す必要があります。

## while文を使ってみよう
　次に、繰り返し処理の基本その２ということで、While文を使ってみます。
　先ほどのFor文と同じことを行うWhile文を書いてみます。
 
```py:Google Colab
i=0
while(i<10):
    print(i)
    i=i+1
```
とすると、
```:Google Colab(結果)
0
1
2
3
4
5
6
7
8
9
```
と表示されます。（同じですね）
For文同様、文の最後に、コロン「:」をつける必要がある点、インデントを使う必要が
ある点は同じです。

## if文を使ってみよう
　繰り返し処理のあとは、分岐ですよね。If文も試してみましょう。
・・・と言いたいところですが、単純にIf文をためすだけではおもしろくないので、今度は、Google Colab 自身にプログラム生成してもらいましょう！
プロンプトに対して、「生成」をクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/c36a0edc-c200-9a23-1cd0-9983013024b9.png" width=80%>

すると、生成プロンプトが表示されますので、「じゃんけんゲームを作ってください」と打ってみましょう！「生成」ボタンを押すと・・・

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3822494/e6fbce80-749f-2e96-2a15-9a1e50aecde6.png" width=80%>

　AI（Gemini）がじゃんけんゲームのプログラムを生成してくれます！！
 
```py:Google Colab（AIにより自動生成）
# prompt: じゃんけんゲームを作ってください

import random

def janken():
  hands = {0: "グー", 1: "チョキ", 2: "パー"}
  user_hand = int(input("0:グー, 1:チョキ, 2:パー\n"))

  if user_hand not in hands:
      print("正しい数値を入力してください")
      return

  computer_hand = random.randint(0, 2)

  print("あなた:", hands[user_hand])
  print("コンピュータ:", hands[computer_hand])

  if user_hand == computer_hand:
    print("あいこ")
  elif (user_hand == 0 and computer_hand == 1) or \
       (user_hand == 1 and computer_hand == 2) or \
       (user_hand == 2 and computer_hand == 0):
    print("あなたの勝ち")
  else:
    print("あなたの負け")

janken()
```
そして、これを実行すると、下記のようになります。
```:Google Colab(結果)
0:グー, 1:チョキ, 2:パー
0
あなた: グー
コンピュータ: チョキ
あなたの勝ち
```
時代は変わったな・・・と感じてしまいますが、気を取り直して説明を続けますと、If文の構文は、
```:IF文の構文
  if 条件式 :
      命令文
  elif 条件式 :
      命令文
  else:
      命令文
```
となることがわかります。
また、If文の==での値判定、and/or条件の使い方、配列の使い方、乱数(random）の使い方など、この自動生成のじゃんけんゲームは、結構色々参考になります。

## まとめ
　今回は、Pythonの基本構造について記載しました。
Pythonに関する文献は多くありますが、意外と基本構文について書かれているものが少ない気がしましたので、あえて基本事項を書いてみました。Pythonを使っていろいろなプログラムを作ってみてください！