Pythonでじゃんけんポイっ　初心者向け


この記事は、Django Girls Japan Python初級者向け、
「Pythonでじゃんけんゲームを作ろう」の勉強会用資料です。
尚、記載者も初心者のため、何らかの不具合などござましたら申し訳ございません。


記載者環境：Windows 10  python3.5

# コマンドラインの開き方
### Windows（コマンドプロンプト）
［スタート］メニューから［すべてのプログラム］－［アクセサリ］－［コマンドプロンプト］<br>
もしくは、キーボードのWindowsキー　＋　R　でファイル名を指定して実行を開き
名前(O):にcmdと入力し、Enter。
![2.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/4eeef07c-fbb6-d610-4cff-ab5125a34531.jpeg)

### Mac OS X（ターミナル）
［アプリケーション］ー［ユーティリティ］ー［ターミナル］


# Python3.5のインストール
### Windows
[Python3.5ダウンロード](https://www.python.org/)
インストール途中の↓の画面ではAdd Python 3.5 to PATHにチェックを入れる方が良いです。
![1.png](https://qiita-image-store.s3.amazonaws.com/0/100769/7d06e1a3-679b-ae73-1282-825708ff7e95.png)
*インストールするVersionによって、異なる場合がございます。

### Mac OS X
・Mac OS X 64-bit/32-bit installer DMG ファイルをダウンロードして下さい。
・ダブルクリックで開いてください。
・Python.mpkg をダブルクリックして、インストーラーを実行してください。

<b>インストールが完了したら、コマンドラインで確認しましょう。
Windows　 →  python --version
Mac OS X　→  python3 --version
と入力すると、インストールしたPythonのVersionが表示されます。</b>
***↓の画像はWindowsコマンドラインでの表示見本です。
![3.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/647ccbfc-1b8e-3404-00ce-199edd78c9a4.jpeg)

# Pythonの基礎のお話
### 変数とは
変数それは・・なんでも入る、便利な箱
![1.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/c0e9e7ea-5147-04a5-8885-db2c76316a36.jpeg)
![2.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/33dd954b-518e-cb78-46d2-0f2c6ad096bb.jpeg)

変数名には
・a~zのアルファペット
・数字
・_ （アンダースコア）
を利用する事が可能です。ただし<b>最初の文字は数字以外、予約語やキーワードと同じ名前は使えません。</b>（予約語、キーワードについての説明はここでは省きます。

Pythonでは変数に特別な宣言をする必要はありません。
（言語によっては、その変数にどんな属性をつけるかなど指定が必要な場合があります。）
a という変数を作ったら↑の画像にもあるように
a = 変数にいれたいもの
と代入すればよいだけです。

### [リスト](http://qiita.com/sandream/items/e7a215a27c080cf8ac03)
リストは要素としてあらゆるオブジェクトを持つ事ができます。
他の複数のオブジェクトをまとめて管理出来るオブジェクトです。
[ ] でくくり、カンマの区切りの要素の集合体がリストとなります。

<b>例：[“abc”,123,[“aa”,”bb”],(“xy”,”zd”),{1:234,5:678}]</b>

リストには部屋番号がついています。
部屋番号は０からはじまります。

![3.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/469a0711-0137-af56-4fac-f866da91e330.jpeg)

要素を取り出したい時には、部屋番号を指定してあげるだけです。
↑の例のリストを　a という変数にいれたとします。
a[0] とすると、0番目の部屋にある　”abc” が取得できます。

ちなみに・・↑の例の２の部屋にあるリストのさらに１の部屋の要素が欲しい時は
a[2][1] とすれば、取得できます。

### 辞書（ディクショナリ）
辞書はkeyとなる要素とValueとなる要素の組み合わせの集合体です。
リストとは異なり、部屋番号は持っていません。
｛　｝でくくり、keyとValueは：でつなぎます。
組み合わせごとの区切りは、リストと同じくカンマです。

<b>例：{1:234,5:678,”city”:”tokyo”,”name”:”sandream”}</b>

Valueはリストと同じく、全てのオブジェクトをいれる事ができます。
しかし、keyにはリストや辞書を指定する事はできません。

↑の例の辞書を　a という変数にいれたとします。

keyがcityのValueをとりたい場合は　　a[“city”] とします。

Valueからkeyを取得する方法もありますが、ちょっとややこしいので
ここでは割愛します。

### if文(条件分岐）
![1.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/2a34f0f1-f446-a0ed-3984-accffeb472e0.jpeg)

↑では、まず　aという変数の箱に猫を入れています。
if a == 猫:
とする事で、「もしaの箱(変数)に入っているのが猫だったら」という条件指定を行う事ができます。
この、「もしaの箱(変数)に入っているのが猫だったら」という条件に合致する場合は、if a == 猫: の次の行print("ニャー")を実行します。
(print は表示する命令文です)

ここで大切になるのは、インデントです。
if ～～の次の行はインデントを１つ下げて表記していきます。
このインデントが下がっている間、このifの条件は適用されます。

elif a == 犬：
は、aが猫ではなく犬だった場合という条件になります。

else:
は、else以前に指定した条件すべてに当てはまらない場合を示します。

### 利用したモジュール
今回のじゃんけんゲームではrandomモジュールを利用しています。
<b><Font color="magenta">import random</font></b>	乱数値（ランダムな値）を取得します
＊実行するごとに異なる結果がかえってきます。

<b><Font color="purple">random.random()</font></b>
		0.0～1.0までのfloat値を取得します。
			実行結果例：0.634854063865

<b><Font color="purple">random.uniform(x,y)</font></b>
		x～yまでのfloat値を取得します。
			実行結果例：random.uniform(1,100) →52.66907920726

 <b><Font color="purple">random.randint(x,y)</font></b>
		x～yまでのint値を取得します。
			実行結果例：random.randint(1,100) →62

<b><Font color="purple">random.choice(param)</font></b>
		param内から一つの要素を取得します。
			実行結果例：random.choice('abcdefghijklmnopqrstuvwxyz') → f
 
<b><Font color="purple">random.shuffle(array)</font></b>
		array内の要素をシャッフルします。
			実行結果例：test_list = ['python', 'django', 'girls', 'japan', 'tokyo']
	      					random.shuffle(test_list)
						→['django', 'girls', 'japan', 'python', 'tokyo']
# じゃんけんゲーム
### じゃんけんゲーム見本
作成したファイルを実行すると、
![2.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/4967e493-f878-a028-a34b-de0fd7e298c9.jpeg)
と入力を促す状態で一旦プログラムが停止します。
ユーザがaかbかcを入力しエンターを押下すると・・・
![3.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/229fec1f-d436-379f-b5c7-80d067a8eb60.jpeg)
コンピュータがランダムにじゃんけんの手を選び、じゃんけんの結果が表示されます。
また、万が一、ユーザがaかbかc以外の数字を入力した場合には
![7.JPG](https://qiita-image-store.s3.amazonaws.com/0/100769/1a7968ab-a24e-e031-1fd4-b5c78356ff05.jpeg)
と注意されるようになります。

### pythonファイルの実行方法
任意の場所にディレクトリ（フォルダ）を１つ作成します。
（今回はjankenというディレクトリを作成しています。)
コマンドラインで作成したディレクトリ内に移動します。

<b>cd janken</b> *cd の後にスペースをあけて、移動したいディレクトリへのPathを入力します。（もし　janken ディレクトリの中にtestというディレクトリを作成し、そのtestディレクトリ内に移動したい場合は　cd janken/test とします。）

テキストエディタで作成したファイルを作成したディレクトリ（フォルダ）に保存します。
拡張子は .py です。(今回はjankencom2.py としています。)

python jankencom2.py としEnterキーを押下してください。
作成したプログラムが実行されます。



# じゃんけんゲーム　穴埋め問題

```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random

dic = """問１：1がグー２がチョキ３がパーとなる辞書をつくってください"""

print ("じゃーんけーん")
print ("a=グー　b=チョキ　c=パー　aかｂかcを入力")
user = input('>>>  ')
user = user.lower()

try:
    user_choice = """問2：userが入力した数字からdicを使ってグーかチョキかパーの文字を取得してください"""
    
    choice_list = ["a","b","c"]
    pc = """問3：import したrandomを使って、PCに数字をチョイスさせて、且つグーかチョキかパーの文字列を取得してください"""
    
    draw = 'DRAW'
    win = 'You Win!!'
    lose = 'You lose!!'
    
    """問4：ユーザの手とPCの手を比較して結果を取得してください
    結果はjudgeという変数を作成して上記のdraw win loseのいずれかを
    変数にいれてください。"""
    
    print("あなた選んだのは %s"%user_choice)
    print("コンピュータが選んだのは %s"%pc)
    print("結果は%s"%judge)
except:
    print("1か２か３を入力してください。")
```
上記コードの問１から問４をやってみましょう。


回答は[こちら](http://qiita.com/sandream/items/01374069f447b7748eba)

Pythonでじゃんけんポイっ　初心者向け Windows ローカルサーバで動かそう
は[こちら](http://qiita.com/sandream/items/e2ecb524240d81c57ea2)