「サザエさん」のキャラで、Pythonの辞書をループを取り出す

この記事を読むことで、

・Pythonの辞書の「キー」及び「値」とは何か

・辞書自体をそのまま表示

・「辞書.items()」を使って、辞書をループを使って取り出す

といったことの理解が可能になります。

辞書の例として、国民的アニメの「サザエさん」のキャラクターの「職業をキー」に、「キャラクターを値」にしています。

辞書は{“キー”:”値” , “キー”:”値” ,・・・}の構造になっていて、サザエさんキャラを例にすると、{“大黒柱”:”波平” , “主婦”:”サザエさん”}などになります。

5人ぐらいで良いかな・・・と思って、こちらの5名を用意しました。
辞書の名前は「sazaesan」です。

sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

では、この記事本編で詳細を見ていきます。

この5人のキャラクターの、職業と名前を辞書を使ってループで取り出して見ます。
まず、print関数でシンプルに辞書自体を表示させてみます。

コードはこちらです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書自体を「そのまま」出力
print(sazaesan)

辞書を「そのまま」取り出した実行結果です。

う〜〜〜ん
取り出せましたけれど、ちょっと見づらいですよね。

そこで、今度はこの辞書をループを使って出力してみます。

コードに下記を追加します。
キーとなるのはjob:職業で、となるのはchara:キャラクター名として、forループで(job,chara)とすると、「大黒柱,波平」から、「ペット,タマ」までの全てのメンバーを取り出せます。

辞書.items():

を使って、キーであるjobと、であるcharaを取り出します。
まずは、そのループの部分はこちらになります。

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job,chara)

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job,chara)

実行結果です。

まぁ、これでも辞書の「キー」と「値」が表示されていますけれど、もう少し日本語の体裁を整えたいと思います。

下記のように日本語を整えて表示します。

print(job+”の、”+chara+”さんです。”)

とprint文を表記します。
ここまでのコードです。

最後に改行を入れております。(← 私が実行画面のスクショを綺麗に撮りたい為ですので、深い意味はございません m(_ _)m  )

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
    print(job+"の、"+chara+"さんです。")

#改行
print()

実行結果です。

もう少し「キー」と「値」を見やすくしたいので、コードをこの様に書き換えます。

print(“【”+job+”】の、【”+chara+”】さんです。”)

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}

#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
   print("【"+job+"】の、【"+chara+"】さんです。")

#改行
print()

これで、実行してみます。

最後に、「そのままの」辞書とループ取り出しの両方を書いて見ます。

print文に「\n」を入れて改行させています。
文字列と一緒に数値(辞書)を表示させる時は、この様にstrで囲います。

#辞書自体を出力
print('\n'+str(sazaesan)+'\n')

ここまでのコードです。

#サザエさんキャラの辞書を作成
sazaesan={"大黒柱":"波平","主婦":"サザエさん","小学生":"カツオ","幼児":"タラちゃん","ペット":"タマ"}


#辞書自体を出力
print('\n'+str(sazaesan)+'\n')


#辞書.items()を使ってループで出力
for (job,chara) in sazaesan.items():
   print("【"+job+"】の、【"+chara+"】さんです。")

#改行
print()

これで実行してみます。

改行のprint()、もう少しスッキリさせたいですよね。
なので、もうちょっと改変します。

最後までお読みいただきありがとうございました。

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

この記事を読むことで、Pythonのリストを単純にループを使って取り出す方法とenumerate関数を使って取り出す方法が学べます。

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

character=[‘波平’,’サザエ’,’カツオ’,’タマ’]

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

このリストの添字0の波平さん、添字1のサザエさん、添字2のカツオまでが「磯野家の人たち」で、添字3のタマが「ペット」です。

そこで、jobという変数を用意して、添え字が3のタマの場合のみ職業を「ペット」にして、それ以外でしたら「磯野家の人たち」と表示する様にプログラミングしました。
シンプルなIF文による分岐をしています。

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

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i in range(len(character)):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print(job,character[i])

実行結果です。

ループのところでlen関数を使ってリストの長さを求めて、その分繰り返すように指定しておりますが、この部分に直接配列自体を書くことも可能です。
ただそうすると、リストの添字i=3の時のキャラクターの職業を「ペット」にするといった、添字による分岐が出来なくて困りますよね。

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

コードを改変します。

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

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i,member in enumerate(character):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print(job,member)

このように書き換えられます。
これで実行すると、先ほどと同じ結果が得られます。

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

str(i)としているのは、数値を文字と一緒にprint文内に表記する為です。

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

#ループを使ってリストを取り出す
#iが3のタマの職業を「ペット」にする
for i,member in enumerate(character):
  if i==3:
    job='ペット'
  else:
    job='磯野家の人たち'
  print('家族No.'+str(i)+member+'さんは、「'+job+'」です。')

実行結果です。

この様に、enumerate関数を使うと自在に表記できるので便利です。
ループ、リストとセットで私も頑張って覚えます。

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

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

この記事を読むことで、

・Pythonの辞書の基本的な作り方
・キーと値の指定の仕方
・次のデータの追加方法
・辞書から「キーを指定」して「値を取り出す方法」

が学べます。
また、Pythonでの標準入力の書き方の復習にも触れております。

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

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

character_dic={‘大黒柱’:’磯野波平’}

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

この辞書にあと1人だけ(私の推しキャラ!)を追加してみます。

character_dic={‘大黒柱’:’磯野波平’,’ペット’:’タマ’}

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

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

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

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

print(character_dic)

その実行結果です。

では、標準入力と単純なIF文を使って、少しアレンジをしていきたいと思います。

標準入力で、「d」と入力するとキー「大黒柱」が指定されて、値の「磯野波平」が出力されます。(ifの条件が真の時に該当)

「h」と入力するとキーに「housewife(主婦)」が指定されて値の「フグ田サザエ」を出力されます。(elifの条件が「h」の時に該当)

「e」と入力するとキーに「Elementary school student(小学生)」が指定されて値の「磯野カツオ」が出力されます。
(elifの条件が「e」の時に該当)

「p」と入力するとキーに「ペット」が指定されて「タマ」が出力されます。
(elifの条件が「p」の時に該当)

また、それ以外のテキトーな入力をすると、キーに「その他」が指定され、「伊佐坂先生」が出力されます。(elseに該当)

ここまでのコートを、かいつまんで解説すると、標準入力の直前に、

print(‘【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>’,end=”)

と、書いています。
最後のend=”は、改行せずにこのメッセージの直後に【d】や【h】を入力できる様にしています。

標準入力は

job=input()

で、ここで【d】とか【h】などの文字を変数jobに格納します。

その後はIF文で分岐させています。

if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

その後にjobに入力された【d】や【h】がこのIF文による分岐で、indexに「大黒柱」や「主婦」などの辞書のキーが代入されます。

その代入されたindexを辞書のキーとして、キャラクター名を下記のprint文で出力しています。

print(character_dic[index])

辞書の最後に「伊佐坂先生」を加えました。

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

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

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


#標準入力でキーを指定
print('【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>',end='')
job=input()


#IF文による分岐で辞書のキーを指定して、変数indexに代入する
if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

#辞書のキーにindexが入って、該当する値が出力される
print(character_dic[index])

ここから実行結果を見ていきます。ifとelif、そしてelseの分岐をイメージして、頭の中でトレースしながら実行しました。

標準入力で【d】を指定した場合。

標準入力で【h】を指定した場合。

標準入力で【e】を指定した場合。

標準入力で【p】を指定した場合。

標準入力でなんかテキトーなキー(ここでは【y】)を指定した場合。

サザエさんのキャラクターで辞書を使った解説は以上になります。

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

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

日向坂46の2024年お正月「人狼ゲーム」でPythonの入門の入門のサンプルコードを作ってみました。

この記事では、2024年お正月に配信された、日向坂46の人狼ゲームの配信を元に、Pythonの入門の入門のサンプルコードを作ってみました。

こちらのYouTube動画です。

配信の感想は、アメブロの記事に、四期生の正源司 陽子(しょうげんじ・ようこ)さん推しの視点で書きました。

この記事で学習出来ることは、

・「=」代入と「==」比較演算子の違い

・無料で使えるオンラインのエディター紹介

・乱数とIF文で勝敗バトル

・Whileループと乱数で勝敗バトル

・↑記事に関数を導入

・Forループの基本的な使い方

・人狼役職の配列表示

・配列とForループ

・プログラミング学習コンテンツの紹介

です。
それでは、宜しくお願いします(=^ェ^=)

プログラミングの学習を始めた頃、「=」と「==」の違いで少し迷った時期がありました。

これについては、実際に手を動かしてコードを書いてみると、その疑問が氷解出来ました。

まず、「=」の代入ですが、変数roleに役職「市民」を代入して、print文で表示させます。

ご存知の方には恐縮ですが、コメントは「#」を付けます。

#変数roleに「市民」を代入
role='市民'

#役職を表示する
print(role)

実行結果はこちらです。

roleという変数に、役職「市民」が代入されて出力されました。
この後、roleに「裏切り者」を代入して出力します。

role='市民'

#別の役職、「裏切り者」を代入
role='裏切り者'

print(role)

実行結果です。

このように、代入では入れる値によっては上書きされるというイメージを持って頂けたらと思います。

一方で、「==」は、等しいかどうかの判定を行います。

role='人狼'

#boolで等しい時はTrue、そうでなければFalse
print(bool(role=='市民'))

「人狼」と「市民」は等しくないので、この様な実行結果になります。

IF文では、もしも「まっさらな市民」だとしたら自分は退場して、騎士などの役職持ちのメンバーに頑張ってもらいたい時は、例えばこの様に記述します。

role='市民'

#役職が市民だったら退場する
if role=='市民':
    print('退場して、騎士や霊媒師などに頑張ってもらう')

実行結果です。

ここでもし、「==」を「=」にしてしまうと、エラーが出てしまって、正しく実行されません。

7行目の所でエラーが出ています。

「=」の代入と、「==」の比較演算子の違いは、実際に書いてみるのが一番理解できました。

とはいえ、「書いてみて」と言われても、プログラミングって環境構築に結構な時間や手間が掛かりますよね。

そこで、すぐに試してコードを書いて実行できる、オンライン上で無料の開発環境IDEを次の項目で紹介します。

結論ですが、paiza.ioがオススメです。

「コード作成を試してみる(無料)」→ 「Python3」 からすぐに学習開始出来ます。

無料のオンラインエディタ(IDE)を調べたら10個ぐらい出てきて、どれを使おうか迷いましたが、

・登録なしですぐ使える
・日本語対応
・標準入力機能が使える

といった点から、paiza.ioをオススメします。

ここでは、標準入力を使ってみます。
paiza.ioの下のタブの「入力」を選択して、自分のやりたい役職を入力します。

この状態で下記のコードを実行します。
変数roleに標準入力で入れた役職が入り、それを出力します。

#標準入力で、やりたい役職を入力する
role=input()

#その役職を表示する
print('私が1番やりたい役職は【'+role+'】です。')

標準入力についてはここまでにして、次からはランダムな数字である乱数を使って、ゲーム的な要素をプログラミングに取り入れてみます。

ここから、乱数を使って、「市民チーム」と「人狼チーム」の勝敗を出力するといった、ゲーム的要素を入れたコードを書いて行きます。

1から10までの乱数を作って、5以上だったら人狼チームの勝ち、そうで無ければ市民チームの勝ちとします。

乱数は、import random で使える様になり、1から10という整数は random.randint(1,10)で生成します。
その乱数を変数numに代入します。

勝者を入れる変数は、winnerを使います。

#乱数を使える様にする
import random

#1から10までの乱数を作る
num=random.randint(1,10)

#5以上だったら人狼チームの勝利
if num>=5:
    winner='人狼'
else:
    winner='市民'

#勝敗結果を出力
print('勝者は【'+winner+'】チームです!!')

実行結果です。

何回か実行してみると、

実行結果が変わりました。
このままでも、どっちが勝ったのか分かるのですが、乱数の値が何だったのか知りたいので、numも表示させてみます。

#乱数を使える様にする
import random

#1から10までの乱数を作る
num=random.randint(1,10)

#5以上だったら人狼チームの勝利
if num>=5:
    winner='人狼'
else:
    winner='市民'

#勝敗結果を出力
print('勝者は【'+winner+'】チームです!!')
print(num)

あとは、1行で表示されるようにしたいのと、numもprint文の中に一緒に入れたいのですが、数値型の変数を文字列型と一緒に使う場合には、str(num)と書きます。

#乱数を使える様にする
import random

#1から10までの乱数を作る
num=random.randint(1,10)

#5以上だったら人狼チームの勝利
if num>=5:
    winner='人狼'
else:
    winner='市民'

#勝敗結果と乱数を一緒に出力
print('numが「'+str(num)+'」より、勝者は【'+winner+'】チームです!!')

実行結果です。

ループを使ってちょっとRPGっぽく、市民チームと人狼チームのHPを指定して、HPが0になったらループを抜けて負けにしてみます。

Whileループの継続条件は、両方のチームのHPが0以上の場合です。

攻撃されるとHPが減って、攻撃によってどれぐらいHPが減るのかを乱数attackで指定します。

flagが0だったら人狼チームの攻撃、1だったら市民チームの攻撃にします。

改行は「\n」を使います。

ちょっと複雑だな・・・と思われた方は、次の次のForループの所まで読み飛ばしても大丈夫です。

#乱数を使える様にする
import random


#市民チームと人狼チームのHP初期値を10にする
shimin_HP=10
jinro_HP=10

#whileループでバトル!!
while shimin_HP>0 and jinro_HP>0:

    #相手チームに与えるダメージは1から5までの乱数にする
    attack=random.randint(1,5)

    #0だったら人狼チームの攻撃、1だったら市民チームの攻撃にする
    flag=random.randint(0,1)

    if flag==0:
        print('人狼チームが市民チームに「'+str(attack)+'」のダメージを与えた')
        #攻撃された市民チームのHPがマイナスされる
        shimin_HP-=attack
    else:
        print('市民チームが人狼チームに「'+str(attack)+'」のダメージを与えた')
        #攻撃された人狼チームのHPがマイナスされる
        jinro_HP-=attack
    print('市民チームHP残:'+str(shimin_HP)+'\n人狼チームHP残:'+str(jinro_HP))
    print('----------')
    
#勝敗結果
if shimin_HP>jinro_HP:
    winner='市民'
else:
    winner='人狼'

print('勝者は【'+winner+'】チーム!!')  

実行結果は長いので省略させて頂きますm(_ _)m

コード自体が長くなってきて、メンテナンスの意味も込めて、次の項目ではバトルの部分と勝敗結果をdefを使って関数にして、関数をループ中やprint文の中から呼び出してみるようにコードを書き換えてみます。

バトルの部分を関数battleにして、whileループで呼び出し、勝敗結果をprint文の中で呼び出すコードに書き換えてみました。

#乱数を使える様にする
import random


#市民チームと人狼チームのHP初期値を10にする
shimin_HP=10
jinro_HP=10


#defで関数battleを定義する
def battle(shimin_HP,jinro_HP):
    
    #相手チームに与えるダメージは1から5までの乱数にする
    attack=random.randint(1,5)

    #0だったら人狼チームの攻撃、1だったら市民チームの攻撃にする
    flag=random.randint(0,1)

    if flag==0:
        print('人狼チームが市民チームに「'+str(attack)+'」のダメージを与えた')
        #攻撃された市民チームのHPがマイナスされる
        shimin_HP-=attack
    else:
        print('市民チームが人狼チームに「'+str(attack)+'」のダメージを与えた')
        #攻撃された人狼チームのHPがマイナスされる
        jinro_HP-=attack
    print('市民チームHP残:'+str(shimin_HP)+'\n人狼チームHP残:'+str(jinro_HP))
    print('----------')
    
    return shimin_HP,jinro_HP


while shimin_HP>0 and jinro_HP>0:
    #関数battleを呼び出している
    shimin_HP,jinro_HP=battle(shimin_HP,jinro_HP)    
    
#defで関数winを定義している
def win():
    if shimin_HP>jinro_HP:
        winner='市民'
    else:
        winner='人狼'
    return winner

#print文の中で関数winを呼び出している
print('勝者は【'+win()+'】チーム!!')

上記のWhileループの他にForループがあって、配列と一緒に使うのに便利です。
人狼ゲームの役職の配列を作ってその中身を取り出すのにForループを使って行きます。
その前に、Forループの基本的な使い方を確認します。

・0から4まで1ずつ加算

#0から4まで1ずつ加算
for i in range(5):
    print(i)

実行結果です。

もっと短いコードで書ける、内包表記を使うとこの様になります。

#0から4まで1ずつ加算
for i in range(5):
    print(i)

#内包表記
[print(i) for i in range(5)]

実行結果

・0から9まで2ずつ加算

#0から9まで2ずつ加算
for i in range(0,10,2):
    print(i)

#内包表記
[print(i) for i in range(0,10,2)]

実行結果

・5から1まで1ずつ減算

#5から1まで1ずつ減算
for i in range(5,0,-1):
    print(i)

#内包表記
[print(i) for i in range(5,0,-1)]

以上が、Forループの基本的な使い方です。

配列って、なんか難しそうだ・・・と思われた方は、配列とは団地みたいなものをイメージして下さい。

団地の0号室に「市民」が住んでいて、1号室に「霊媒師」が住んでいて・・・そんなイメージです。

#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']

#配列を出力
print(array)

出力結果です。

配列は0から始まるので、例えば「占い師」を表示させたい場合は、array[2]になります。

#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']

#配列を出力
print(array[2])

次の項目では、先ほどのループと配列を合わせた、プログラミングでは使用頻度の高いコードを掲載します。

ループを使って、配列の中身を取り出します。
通常の表記と、内包表記を併記します。

#配列を定義
array=['市民','霊媒師','占い師','騎士','裏切り者','人狼']

#Forループで配列の出力
for role in array:
 print(role)
 
#内包表記
[print(role) for role in array]

実行結果です。

この記事での学習はここまでで、Pythonの入門の入門が学習出来たと思います。
もっと詳しく勉強したい方は、下記の学習コンテンツがオススメです。
いきなり本を買っても良いのですが、出来れば動画学習コンテンツで多少知識を入れてからの方が、本当に必要なお買い物が出来ると思います。

初めてのプログラミング学習では、やはり講師の説明を聞きながら動画を見て、それを自分のPCで動かして試してみる・・・という方法がハードルが低いので、オススメの学習コンテンツを2つ紹介します。

どっちが良いのか迷われた方は、両方の無料レッスンを受けてみて、自分に合いそうな方を取り入れて下さい。

ドットインストール
paizaラーニング

長々と書いてしまいましたが、本当にご精読ありがとうございます。
大変、お疲れ様でした。

(一気に記事を書き上げたので、私も少し肩が凝ってきました 笑) ストレッチでもしようかな。)


ブレイクタイムPhotoは・・・

地元の遊歩道の桜並木です。
私は東京の中でも、かなり辺鄙な所に住んでおります。
住めば都というように、写真の被写体としては面白い風景が至る所にあるので、写真を始めてから、「ここに住んでいて良かった」と思えてきました。

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

【Python辞書で化学(周期表・元素記号)のお勉強】辞書(連想配列)を使って年号をキーに出来事を値にする

この記事では、もうすぐ入試の時期なので、受験生の方にお役だて頂けたらと思い、入試に良く出る化学の周期表の元素記号の辞書(連想配列)をPythonで作って、ループで取り出してみたり、元素記号を標準入力で入力すると対応する元素の日本語が出力される様にしてプログラミングを使って化学の復習をしました。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

まず、こんな感じの辞書を作ります。

elements={'H':'水素',
'He':'ヘリウム',
'Li':'リチウム',
'Be':'ベリリウム',
'B':'ホウ素',
'C':'炭素',
'N':'窒素',
'O':'酸素',
'F':'フッ素',
'Ne':'ネオン',
'Na':'ナトリウム',
'Mg':'マグネシウム',
'Al':'アルミニウム',
'Si':'ケイ素',
'P':'リン',
'S':'硫黄',
'Cl':'塩素',
}

参考にした化学のウェブサイトはこちらになります。

【受験生必見】元素周期表はこれを覚えろ!!周期表の覚え方と必須知識を徹底解説!

元素の英語名と読み方・発音一覧表

では、これをループで取り出してみます。

for element,name in elements.items():
    print(element+'…「'+name+'」')

今度は標準入力で元素記号を入力するとその元素の日本語名がリストで表示される様に致します。追加したコードです。

print('元素記号を入力>>>',end='')
element=input()
print(elements[element]+'\n')

上記のコードを加えて、上の一覧にある元素記号から好きな元素記号を標準入力で入力します。

実行結果です。

この例では、「Mg」でマグネシウムを入力しています。
マグネシウムの健康効果は、e-ヘルスネットさんをご覧下さい。
最後に、全てのコードを掲載します。

elements={'H':'水素',
'He':'ヘリウム',
'Li':'リチウム',
'Be':'ベリリウム',
'B':'ホウ素',
'C':'炭素',
'N':'窒素',
'O':'酸素',
'F':'フッ素',
'Ne':'ネオン',
'Na':'ナトリウム',
'Mg':'マグネシウム',
'Al':'アルミニウム',
'Si':'ケイ素',
'P':'リン',
'S':'硫黄',
'Cl':'塩素',
}

print()

for element,name in elements.items():
    print(element+'…「'+name+'」')

print()

print('元素記号を入力>>>',end='')
element=input()
print(elements[element]+'\n')

空行のprint文を入れて、体裁を整えています。

オミクロンとか流行っていますけれど、体調にお気をつけて、「手洗い・うがい・歯磨き・歯間ブラシで歯の隙間の掃除、もう一回歯磨き」をして、除菌して、徹底して頑張って下さい。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

【Python辞書で歴史(世界史)のお勉強】辞書(連想配列)を使って年号をキーに出来事を値にする

この記事では、もうすぐ入試の時期なので、受験生の方にお役だて頂けたらと思い、入試に良く出る世界史年号の辞書(連想配列)をPythonで作って、ループで取り出してみたり、年号を標準入力で入力すると対応するアイテム(出来事)が出力される様にしてプログラミングを使って歴史の復習をしました。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

まず、こんな感じの辞書を作ります。

history={962:'神聖ローマ帝国が成立する',
1066:'ノルマン征服 (ノルマン朝が成立する)',
1202:'第4回十字軍がコンスタンティノープルを占領しラテン帝国を建国する',
1215:'ジョン王がマグナカルタを承認する',
1453:'ビザンツ帝国滅亡(百年戦争終結)',
1479:'スペイン王国が成立する',
1492:'コロンブスがアメリカ大陸を発見する',
1660:'イギリスで王政復古がおこる',
1685:'フランスでナントの勅令が廃止される',
1688:'イギリスで名誉革命がおこる',
1789:'フランス革命がおこる (フランス人権宣言)',
1804:'ナポレオンが皇帝に即位',
1848:'フランスで二月革命がおこる',
1902:'日英同盟の締結',
1905:'ポーツマス条約が結ばれる',}

参考にした歴史のウェブサイトはこちらになります。

【世界史】年号語呂合わせ一覧!センター試験対策の暗記に最適

では、これをループで取り出してみます。

for year,event in history.items():
    print(str(year)+'年に「'+event+'」')

yearをキーにして、その年に起きたことをeventにして、辞書historyにitems()を付けて辞書をループで取り出しています。

今度は標準入力で年号を入力すると出来事がリストで表示される様に致します。
追加するコードです。

print('年号を入力>>>',end='')
year=int(input())
print(history[year]+'\n')

上記のコードを加えて、上の一覧にある年から好きな年号を標準入力で入力します。
実行結果です。

この例では「1789」と入力して、1789年のフランス革命を表示させました。
理由は、何となく出そうだからです。

最後に、全てのコードを掲載します。

history={962:'神聖ローマ帝国が成立する',
1066:'ノルマン征服 (ノルマン朝が成立する)',
1202:'第4回十字軍がコンスタンティノープルを占領しラテン帝国を建国する',
1215:'ジョン王がマグナカルタを承認する',
1453:'ビザンツ帝国滅亡(百年戦争終結)',
1479:'スペイン王国が成立する',
1492:'コロンブスがアメリカ大陸を発見する',
1660:'イギリスで王政復古がおこる',
1685:'フランスでナントの勅令が廃止される',
1688:'イギリスで名誉革命がおこる',
1789:'フランス革命がおこる (フランス人権宣言)',
1804:'ナポレオンが皇帝に即位',
1848:'フランスで二月革命がおこる',
1902:'日英同盟の締結',
1905:'ポーツマス条約が結ばれる',}

print()

for year,event in history.items():
    print(str(year)+'年に「'+event+'」')

print()

print('年号を入力>>>',end='')
year=int(input())
print(history[year]+'\n')

print文の空行を入れて体裁を整えています。

オミクロンとか流行っていますけれど、体調にお気をつけて、「手洗い・うがい・歯磨き・歯間ブラシで歯の隙間の掃除、もう一回歯磨き」をして、除菌して、徹底して頑張って下さい。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

【Python辞書で歴史(日本史)のお勉強】辞書(連想配列)を使って年号をキーに出来事を値にする

この記事では、もうすぐ入試なので、受験生の方にお役だて頂けたらと思い、入試に良く出る日本史年号の辞書(連想配列)をPythonで作って、ループで取り出してみたり、年号を入力すると出来事が出力される様にしてプログラミングを使って歴史の復習をしました。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

まずは、こんな感じの辞書を作ります。

#年号をキーに出来事を値にした辞書を作成
exam={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

参考にした歴史のウェブサイトはこちらになります。

では、これをループで取り出してみます。

#年号をキーに出来事を値にした辞書を作成
exam={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

print()

#ループでキーと値を取り出す
for year,event in exam.items():
    print(str(year)+'年には「'+event+'」がありました。')

今度は標準入力で年号を入力すると出来事がリストで表示される様に致します。

print()

#指定の年を標準入力とリストで出力する
print('年号を半角数字で入れて下さい。>>>',end='')
nen=int(input())
print('その年には【'+exam[nen]+'】がありました。')

上記のコードを加えて、上の一覧にある年から好きな年号を標準入力で入力します。
実行結果です。

この例では1338と入力すると、「室町幕府の成立」と出力されました。
私自身は私立理系ということもあって、日本史チンプンカンプンなのですが、急に歴史の勉強をする必要が出てきたので、プログラミングを使って勉強します。

学生時代あれだけ苦手だった歴史も、プログラミングで勉強すると楽しいですね。
では、今までのコードです。

#年号をキーに出来事を値にした辞書を作成
exam={607:'小野妹子ら遣隋使派遣',
720:'日本書紀の編纂',
1086:'白河上皇の院政始まる',
1221:'承久の乱',
1338:'室町幕府の成立',
1588:'刀狩り',
1603:'江戸幕府の成立',
1709:'新井白石の政治',
1837:'大塩平八郎の乱',
1853:'ペリー来航',
1877:'西南戦争',
1902:'日英同盟'}

print()

#ループでキーと値を取り出す
for year,event in exam.items():
    print(str(year)+'年には「'+event+'」がありました。')

print()

#指定の年を標準入力とリストで出力する
print('年号を半角数字で入れて下さい。>>>',end='')
nen=int(input())
print('その年には【'+exam[nen]+'】がありました。')

オミクロンとか流行っていますけれど、体調にお気をつけて、「手洗い・うがい・歯磨き・歯間ブラシで歯の隙間の掃除、もう一回歯磨き」をして、除菌して、徹底して頑張って下さい。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

【Python2重ループ】二重ループと論理積and、論理和orで、オリンピックイヤーの市松模様

この記事は、Pythonの二重ループを学習中で、規則的で簡単なドット絵を描きたい方を対象にしています。

題材はオリンピックで話題になった、市松模様です。

今日は2021年12月31日の大晦日、もうすぐオリンピックイヤーも終わります。
そこで、今年の締めのプログラミングとして、Pythonで二重ループを使って、市松模様を作りました。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

ここでは最初にリスト(配列)の全ての要素に「□」で埋めます。
10行20列の□を取り出すには、リストarrayを行ごとに取り出す変数line、lineからドットごとに取り出す変数dotを使った二重ループで、内ループの所で改行することによって、次の行に行く前に改行が出来ています。

#市松模様の□を格納
array=[['□' for i in range(20)] for j in range(10)]

#ドット絵の取り出し
for line in array:
    for dot in line:
        print(dot,end="")
    print()    

では、これを一つ置きに「■」に置き換えてみます。
リストは0行0列から始まります。
このリストarrryは1番最初がarray[0][0]、1番最後がarray[9][19]です。
そこで、一つ置きになるように、「2で割り切れる行、且つ2で割り切れる列」または「2で割ると1余る行、且つ2で割ると1余る列」を「■」にします。

#市松模様の□を格納
array=[['□' for i in range(20)] for j in range(10)]



#市松模様の1つ置きに■を格納(i,j共に偶数・i,j共に奇数の時に■)
for i in range(len(array)):
    for j in range(len(array[0])):
        if (i%2==0 and j%2==0) or (i%2==1 and j%2==1):
            array[i][j]='■'
         

#ドット絵の取り出し
for line in array:
    for dot in line:
        print(dot,end="")
    print()    

2021年(令和3年)東京オリンピックで特に印象に残っているのは、スケボー女子の西矢椛選手の真夏の大冒険と飛び込みの玉井陸斗選手です。

読者さまのご覧になる時期によっては季節外れになってしまうかも知れませんが、良いお年をお迎え下さい。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

プログラミングのアンケートにご協力頂ける方はこちらのフォームで勉強法など色々と教えて下さい。

【Pythonループ】ループと論理和orで、「3時のヒロイン」登場!!

この記事は、Pythonのループを学習中で、「3時のヒロイン」さん(郷ひろみさんと一緒に「にしたんクリニック」のCMに出演している、吉本興業所属の芸人さん)をご存知の方、CMを見たことのある方を対象にしています。
電車でも広告を見かけます。

このCMですね。
「♪ た〜ん、たん、にしたん、たんたんた〜ん」
タンバリンを持って踊っている所が可愛いです。
そこで、Pythonでループを使って、3時と15時の時に3時のヒロインさんに登場して頂きます。

このループでは、range(24)で0時から23時まで表示させます。

論理和のorを使って、3時と15時の時にprint文を変えて3時のヒロインさんを登場させるだけのシンプルなループになっています。

print()

#3時と15時に「3時のヒロイン」を登場させる
for hour in range(24):
    if hour==3 or hour==15:
        print('\n\n<<<【'+str(hour)+'時】のヒロイン登場!!!>>>\n\n')
    else:
        print(str(hour)+'時')

print()

実行結果です。

3時のヒロインさんのプロフィールです。

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

【Pythonクラスの継承とメソッドのオーバーライド】HiHiJet井上瑞稀さん美 少年 浮所飛貴さんのバク宙

この記事は、Pythonでクラスの継承と、メソッドのオーバーライドを学習中の方で、HiHiJetの井上瑞稀さん又は、美 少年の浮所飛貴さんを知っている(聞いたことがある〜大ファン)か、ジャニーズさんが好きな方を対象としています。
また、ループの【内包表記】についても触れています。

親(スーパー)クラスPeopleを継承して、小クラスJohnnysを作ります。
どちらにもactionというメソッドがあり、親クラスの方のactionでは、「通勤電車に乗った」という動きを、小クラスJohnnysのactionでは「バク宙をした」という動きにします。

ループも使うので、一般的なループの書き方と【内包表記】を使ったループの書き方も掲載します。

この動画では、美 少年の浮所さんの華麗なバク宙が見られます。
浮所さんが好きな方には、目の保養になるかもしれません。

https://youtu.be/pqZeG7gQpUA

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

さて、浮所さんが動画の冒頭で「井上瑞稀さんもバク宙していた」と言っていたので、Pythonでこのようなプログラムを作りました。

「親クラスPeople」では「山田太郎」さん、「鈴木花子」さん、「田中一郎さん」という名前を引数にして、それぞれ「yamada,suzuki,tanaka」というオブジェクトを作成しています。

また、「子クラスJohnnys」では「井上瑞稀」さん、「浮所飛貴」さんという名前を引数にして、それぞれ「inoue,ukisho」というオブジェクトを作成しています。

親クラスのコンストラクタでは、「selfとname」を引数にしています。actionメソッドでは「self.nameさんは通勤電車に乗った。」という動きをプリント文で作ります。

#親クラス「People」でコンストラクタと一般人の動きを掲載
class People:
    def __init__(self,name):
        self.name=name

    def action(self):
        print('【'+self.name+'】さんは「通勤電車」に乗った。')

小クラスでは、「self.nameさんはバク宙をした!!」という動きをプリント文で作ります。

#子クラス「Johnnys」でジャニーズバク宙の動きを掲載
class Johnnys(People):
    def action(self):
        print('【'+self.name+'】さんは「バク宙」をした!!')

このように、同じ名前のメソッドを、小クラスでは親クラスとは別の動きにすることを、メソッドのオーバーライドと言います。

また、子クラスのJohnnysでは、コンストラクタはありませんが、自動的に親クラスのコンストラクタが呼ばれます。

山田太郎さん、鈴木花子さん、田中一郎さん、井上瑞稀さん、浮所飛貴さんのオブジェクトを生成するコードです。

#一般人とジャニーズのオブジェクトを作成
yamada=People('山田太郎')
suzuki=People('鈴木花子')
tanaka=People('田中一郎')
inoue=Johnnys('井上瑞稀')
ukisho=Johnnys('浮所飛貴')

上記のオブジェクトをarrayという配列に入れます。

#オブジェクトを配列に格納
array=[yamada,suzuki,tanaka,inoue,ukisho]

この配列をループで取り出して、メソッドactionを呼ぶことによって、下記の実行結果を得られます。
ループのコードと、実行結果です。

#ループで各オブジェクとを動かしてみる
for man in array:
    man.action()

また、上記のループを内包表記で書いた場合のコードです。

#上記ループの内包表記
[man.action() for man in array]    

このように、内包表記では1行で書き現すことが出来ました。

ここまでのコードを全て掲載します。

#親クラス「People」でコンストラクタと一般人の動きを掲載
class People:
    def __init__(self,name):
        self.name=name

    def action(self):
        print('【'+self.name+'】さんは「通勤電車」に乗った。')


#子クラス「Johnnys」でジャニーズバク宙の動きを掲載
class Johnnys(People):
    def action(self):
        print('【'+self.name+'】さんは「バク宙」をした!!')


#一般人とジャニーズのオブジェクトを生成
yamada=People('山田太郎')
suzuki=People('鈴木花子')
tanaka=People('田中一郎')
inoue=Johnnys('井上瑞稀')
ukisho=Johnnys('浮所飛貴')


#オブジェクトを配列に格納
array=[yamada,suzuki,tanaka,inoue,ukisho]


#ループで各オブジェクとを動かしてみる
for man in array:
    man.action()

#上記ループの内包表記
[man.action() for man in array]    

(通常のループか、内包表記のどちらかをコメントアウトしないと、2回出力されてしまいます。)

最後までお読み頂きありがとにゃん(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)