Pythonのリストで八王子占いと浦和占い

この記事を読むことで、

・Pythonのリストの基礎練習

・リストと乱数の組み合わせ

・IF文の復習

・改行の使い方

・数値と文字列を同時に表示

について占いゲーム感覚で学べます。

今回作るリストは、「八王子(東京の西の方)」と「浦和(埼玉県)」を例にして、
八王子占いと、浦和占いのリストです。

Pythonでリスト(配列)の添え字を乱数にして、「あなたは何八王子か」という
占い診断ゲームを作って行きます。

八王子には、

・西八王子駅
・北八王子駅
・京王八王子駅
・(ふつうの)八王子駅

があります。

以下、プログラムの手順です。

手順
1:乱数を使うためにランダムモジュールをインポートする
2:駅名のリストを用意する
3:リストの要素数(長さを調べる)
4:リストの添字の乱数を発生させて変数indexに代入する
5:結果を「あなたは【北八王子駅】です」などと言った形式で表示させる。

では、各手順ごとに見ていきます。

手順1:乱数を使うためにランダムモジュールをインポートする

import random

手順2:駅名のリストを用意する

station=['西','北','京王','(ふつうの)']

手順3:リストの要素数(長さを調べる)を変数numに格納

num=len(station)

このリストの場合は、要素数の長さが4になります。

手順5:リストの添字の乱数を発生させて変数indexに代入する

index=random.randrange(num)

ここで、randrangeを使うことで0からリストの長さ未満の乱数を発生させます。
この場合、リストの長さが4になりますので、0から3までの乱数が発生します。
リストのインデックスは0から始まりますので、最後の添字はリストの長さ-1になります。


手順5:結果を例えば、「あなたは【北八王子駅】です」と言った形式で表示させる。

print('あなたは【'+str(station[index])+'八王子駅】です。\n')

最後に改行して見やすくなるように、「\n」を入れています。
これは、「バックスラッシュエヌ」と読みます。
バックスラッシュの「\」は、Macでは「option」キーと「¥」を同時に押します。

ここまでのコードをまとめます。

import random

station=['西','北','京王','(ふつうの)']
num=len(station)
index=random.randrange(num)

print('あなたは【'+str(station[index])+'八王子駅】です。\n')

実行結果です。
このようにランダムに何八王子なのか出力されます。


このコードを少しアレンジして、次は埼玉県にある浦和駅占いを作ってみます。
浦和には、浦和駅の他に「浦和」が着く駅名は、

・北浦和駅
・東浦和駅
・西浦和駅
・南浦和駅
・武蔵浦和駅
・中浦和駅
・浦和美園駅

と、こんなにあるんですね。
埼玉あるあるですが、待ち合わせの時は、「何浦和駅なのか」確認が必要です。

そこで、上記の八王子のプログラムを少し変更して、浦和リストのコードを作成します。

変更したのは2点です。
まず、リストです。
長さが8のリストでstation[0],station[1]・・・,station[7]までになります。

station=['東','西','南','北','武蔵','美園','中','(ふつうの)']

先ほどの八王子の例と異なる点は、例えば北浦和、南浦和でしたら、浦和駅の前に「北」とか「南」が付きますが、「浦和美園駅」の場合は「美園」は浦和の後に付きます

その為、添字が5(くどいようですが、リストの添字は0から始まるので、リストの「6番目」である浦和美園駅は、添字は「5」になります。)の時を踏まえて下記の様にIFによる分岐する必要が生じます。

if index==5:#浦和美園駅の場合
  eki='【浦和'+station[index]+'駅】'
else:
  eki='【'+station[index]+'浦和駅】'

ここまでのコードをまとめます。

import random

station=['東','西','南','北','武蔵','美園','中','(ふつうの)']
num=len(station)
index=random.randrange(num)

if index==5:#浦和美園駅の場合
  eki='【浦和'+station[index]+'駅】'
else:
  eki='【'+station[index]+'浦和駅】'

print('あなたは'+eki+'です。\n')

実行結果です。

お疲れ様でした。ブレイクタイムPhotoは、

いたばし花火大会2025です。

ご精読ありがとうございました。

■ 独習Python ■
Kindle版
単行本(ソフトカバー)

Python自作サンプル集へ戻る

写真クリエイターとしての活動
自己紹介

モバイルバージョンを終了