PythonのリストをループとIF文、enumerate関数を使ってサザエさんキャラを取り出してみた。

この記事を読むことで、

Pythonのリストを単純にループを使って取り出す方法

enumerate関数を使って取り出す方法

IF文の復習

strで数値と文字列をprint文で表示する方法

が可能になります

具体例として使うのは、国民的アニメのサザエさんです。
その中から4人の名前をcharacterというリストにこの様に格納しました。

chara=['波平','サザエ','カツオ','タマ']

リストの添え字は「0(ゼロ)」から始まります。
このリストの場合、末尾の「タマ」は3です。

このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「人間」で、添字3のタマが「猫ちゃん」です。

そこで、typeという変数を用意して、添え字が3のタマの場合のみtypeを「猫ちゃん」に、それ以外は「人間」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i in range(len(chara)):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(chara[i]+':'+type)

実行結果です。

このコードにenumerate関数を使うと、添字と値を同時に表示させることが可能になります。

enumerateを使うことによって、リストの添字i=0,1,2,3とリストの中身のキャラクターを同時に扱えます。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print(i,member+':'+type)

このように書き換えられます。

実行結果です。

更に最後のprint文を変更して、実行結果に表示する日本語を、より伝わりやすく改変することも可能です。

str(i)を使うことによって、数値を文字と一緒にprint文内に表記しております。

#サザエさんのキャラクターのリスト
chara=['波平','サザエ','カツオ','タマ']

#ループを使ってリストを取り出す
#i=3のタマのtypeを「猫ちゃん」にする
for i,member in enumerate(chara):
  if i==3:
    type='猫ちゃん'
  else:
    type='人間'
  print('家族No.'+str(i)+' '+member+'さんは「'+type+'」です。')

実行結果です。

この様に、enumerate関数を使うと表記の自由度が増します。
ループ、リストとセットで復習にもなりました。

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

千葉県房総半島外房、御宿の海です。
ここの海は透明度が高いことが魅力の一つです。

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

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

Python自作サンプル集へ戻る

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

Pythonで辞書を使ってサザエさんのキャラクターを職業別に出力

この記事を読むことで、

・Pythonの辞書の基本的な作り方

・キーと値の指定の仕方


・次のデータの追加方法


・辞書から「キーを指定」して「値を取り出す方法」


・標準入力の復習

が学べます。

この記事で作成する辞書の具体例として、国民的アニメ「サザエさん」のキャラクターを用います。

辞書は、「キー」と「値」で構成されていて、 {(波かっこ)} で括って、下記のように記述します。

chara_dic={'大黒柱':'磯野波平'}

上記の場合は【キー】が「大黒柱」で、【値】が「磯野波平」です。
キーと値は「:」で区切っています。

辞書は、「 ,(カンマ) 」で区切ることによって、データを追加出来ます。
同様にして、他のキャラクターも追加しました。

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

この辞書をそのまま出力するコードはこちらです。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(chara_dic)

実行結果です。


次に、指定したキーの値のみを取り出してみます。
カツオくんにしようと思います。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(chara_dic['小学生'])#ここでキーを指定しています。

実行結果です。


この例ではキーに’小学生’と入力しましたが、変数keyに代入する書き方も掲載致します。
今度は主役のサザエさんを出力します。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

key='主婦'#キーを変数に代入します。

print(chara_dic[key])#変数キーを指定しています。

変数を使ったやり方でも無事に出力出来ました。


今度は、標準入力を使って、好きなキャラクターを表示出来る様に改変します。
そこで入力した内容をIF分岐を使って表示させます。

標準入力で入力する際にアルファベット1文字で簡単な操作性にする為、

「波平さん」の大黒柱を【d】、
「サザエさん」の主婦を「housewife」から【h】、
「カツオくん」の小学生を「Elementary school student」から【e】、
「タラちゃん」の幼児を「infant」から【i】、
「タマ」はペットの【p】

に致します。

標準入力は下記の様に、変数typeに代入します。

type=input()

ここで【d】や【i】などの文字を変数typeに格納します。

また、辞書に新たなキャラクターを追加致します。
キーは「その他」で、値は「伊佐坂先生」を加えました。

chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

それでは、ここまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業や特徴を「キー」、名前を「値」
chara_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

#ここで標準入力を使用します。
print('【d】大黒柱、【h】主婦、【e】小学生,【i】幼児,【p】ペット 【記号】を入力>>>',end='')
type=input()


#標準入力で入力した半角英字によって分岐しています。
if type == 'd':
  key='大黒柱'
elif type=='h':
  key='主婦'
elif type=='e':
  key='小学生'
elif type=='i':
  key='幼児'
elif type=='p':
  key='ペット'
else:
  key='その他'
  
print(chara_dic[key])#変数キーを指定しています。

typeに【d】を入力した場合。

typeに【i】を入力した場合。

typeに指定の半角英字以外を入力した場合(仮に【x】と入れてみました。)


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

マクセルアクアパーク品川
(東京都品川区にある水族館です。)

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

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

Python自作サンプル集へ戻る

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

Pythonで今日のラッキーカラーを乱数で作ってみた

この記事では、乱数を使って今日のラッキーカラーを求める自作のサンプルプログラムを紹介します。

0から70までの乱数を発生させて変数numに格納します。
(7で割った時の余りによって、ラッキーカラーが変わります。)

その乱数numを7で割った余りを変数remに格納して、IF文の中でラッキーカラーを変数colorに格納します。

乱数は、1行目からのimport randomによって使えるようになり、random.randintで発生させたい数字を入力します。

#乱数を発生させる準備
import random

# 変数numに0から70までの乱数を発生させる
num=random.randint(0, 70)

#乱数numを7で割った余りを変数remに格納する
rem=num%7

#numを7で割った余りremによってIF文で分岐させて今日のラッキーカラーを求める
if rem==0:
  color='赤'
elif rem==1:
  color='黄'
elif rem==2:
  color='青'
elif rem==3:
  color='ピンク'
elif rem==4:
  color='グレー'
elif rem==5:
  color='黒'
else:
  color='紫'

#結果の出力 数字をprint文で使う場合はstr(数字の変数)
print("乱数「"+str(num)+"」を7で割った余りは「"+str(rem)+"」です。")
print("今日のラッキーカラーは【"+color+"】です。")    

では、実行して見ます。

何度か実行して見た所、ランダムに数が変わって色が求められました。


これでも動くのですが、分岐が多いので、IFよりもmatchを使った文の方が分かりやすいです。(他の言語でいう、switch文)

import random

num=random.randint(0,70)
rem=num%7

print(rem)

match rem:
    case 0:
    color='赤'

    case 1:
    color='黄'

    case 2:
    color='青'

    case 3:
    color='ピンク'

    case 4:
    color='グレー'

    case 5:
    color='黒'

    case _:
    color='紫'

print("乱数が「"+str(num)+"」で割った余りが「"+str(rem)+"」だにゃん!!") 

print("今日のあなたのラッキーカラーは、【"+color+"】です!(=^ェ^=)")

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

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

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

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

Python自作サンプル集へ戻る

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

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