クリプト

Python 「抽選プログラム」 つくってみる

ののた's icon'
  • ののた
  • 2018/07/20 12:04
Content image

こんにちは!! ホーさん記事で衝撃を受け、投稿を再開したののたです。

Pythonを勉強して学んだ事をALISの記事にすれば勉強が続くのでは!?と思い

メモ代わりに投稿!!


※変な事を言っていたらTwitterで教えてください・・・



前回までに勉強したif・else・elifを使ってみます。

Content image

今回は「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ではランダムな整数を生成できるモジュールがあります。


Content image

Pythonでは「バッテリー同梱」と言う思想があり、インストールと同時にすぐ使えるよう、いろいろと入っています。その中で関数をまとめたモジュールを多数付属されており、これらを総称して標準ライブラリと呼びます。

例として下記のようなモジュールがあります。

datetime 日時を扱う。
json    Webでよく使うJSON形式のデータを扱う。
math   三角関数などがまとめられている。
random   乱数を生成する。

と言うことで、乱数の生成をする為にrandomモジュールを使います。


Content image

ランダムに整数を生成できるモジュールです。

その中のrandint関数を使います。


インポート

randomモジュールを使うにはインポートする必要があります。

import random

モジュールのインポートは[import モジュール名]で実行できます・


randint関数

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("はずれ")

これを何回か実行すると

Content image

と言う感じでランダムに抽選された結果が返ってきます。

しかし、これではすべてが同じ確率で当たります。


Content image

抽選会などでは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("はずれ") 

これを実行すと・・・

Content image

なかなか当たりません・・・

ほとんどが「はずれ」になります。何回か実行してやっと当たりがでました。


てな感じでお好みの確率で試してみてください。


Content image

次はリスト、タプルについて・・・




分析してみたシリーズはこちら→昨日のALIS 分析 7/19(木)



前回<<<  >>>次回




公開日:2018/07/20
獲得ALIS:43.72
ののた's icon'
  • ののた
  • @nonota
只今、Pythonを勉強中・・・ プログラミングの素人です!!学んだ事をALISの記事にする事によって勉強が続くのかをTEST中です。

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

バイナンスの信用取引(マージン取引)を徹底解説~アカウントの開設方法から証拠金計算例まで~

Like token Tip token
3.50 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
44.10 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS