日向坂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を見たことのある方を対象にしています。
電車でも広告を見かけます。

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

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

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

この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の進捗状況(私のロードマップ)

【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の進捗状況(私のロードマップ)

【Pythonクラス爆速理解!!】「NiziU」のメンバーカラーでクラスを学習

この記事は、Pythonでクラスの学習中の方で、9人組ダンスボーカルのガールズグループ「NiziU」を知っている(聞いたことがある〜大ファン(ファンの愛称がWithUという様です。))の方を対象としています。
また、内包表記についても触れています。

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

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

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

クラス:設計図
インスタンス:クラスという設計図から作られた具体的な製品

に例えられることが多いです。

そこで、ここでは、

設計図であるクラスNiziUは、「名前」・「担当カラー」を持つ設計図である。
この設計図から作られた具体的なメンバーの、

「名前:MAKO , 担当カラー:オレンジ」、
「名前:RIO , 担当カラー:スカイブルー」、
「名前:MAYA , 担当カラー:パープル」、
「名前:RIKU , 担当カラー:イエロー」、
「名前:AYAKA , 担当カラー:ホワイト」、
「名前:MAYUKA , 担当カラー:ライトグリーン」、
「名前:RIMA , 担当カラー:レッド」、
「名前:MIIHI , 担当カラー:ピンク」、
「名前:NINA , 担当カラー:ディープブルー」

といった、クラスから作られた、「具体的なメンバーと担当カラー」をインスタンスとします。

まず、クラスのコードの説明をします。
initは、最初に自動的に呼ばれるメソッド(関数のこと。クラスでは関数をメソッドと言います。)で、引数の「self」とは、MAKOさん、RIOさん、MAYAさん、RIKUさん、AYAKAさん、MAYUKAさん、RIMAさん、MIIHIさん、NINAさんといった、具体的なメンバー自身のことです。

initが呼ばれた後に、profile (プロフィール)というメソッドが呼び出され、ここで各メンバーの名前・担当カラーの紹介が出力されます。

class NiziU:
    def __init__(self,name,color):
        self.name=name
        self.color=color

    def profile(self):
        print('名前:【'+self.name+('】担当カラー【'+self.color+'】です。'))

次に、各メンバーを格納するリストと、クラスNiziUからインスタンス化(実例化)した作られたオブジェクト(MAKOさん、RIOさん、MAYAさん、RIKUさん、AYAKAさん、MAYUKAさん、RIMAさん、MIIHIさん、NINAさん)をリストにappendを使って追加するコードです。
ここでは、memberというリストに追加しています

#メンバーリストの定義とインスタンス化
member=[]
member.append(NiziU('MAKO  ','オレンジ     '))
member.append(NiziU('RIO   ','スカイブルー  '))
member.append(NiziU('MAYA  ','パープル     '))
member.append(NiziU('RIKU  ','イエロー     '))
member.append(NiziU('AYAKA ','ホワイト     '))
member.append(NiziU('MAYUKA','ライトグリーン'))
member.append(NiziU('RIMA  ','レッド       '))
member.append(NiziU('MIIHI ','ピンク       '))
member.append(NiziU('NINA  ','ディープブルー'))

リストをループで取り出して、プロフィールメソッドを呼び出すコードです。

#基本的なループでメソッドを呼び出す
for oshi in member:
    oshi.profile()

この部分を内包表記で書くと、

#内包表記を使用
[oshi.profile() for oshi in member]

このように1行で書けます。

出力結果とここまでのコードです。

class NiziU:
    def __init__(self,name,color):
        self.name=name
        self.color=color

    def profile(self):
        print('名前:【'+self.name+('】担当カラー【'+self.color+'】です。'))

#メンバーリストの定義とインスタンス化
member=[]
member.append(NiziU('MAKO  ','オレンジ     '))
member.append(NiziU('RIO   ','スカイブルー  '))
member.append(NiziU('MAYA  ','パープル     '))
member.append(NiziU('RIKU  ','イエロー     '))
member.append(NiziU('AYAKA ','ホワイト     '))
member.append(NiziU('MAYUKA','ライトグリーン'))
member.append(NiziU('RIMA  ','レッド       '))
member.append(NiziU('MIIHI ','ピンク       '))
member.append(NiziU('NINA  ','ディープブルー'))

#基本的なループでメソッドを呼び出す
for oshi in member:
    oshi.profile()

#内包表記を使用
[oshi.profile() for oshi in member]

最後までお読み頂きありがとにゃん(=^x^=)
お疲れ様でした。では、NiziUの歌で癒されてちゃって下さい!!

かわいいですね。癒されます。

クラスは中々習得が難しいので、練習の為に同様なインスタンス化を行いました。
関連記事:

【Pythonクラス爆速理解!!】昭和ギャグから学ぶクラスとインスタンス「月曜日はウンジャラゲ♪」

【Pythonクラス爆速理解!!】「BE:FIRST」のメンバーのプロフィール(名前・出身地・身長)でクラスを学習

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

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

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

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

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

【Pythonクラス爆速理解!!】「BE:FIRST」のメンバーのプロフィール(名前・出身地・身長)でクラスを学習

この記事は、Pythonでクラスの学習中の方で、7人組ダンスボーカルのボーイズグループ「BE:FIRST」を知っている(聞いたことがある〜大ファンまでの)方を対象としています。
また、ループの内包表記についても触れています。

クラス・・・設計図
オブジェクト・・・クラスという設計図から作った具体的な製品

に例えられることが多いです。
そこで、ここでは、

BE:FIRSTという設計図から、「SOTA(ソウタ)・SHUNTO(シュント)・MANATO(マナト)・RYUHEI(リュウヘイ)・JUNON(ジュノン)・RYOKI(リョウキ)・LEO(レオ)」といった具体的なメンバーであるオブジェクトを作成するという考え方でクラスについて学んでいきます。

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

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

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

まず、クラスのコードの説明をします。
initは、最初に自動的に呼ばれるメソッド(関数)で、引数のselfとは、SOTAさん、SHUNTOさん、MANATOさん、RYUHEIさん、JUNONさん、RYOKIさん、LEOさんといった、具体的なメンバー自身のことです。

initが呼ばれた後に、profile (プロフィール)というメソッドが呼び出され、ここで各メンバーの名前・出身地・身長の紹介が出力されます。
profileメソッドの身長は数値なのでstrで括っています。
また、結果が見やすいように【 】で括っています。

class Befirst:
    def __init__(self,name,place,height):
        self.name=name
        self.place=place
        self.height=height

    def profile(self):
        print("【"+self.name+"】さんは【"+self.place+"】出身で身長は【"+str(self.height)+"】cmです。")

次に、各メンバーを格納するリストと、クラスBE:FIRSTからインスタンス化(実例化)して作られたオブジェクト(SOTAさん、SHUNTOさん、MANATOさん、RYUHEIさん、JUNONさん、RYOKIさん、LEOさん)をリストにappendを使って追加するコードです。
ここでは、memberというリストに追加しています

#メンバーのリストを作成
member=[]

#インスタンス化して作ったオブジェクトをリストに追加
member.append(Befirst("池亀樹音","東京都 ",183))
member.append(Befirst("上村礼王","埼玉県 ",179))
member.append(Befirst("三山凌輝","愛知県 ",177))
member.append(Befirst("島雄壮大","神奈川県",174))
member.append(Befirst("廣瀬真人","福岡県 ",173))
member.append(Befirst("久保舜斗","愛知県 ",174))
member.append(Befirst("黒田竜平","愛知県 ",180))

リストをループで取り出して、プロフィールメソッドを呼び出すコードです。

#ループでプロフィールメソッドを呼び出す
for man in member:
    man.profile()

この部分を内包表記で書くと、

#ループで同様の処理を内包表記で書く処理
[man.profile() for man in member]

このように1行で書けます。

出力結果とここまでの全てのコードです。

class Befirst:
    def __init__(self,name,place,height):
        self.name=name
        self.place=place
        self.height=height

    def profile(self):
        print("【"+self.name+"】さんは【"+self.place+"】出身で身長は【"+str(self.height)+"】cmです。")


#メンバーのリストを作成
member=[]

#インスタンス化して作ったオブジェクトをリストに追加
member.append(Befirst("池亀樹音","東京都 ",183))
member.append(Befirst("上村礼王","埼玉県 ",179))
member.append(Befirst("三山凌輝","愛知県 ",177))
member.append(Befirst("島雄壮大","神奈川県",174))
member.append(Befirst("廣瀬真人","福岡県 ",173))
member.append(Befirst("久保舜斗","愛知県 ",174))
member.append(Befirst("黒田竜平","愛知県 ",180))

#ループでプロフィールメソッドを呼び出す
for man in member:
    man.profile()

#ループで同様の処理を内包表記で書く処理
[man.profile() for man in member]

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

関連記事:【クラス爆速理解!!】昭和ギャグから学ぶクラスとインスタンス「月曜日はウンジャラゲ♪」
こちらでは、クラスの基本的な内容を「昭和な方向け」に書いております。

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

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

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

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

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

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

【Python関数初心者向けの関数ドリル!!】関数を立体図形で使いこなす!ピラミッドを作れ!(立方体・直方体・円柱・三角錐・四角錐・円錐)

この記事を読むことで、Pythonの関数で立方体、ピラミッド・三角錐・円錐・円柱の体積を求めることによって、関数をガンガン使いこなせる様になる例題をガシガシ解くことができます。関数のドリルのような記事だとイメージして頂いて大丈夫です。

また、体積なので、三乗を使い、Pythonでの累乗(二乗、三乗)などの書き方も学べます。

前回の記事で、関数をカレーライスを作る時の例を通して実際に手を動かして作ってみました。
【Python関数初心者向け!!】関数を「カレーライス」で覚えて、平面図形の面積を求めてみる(長方形、三角形、台形)とプログラミング英語

宜しければこちらもご覧いただけますと、大変嬉しいです。
また、カレーライスを例にしたので、私が今までで食べて来た中で最も美味しいと思ったカレー屋さんの紹介のリンクも貼っています。

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

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

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

おはこんばんちは!
うにゃうにゃエンジニアの猫です(=^x^=)

いきなりですが、下記のプログラムでPythonの演習をいたしましょう。

● 立方体の体積を求める ●
立方体とは、サイコロです。
こちらのサイトで詳細を書かれています。
体積の求め方は、縦、横、高さです。

サイコロだったら全部同じ長さなので、今回は3cmの立方体の体積を求めます。

まず、辺の長さをここで定義しています。

side=3

次に関数を呼び出します。

volume=cube(side)

立方体の体積を求めるcube関数が引数にside(今回は3cm)で呼び出されました。

では、cube関数のコードです。

#立方体の体積を計算する関数
def cube(x):
    return x**3

このxの所に3が入って3乗の計算結果をreturnで返しています。
二乗でも考え方は同じですが、三乗ではこのように書いています。

x**3

それが戻り値としてvolumeに入ります。

volume=cube(side)

これで、出力します。

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

#立方体の体積を計算する関数
def cube(x):
    return x**3


#辺の長さを定義
side=3

#関数を呼び出し
volume=cube(side)

#立方体の体積を表示
print('立方体の体積は【'+str(volume)+'】cm^3です。')

● 直方体の体積●
では次に、直方体の体積を求めます。
直方体はこちらのサイトが分かりやすいです。前項の立方体の復習にもなります。

直方体の体積は、タテ×ヨコ×高さなので、この様にコードを書き換えました。
実行結果です。

#直方体の体積を計算する関数
def rectangular(x,y,z):
    return x*y*z


#タテ、ヨコ、高さを定義
vertical=3
beside=5
height=7

#関数を呼び出し
volume=rectangular(vertical,beside,height)

#直方体の体積を表示
print('直方体の体積は【'+str(volume)+'】cm^3です。')

● 円柱の体積●
円柱の体積はこちらの記事が分かりやすいです。
円柱の体積は円の面積に高さをかけて求めるので、円周率πを使うため、mathモジュールをインポートしました。
また、円周率は桁数が長いので、小数点以下3桁まで求める様にしました。

ここではこの記事に合わせて、円の半径を5cm、円柱の高さを10cmとしています。

#円周率πを使うため、mathモジュールをインポートする
import math

#円柱の体積を計算する関数
def cylinder(r,h):
    return math.pi*r**2*h


#半径と高さを定義
radius=5
height=10

#関数を呼び出し
volume=cylinder(radius,height)

#小数点以下3桁まで求める
volume=round(volume,3)

#円柱の体積を表示
print('円柱の体積は【'+str(volume)+'】cm^3です。')

円の面積については併せてこのブログ内のこちらの記事をご覧頂けると嬉しいです。
【Python初心者必見!!】改行の仕方、円周率の使って面積、球体の体積、円周を計算する関数の使い方、二乗3乗などの累乗の計算の仕方、戻り値の小数点以下桁指定

● 三角錐の体積●
三角錐と次項の四角錐については、こちらの記事が分かりやすいです。
まずは、三角錐です。
底面積である三角形の面積に高さをかけて3で割っています。

ここではこの記事に合わせて、タテ4cm、ヨコ5cm、高さ6cmとしています。
また、底面積が三角形であることと何々錐で3で割っているため、整数で求めています。
コードと実行結果です。

#三角錐の体積を計算する関数
def triangular_pyramid(x,y,z):
    return x*y/2*z/3


#タテ、ヨコ、高さを定義
vertical=4
beside=5
height=6

#関数を呼び出し
volume=triangular_pyramid(vertical,beside,height)

#三角錐の体積を表示
print('三角錐の体積は【'+str(int(volume))+'】cm^3です。')

● 四角錐の体積●
次に四角錐(ピラミッド型)の体積を求めます。
こちらも、先ほどの記事と合わせて、タテ5cm、ヨコ5cm、高さ6cmとしています。

#四角錐の体積を計算する関数
def pyramid(x,y,z):
    return x*y*z/3


#タテ、ヨコ、高さを定義
vertical=5
beside=5
height=6

#関数を呼び出し
volume=pyramid(vertical,beside,height)

#四角錐の体積を表示
print('四角錐の体積は【'+str(int(volume))+'】cm^3です。')

● 円錐の体積●
では、いよいよ最後に円錐の体積を求めます。
円錐の体積は、こちらの記事が分かりやすいです。

底円の面積に高さをかけて3で割ると求められます。
円周率πを使うので、mathモジュールをインポートしています。
ここでは半径を4cm、高さを6cmとしています。

#円周率を使うため、mathモジュールをインポートする
import math

#円錐の体積を計算する関数
def cone(r,h):
    return math.pi*r**2*h/3

#半径と高さを定義
radius=4
height=6

#関数を呼び出し
volume=cone(radius,height)

#小数点以下3桁まで求める
volume=round(volume,3)

#円錐の体積を表示
print('円錐の体積は【'+str(volume)+'】cm^3です。')


円の面積はこちらの記事をご覧ください。
【Python初心者必見!!】改行の仕方、円周率の使って面積、球体の体積、円周を計算する関数の使い方、二乗3乗などの累乗の計算の仕方、戻り値の小数点以下桁指定

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

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

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

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

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

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

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