こんにちは!! ホーさん記事で衝撃を受け、投稿を再開したののたです。
Pythonを勉強して学んだ事をALISの記事にすれば勉強が続くのでは!?と思い
メモ代わりに投稿!!
※変な事を言っていたらTwitterで教えてください・・・
前回までに勉強したif・else・elifを使ってみます。
今回は「1等」・「2等」・「3等」・「4等」・「5等」・「はずれ」を抽選する簡単な抽選プログラムを作ります。
前回に使ったコードを応用して下記のように書きます。
number = 2
if number == 1:
print("1等 当たり")
elif number == 2: #number変数が2(真)なら下段を実行する。
print("2等 当たり") #「2等 当たり」と表示させる。
elif number == 3:
print("3等 当たり")
elif number == 4:
print("4等 当たり")
elif number == 5:
print("5等 当たり")
else:
print("はずれ")
これを実行すると「2等 当たり」になります。
ifが(真)なら「1等」になり
elifが(真)なら「2等」・「3等」・「4等」・「5等」となり
ifもelifも(偽)ならelseとなり「はずれ」になるようにしています。
と言うことでnumber変数の値により1等~はずれを選択します。
と言うことは!number変数を自動でランダムに選ぶプログラム作る必要がありますが、有難いことにPythonではランダムな整数を生成できるモジュールがあります。
Pythonでは「バッテリー同梱」と言う思想があり、インストールと同時にすぐ使えるよう、いろいろと入っています。その中で関数をまとめたモジュールを多数付属されており、これらを総称して標準ライブラリと呼びます。
例として下記のようなモジュールがあります。
datetime 日時を扱う。
json Webでよく使うJSON形式のデータを扱う。
math 三角関数などがまとめられている。
random 乱数を生成する。
と言うことで、乱数の生成をする為にrandomモジュールを使います。
ランダムに整数を生成できるモジュールです。
その中のrandint関数を使います。
randomモジュールを使うにはインポートする必要があります。
import random
モジュールのインポートは[import モジュール名]で実行できます・
number変数にrandint関数を代入します。
number = random.randint(1,6)
randint()関数はrandomモジュール内にあるので関数の前にrandom.と書きPythonにrandint()はrandomモジュールの内にあるよ、と教えてあげなければなりません。
()引数に始まりと,終わりの範囲を指定します(,カンマ区切り)。
上記をまとめて書いてみましょう。
import random
number = random.randint(1,6) #1~6のランダムな整数。
if number == 1:
print("1等 当たり")
elif number == 2:
print("2等 当たり")
elif number == 3:
print("3等 当たり")
elif number == 4:
print("4等 当たり")
elif number == 5:
print("5等 当たり")
else:
print("はずれ")
これを何回か実行すると
と言う感じでランダムに抽選された結果が返ってきます。
しかし、これではすべてが同じ確率で当たります。
抽選会などでは1等は1個、2等は2個、はずれは100個、のように等級により確率が変わるものだと思います。
そこで以前に勉強した比較演算子を使い確率を変えてみましょう。
確率は1位1%、2位2%、3位2%、4位3%、5位3%、はずれ89%で作ってみます。
import random
number = random.randint(1,100) #1~100のランダムな整数。
if number == 1: #1なら当たり。
print("1等 当たり")
elif number <= 3: #2,3なら当たり。
print("2等 当たり")
elif number <= 5: #4,5なら当たり。
print("3等 当たり")
elif number <= 8: #6,7,8ら当たり。
print("4等 当たり")
elif number < 12: #9,10,11なら当たり。
print("5等 当たり")
else:
print("はずれ")
これを実行すと・・・
なかなか当たりません・・・
ほとんどが「はずれ」になります。何回か実行してやっと当たりがでました。
てな感じでお好みの確率で試してみてください。
次はリスト、タプルについて・・・
分析してみたシリーズはこちら→昨日のALIS 分析 7/19(木)