【Python関数初心者向け!!】関数を「カレーライス」で覚えて、平面図形の面積を求めてみる(長方形、三角形、台形)とプログラミング英語

この記事を読むことで、Pythonの関数をカレーライスを作る時の例を通して実際に手を動かして作ってみることが出来ます。
関数とは、ざっくり言って、「カレー鍋」です。
鍋に入れる「ジャガイモ、ニンジン」が引数、出てきた料理が戻り値です。
肩の力を抜いて、長方形、三角形、台形の面積を使いながら関数に慣れて行きましょう!
あと、プログラミングと英語についても簡単に書きました。

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

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

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

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

最初に、縦5cm、横3cmの長方形の面積を計算します。
いきなりですが、コードと実行結果を載せます。
コードにはコメントも入れてあるので、見たり模写したりして見て下さい。

#長方形の面積を計算する関数
def rectangle(x,y):
    return x*y

#長方形の縦と横の長さを設定
vertical=5
beside=3

#長方形の面積を計算する関数を呼び出して戻り値をareaとする
area=rectangle(vertical,beside)

print('長方形の面積は【'+str(area)+'】cm^2です。')

では、簡単ですが、このプログラムをトレースしてみます。
長方形面積は、「縦×横」ですね。

変数verticalに縦の長さをここでは「5」、変数besideに横の長さをここでは「3」とします。単位はprint関数内でcmということにしています。

縦の5をジャガイモ、横の3をニンジンということにしましょう。
長方形はrectangleなので、長方形を計算する関数をrectangleとしました。
なので、カレー鍋がrectangleになります。

area=rectangle(vertical,beside)

これで、rectangleというカレー鍋に、ジャガイモのverticalくんと、ニンジンのbesideちゃんが入ってイチャイチャ料理をします。

def rectangle(x,y):
 return x*y

鍋に入れるときに、verticalはx、besideはyに入ります。
verticalやbesideが引数と呼ばれることに対し、x,yは仮引数と呼ばれると書くと、なんかごちゃごちゃしてしまいそうですが、まぁ、世の中そんなもんだと思っておけば良いんじゃないでしょうか(=^x^=)

return x*y

で、出来上がったカレーライスがお手元に届けられます。
カレーで思い出した、それなりに大事なことを書きますが、アキバヨドバシでパソコンをWindowsからMacbookに買い替えをした時に食べたカレーがめちゃめちゃ美味しかったです。
インドカリーダイニング Cobara-Hetta

もう一度、コード全体を見ますが、その時に、縦verticalと横besideの値を変えると、当然求まってくる長方形の面積も変わりますので、コードを書き換えてみます。どうしようかな、縦8cm、横11cmぐらいにしようかな。

#長方形の面積を計算する関数
def rectangle(x,y):
    return x*y

#長方形の縦と横の長さを設定
vertical=8
beside=11

#長方形の面積を計算する関数を呼び出して戻り値をareaとする
area=rectangle(vertical,beside)

print('長方形の面積は【'+str(area)+'】cm^2です。')

縦とか横とか長方形とか、今までずっと英語で書いて来ましたけれど、30年ぐらい前、私が中学生だったときに英検3級に落ちて、4級しか持っていない私は本音を言うと、tate、yoko,chouhoukeiなんて書きたい所なんです。

ですが、変数名は慣習として英語を使うので(涙)
困っちまうんですけれど、44歳ながらついでに英語の勉強だと思って、グーグル先生に助けてもらいながらプログラミングをしています。

英語に自信のない方、こんなヤツでもプログラミングの記事を書いてアフリエイトとして収入を得ているので、全然大丈夫!!ですよ(笑)
あ、でも、今この記事をご覧の学生の皆様は、将来私のようにならないように、ちゃんと英語の勉強もした方が後々後悔することも無いかも。

プログラミング英語の動画紹介です。

で、話はプログラミングに戻ります。
今度は三角形を求められるようにコードを改変してみます。
関数の戻り値のところを2で割ると、お馴染みの底辺×高さ÷2ですね。

#三角の面積を計算する関数
def triangle(x,y):
    return int(x*y/2)

#三角形の底辺と高さを設定
bottom=4
height=3

#三角形の面積を計算する関数を呼び出して戻り値をareaとする
area=triangle(bottom,height)

print('三角形の面積は【'+str(area)+'】cm^2です。')

3行目でintを使っているのは、整数にするためです。これを外すと6.0cm^2になります。

最後に台形を求めるプログラムに変更して見ましょう。

台形(trapezoid)は、

(上底+下底)×高さ÷2

で求められ、なんでこんな公式になるのかを調べたら、分かりやすいサイトが見つかりました。このサイトに合わせて、上底を5cm、下底を7cm、高さを4cmをします。
コードと実行結果です。

#台形の面積を計算する関数
def trapezoid(x,y,z):
    return int((x+y)*z/2)

#台形の上底と下底と高さを設定
top_side=5
bottom_side=7
height=4

#台形の面積を計算する関数を呼び出して戻り値をareaとする
area=trapezoid(top_side,bottom_side,height)

print('台形の面積は【'+str(area)+'】cm^2です。')

関数って最初は面倒でしたが、慣れるととても便利です。
各機能が分かりやすくなって、コードも見やすくなるので。

ざっとまとめると、関数がカレー鍋、引数がジャガイモやニンジン、戻り値が出来上がったカレーです。

この記事の後編として今度は体積を求めるプログラムを作りました。

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

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

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

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

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

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

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

Pythonでループの基礎と内包表記を対応付けて解説「宜保愛子じゃない!!」

この記事を読むことで、

・ループの基本的なコードの書き方

・内包表記ではどのように書くのか

・標準入力の使い方

の理解出来ます。

・ループの内包表記ってイマイチ分かんないよ。混乱するんだもん。

・ついでに標準入力についてザッとおさらいしたい

とう方にもお役立て頂けたらと思い、記事を書きました。


特に内包表記は通常のループの表記と一つずつ対応付けて書きましたので、この記事を読に終わる頃には内包表記にちょっと慣れると思います。

今回標準入力でキーボードから入力させる文字列は、ドラマ「不適切にもほどがある!」の中から選んだセリフ、「宜保愛子じゃない!!」です。

この記事の前編として、Pythonでループの基礎2つずつ増加と標準入力「同情すんなら金をくれ!」を掲載しました。

今回は、その記事の後編となります。

まずは基本的なループです。
0から4までの数を表示します。

for i in range(5):
    print(i)

このコードを内包表記で書くと、たったの1行で済みます。

[print(i) for i in range(5)]

実行結果です。

内包表記は、

[ 計算(表示)結果 いつものfor文 ]

という書式になるので、この数列を2倍にすることも可能です。

<2倍の基本的な書き方>

for i in range(5):
    print(i*2)

<2倍の内包表記>

[print(i*2) for i in range(5)]

実行結果です。

では、30から-3ずつカウントダウンしていくコードです。

for i in range(30,0,-3):
    print(i)

内包表記です。

[print(i) for i in range(30,0,-3)]    

実行結果です。

では、いよいよ、ドラマふてほど「宜保愛子じゃない!!」を指定の回数だけ表示させる、基本のFor文のコードと、内包表記の解説に移ります。

標準入力でキーボードから「宜保愛子じゃない!!」を入力してループで指定の回数までを表示するコードです。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

for i in range(N):
    print(str(i)+':'+Dialogue)

内包表記です。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

#ここを内包表記でループしている
[print(str(i)+':'+Dialogue) for i in range(N)]

実行結果です。

参考記事でこの記事の前編:
Pythonでループの基礎2つずつ増加と標準入力「同情すんなら金をくれ!」

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

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

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

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

Pythonでループの基礎と2つずつ増加、ドラマの名台詞を表示、「同情すんなら金をくれ!!!!」

この記事を読むと、ループの基礎の基礎、ループで2つずつ増加して表示させること、
逆に数を減らしていくこと、ドラマの名台詞をループで指定した回数分だけ表示させること、標準入力の理解が出来ます。

・Python始めたばかりで、ループの書き方ってどうやるのか分からないんだけど・・・。

・Pythonのループで2ずつ増加(1個飛ばし)ってどうやるの?

・逆に減らすのは?

・指定の文字列をループで指定した回数分表示させたいんだけれど。

とお悩みな方にお役立て頂けたらと思い、記事を書きました。

指定の文字列表示に使う具体例は、ドラマの名台詞です。
「同情すんなら金をくれ!」
「僕は死にません!あなたが好きだから、僕は死にましぇ〜〜〜ん」
「宜保愛子じゃない!!」

の3つのセリフを使います。

まずは基本的なループです。
0から19までの数を表示します。

for i in range(20):
    print(i)

このようにrangeで指定する場合は、その数未満の数が対象になるので、0〜19までが表示の対象となります。
その実行結果です。

これを、2つずつの増加のループに書き換えます。
rangeのカッコ内に

range(開始,終了(指定未満),増加分)

と書きます。

for i in range(0,20,2):
    print(i)

2ずつ増加の実行結果です。

では、逆に数を減らす場合にはどうしたら良いでしょうか。

range(開始,終了(その数は含まない),減らす分)

ここでは、30から1までを3ずつ減らすコードと実行結果を記載します。

for i in range(30,0,-3):
    print(i)

3つずつ減らされていることと、0は含まれていないことが確認できました。

では、今度は指定の数だけドラマの名台詞を表示させてみます。
平成の名ドラマ「家なき子」の安達祐実さんのセリフ、「同情すんなら金をくれ!」を5回表示させます。
Nに表示回数の5、Dialogueにセリフを入れてコードを書いて実行します。

#表示する回数
N=5

#ドラマの名台詞
Dialogue='同情すんなら金をくれ!'

for i in range(N):
    print(Dialogue)

5回出力されました。
あの頃の安達さんの表情が蘇ります(涙)
で、range(5)は5未満なのに、5回表示されるのはおかしいじゃん!
4回にならね?
と思われたアナタ、鋭いです!!

print文の下記を変更して、ループの変数「i」も同時に表示させてみます。

print(str(i)+’:’+Dialogue)

コードと実行結果です。

#表示する回数
N=5

#ドラマの名台詞
Dialogue='同情すんなら金をくれ!'

for i in range(N):
    print(str(i)+':'+Dialogue)

他のセリフに変えるには、4行目のDialogueのところを変更して実行します。

#表示する回数
N=5

#ドラマの名台詞←ここを101回目のプロポーズに変更
Dialogue='僕は死にません!あなたが好きだから、僕は死にましぇ〜〜〜ん!'

for i in range(N):
    print(str(i)+':'+Dialogue)

武田鉄矢さんの金八先生とは全く異なるキャラで必死な愛を感じました。
ただ、当時、どこかの中学生の男子が真似して車の運転手に怒られていたという話を噂程度に聞いたことがあります。

では、ドラマのセリフを標準入力を使って、都度変更させるコードにしてみます。

print(‘あなたが好きな名セリフを入力して下さい—>>’,end=”)

end=”で、改行しないで直後に入力できるようにしている。

標準入力はinput関数を使用して、Dialogueに代入しています。

Dialogue=input()

では、コードと実行結果です。

#表示する回数
N=5

#ドラマの名台詞←ここを標準入力に変更
print('あなたが好きな名セリフを入力して下さい--->>',end='')
Dialogue=input()

for i in range(N):
    print(str(i)+':'+Dialogue)

例えば、「不適切にもほどがある」の「宜保愛子じゃない!!」などを入力してみるのも面白いかも知れません。
宜保愛子さん、すっごく久しぶりに名前を聞きました。

(「愚か者」と「ギンギラギン」は、ブログで書いちゃっても良いのかな・・・?)

お若い方にとって、「宜保愛子って誰??」だと思われるかも知れませんので、簡単に書くと、「タレント、霊能力者、作家」です。

この記事の後半は、こちらで扱ったコードを中心に、基本のFor文コードと内包表記でのコードを対応付けていきます。
Pythonでループの基礎と内包表記を対応付けて解説「宜保愛子じゃない!!」

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

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

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

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

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

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

この記事を読むと、今更聞けないPythonの改行の仕方、二乗・3乗などの累乗の計算、円周率を使った計算で円の面積、球の体積(公式も載せました!!)、円周を求める関数を呼び出し、小数点以下を含めた桁指定が習得出来ます。

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

・あの、今更ですけど、Pythonで改行の仕方って聞いても良いですか?
・Pythonでxの二乗、3乗などの累乗ってどうするの?
・そもそも関数ってどうやって呼び出すの?
・関数を呼び出してそこで計算させた戻り値の小数点以下の桁数が多過ぎで、こんなに表示出来ないよ!

とお悩みな方にお役立て頂けたらと思い、記事を書きました。
私も初心者なので、思いっきり初心者目線で書いているので、冗長な所もあるかもしれません。悪しからず。

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

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

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

まず、改行ですが、

print('Hello World 1112 fri\n')

の「\n」(バックスラッシュn)で改行をしています。
Macですと、どうやってバックスラッシュを出すのか私は結構悩みました。やり方は簡単で、Windowsの時だった[Alt]に当たる[option]キーを押しながら、「エンマーク」で表示可能です。


この記事を書いている今日は11月12日の金曜日なのでHelloWorldの後に上記の様に日付と曜日を入力しています。

これは、プログラミング学習を始める前のルーティーンとしてPythonで求めています。
プログラミングは好きで始めたこととはいえ、どうしても気分が乗らないこともあります。そんな時でも「HelloWorldと日付だけ」を表示するプログラムを作ることが私のルーティーンとなっています。

五郎丸さんのルーティーンみたいなものかな。

さて、このプログラムでは、円の面積を求める関数area(引数:半径r)、球の体積を関数globe(引数:半径r)、円周を求めるcircle(引数:半径r)を使っています。

引数って、カレーライスを作るときに入れるニンジンとかジャガイモ、玉ねぎ、カレールーみたいなものかな。

今回は引数rは共通なので、それぞれの関数呼び出しの前に、

r=5

を記述しました。
ここでは半径rを5cmとしています。

それぞれの関数の呼び出しのコードです。
上から、円の面積、球の体積、円周の長さです。

#それぞれの関数の呼び出し
area_ans=(area(r))
globe_ans=(globe(r))
circle_ans=circle(r)

上記の3つの関数を呼び出して、そこで計算した値(戻り値)をそれぞれarea_ans(求めた円の面積)、globe_ans(求めた球の体積)、
circle_ans(求めた円周の長さ)に代入して、小数点以下も含めた桁指定をして、結果を表示します。

円周率を扱うのに、モジュールをインポートしています。

#円周率を扱うのに、インポートしている
import math

円の面積を計算するのに、事情はr**2で半径の二乗を求めています。
**の後を3にする球体や立方体など3次元の体積が求められます。

#円の面積を計算。**で二乗を使っている
def area(r):
    return r**2*math.pi

球体の体積の公式は、

V=\frac{4}{3}πr^{3}

なので、体積を計算する関数のコードは、

#球の体積を計算。**で3乗を使っている
def globe(r):
    return 4/3*math.pi*r**3

となります。

また、円周の長さを求めるコードは

#円周を求める
def circle(r):
    return 2*math.pi*r

となります。

円周率はご存知の通り、3.14159265359…と桁数が膨大なので、戻り値の表示はここでは整数も含めた5桁で表示します。
コードはこの様になります。

#桁数を指定して表示
print('円の面積は'+'{:.5}'.format(area_ans)+'cm ^2です。')
print('球の体積は'+'{:.5}'.format(globe_ans)+'cm ^3です。')
print('円周は、'+'{:.5}'.format(circle_ans)+'cmです。')

戻り値って、出来上がったカレーライスみたいなものかな。

計算結果です。

それでは、ここまで踏まえた全コードを掲載します。

#円周率を扱うのに、インポートしている
import math

#円の面積を計算。**で二乗を使っている
def area(r):
    return r**2*math.pi

#球の体積を計算。**で3乗を使っている
def globe(r):
    return 4/3*math.pi*r**3

#円周を求める
def circle(r):
    return 2*math.pi*r

#半径を指定
r=5

#それぞれの関数の呼び出し
area_ans=(area(r))
globe_ans=(globe(r))
circle_ans=circle(r)

print('Hello World 1112 fri\n')

#桁数を指定して表示
print('円の面積は'+'{:.5}'.format(area_ans)+'cm ^2です。')
print('球の体積は'+'{:.5}'.format(globe_ans)+'cm ^3です。')
print('円周は、'+'{:.5}'.format(circle_ans)+'cmです。')

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

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

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

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

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

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

PythonでV6の名曲を例に内包表記をしてみた。

この記事を読むと、Pythonの基本的な内包表記を使って、for文を短いコードで動かすことが可能になります。
また、内包表記で今月(2021年11月)に解散してしまったV6の名曲も表記致します。
その際、リストを使って、昇順、降順の表記行っています。

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

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

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

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

リストの内包表記を通して、この間解散してしまったV6の名曲を振り返ります。
メンバーは
トニセン(年長3人):坂本昌行、長野博、井ノ原快彦
カミセン(年少3人):森田剛、三宅健、岡田准一
で、私はトニセンとカミセンの間の年齢なので、感慨深いものがあります。

まずは、内包表記のごくごく基礎から入って行きます。
0から9まで表示するシンプルなループです。
range(10)となっているので10未満の数が表示されます。

for i in range(10):
    print(i)

結果はこの様になります。

このコードを内包表記を使うとたった1行で書ける様になります。
書式はこの様になります。

[結果 for文]

それでは内包表記で書いていきます。

[print(i) for i in range(10)]

出力結果を改行区切りではなく、配列として表示したい場合を普通のfor文で書くと

#空のリスト
array=[]

#いつものループで空のリストarrayに要素を追加
for i in range(10):
    array.append(i)

print(array)

もっと短く書くには、これも内包表記を使います。

#内包表記でたった1行
print([i for i in range(10)])

次は計算をさせてみます。
この配列の要素それぞれの二乗を求めます。

#[計算式 for文]
print([i**2 for i in range(10)])

慣れてきた所でリストを使います。
計算用リストarrayの要素をそれぞれ二乗しています。

#計算用リスト
array=[1,3,5,7,9,11,13,15]

#[計算式 for in リスト]
print([i**2 for i in array])

リストを使った内包表記にも慣れて来た頃で、いよいよV6の名曲リストを作成します。

#V6の中で特に私が好きな曲
v6=['MUSIC FOR THE PEOPLE',
'愛なんだ',
'WAになっておどろう',
'Darling',
'CHANGE THE WORLD',
'Orange',
'BEAT YOUR HEART',
'MADE IN JAPAN',
'Believe Your Smile',
'Be Yourself!'
]

#[計算式 for in リスト]
[print(music) for music in v6]

表示結果です。

曲名を昇順にしたい時は、コードの途中に

リスト名.sort()

を追記します。

#V6の中で特に私が好きな曲
v6=['MUSIC FOR THE PEOPLE',
'愛なんだ',
'WAになっておどろう',
'Darling',
'CHANGE THE WORLD',
'Orange',
'BEAT YOUR HEART',
'MADE IN JAPAN',
'Believe Your Smile',
'Be Yourself!'
]

#昇順
v6.sort()

#[計算式 for in リスト]
[print(music) for music in v6]

降順にしたい時は

リスト名.sort(reverse=True)

と改変します。

#V6の中で特に私が好きな曲
v6=['MUSIC FOR THE PEOPLE',
'愛なんだ',
'WAになっておどろう',
'Darling',
'CHANGE THE WORLD',
'Orange',
'BEAT YOUR HEART',
'MADE IN JAPAN',
'Believe Your Smile',
'Be Yourself!'
]

#降順
v6.sort(reverse=True)

#[計算式 for in リスト]
[print(music) for music in v6]

宜しかったらコピペしてアレンジしてみて下さい。

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

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

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

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

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

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

PythonでBE:FIRST(ビーファースト)の平均年齢を辞書とリストと関数とループを使って求めてみた。

この記事を読むと、AAA(トリプルエー)のラッパーSKY-HI日高 光啓(ひだか みつひろ)さんのオーディションプロジェクトの7人組ボーイズグループ、BE:FIRST(ビーファースト)の平均年齢をPythonで関数を使って求めるプログラミングが理解出来ます。
辞書、リスト、ループ、関数のおさらいと生年月日を扱った処理にも触れています。

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

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

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

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

普段FMラジオでFM TOKYO さんの朝番組、ONE MORNING(ユージさん、吉田明世さんがパーソナリティ)の番組を聴いていて、BE:FIRST7人の早起きの秘訣を聴いていたことから、BE:FIRSTの最年少のリュウヘイ(RYUHEI黒田竜平)がなんと14歳って聴いて、なんて若いのにすごいんだ!!(落ち着いているし、180cmの高身長)と思って、メンバーの平均年齢を調べるためにPythonでプログラミングをして見ました。

簡単にBE:FIRSTについて書くと、公式サイトによると、

SOTA 2001年1月18日 174cm 島雄壮大さん
SHUNTO 2003年9月1日 174cm 久保舜斗さん
MANATO 2001年4月29日 173cm 廣瀬真人さん
RYUHEI 2006年11月7日 180cm 黒田竜平さん
JUNON 1998年5月23日 183cm 池亀樹音さん
RYOKI 1999年4月26日 177cm 三山凌輝さん
LEO 1998年9月8日 179cm 上村礼王さん

の7人です。

デビュー曲
BE:FIRST / Gifted. -Music Video-

メンバーが、ラジオで早起きの秘訣を教えてくれました。
私が特に参考にしたのは、前の日に「何時に起きる」と決めておくという提案です。
どなただっっけ???

7人もいると、なかなか覚えられないので、このような辞書を作りました。

befirst={‘SOTA’:’20010118′,’SUNTO’:’20030901′,’MANATO’:’20010429′,’RYUHEI’:’20061107′,’JUNON’:’19980523′,’ROYOKI’:’19990426′,’LEO’:’19980908′}

ご覧の通り、キーがメンバーのお名前で、値がメンバーの生年月日です。
これをループにして、関数を呼び出してお一人ずつ、今日の日付からの差で年齢を求め、求めた年齢を配列に追加して、その配列から平均年齢を求めるといった流れになります。

こんな感じに実行できました。

では、コードです。

プログラミングやPythonにご興味のある方は、コメントを頼りに読んでみて下さい。

#日付や計算のためにインポートしています。
import datetime
import math

today=int(datetime.datetime.today().strftime("%Y%m%d"))
print("今日は"+str(today)+"です。\n")

#メンバーの年齢を格納するための配列
member=[]

#この関数で計算してるよ! 10000で割っているのは生年月日の桁数からの調整
def calc_age(born):
    age=math.floor((today - int(born)) / 10000)
    return age

#メンバー紹介の辞書
befirst={'SOTA':'20010118','SUNTO':'20030901','MANATO':'20010429','RYUHEI':'20061107','JUNON':'19980523','ROYOKI':'19990426','LEO':'19980908'}
print("メンバーの生年月日の辞書を表示します。")
print(befirst)
print()

#辞書をループを使って、関数に送り込んで、年齢を格納する配列に追加している
for i in befirst:
    age=calc_age(befirst[i])
    member.append(age)

print("メンバーの年齢を算出しました。")
print(member)
print()

ans=sum(member)/float(len(member))
print("平均年齢は"+str(ans)+"歳です。")

    
    

良かったらコピペしてアレンジしてみて下さい。

しばらく胃腸の病気で療養していて、プログラミングお休みしていたから、すごい時間かかっちゃった・・・。

参考にしたサイト
https://teratail.com/questions/138394

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

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

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

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

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

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

Python乱数randrangeでラーメン激戦区のメニューを見てみた。

この記事を読むことによって、Pythonのリストの初歩的な扱いが可能になります。
リストの添字を乱数にして、ラーメンのメニューを求めるプログラムになります。

そこで、山手線沿線で調べてみて、最も美味しそうだと私が思った、南大塚にある創作麺工房 鳴龍 (NAKIRYU) さんのメニューを元にPythonでメニューの配列を作って、インデックスを乱数にしてプログラミングしてみました。

配列menuを以下のように致しました。

menu=[‘坦坦麺’,’麻辣坦坦麺’,’坦坦つけ麺’,’塩ラーメン’,’梅塩ラーメン’,’海老ワンタン’]

細かいようですが、「坦々麺」ではなく、こちらでは「担担麺」のようですね。

配列menuの長さは6です。
なのでインデックスは、0,1,2,3,4,5の6つになりますね。

まぁ、これぐらいなら数えれば良いのですが、めんどくさいので、len(menu)で配列の長さ6を求めました。

乱数は、random.randrange(0,len(menu))で求めています。

これで、(0から5)までのインデックスの乱数を求めています。
つまり、(0から6未満)、すなわち(0,5)の乱数を求められます。

似たようなので、randintというのがありますが、これだと(0,len(menu))となり、(0から6)、0,1,2,3,4,5,6で長さが7となり、余ってしまうのでこのようなエラーが出てしまします。

これは、index=6となり、配列の要素が0から5までしかないのに対して、6が求まってしまったので、範囲を超えているよ、というエラーです。

そこで、エラーを修正して実行しました。

では、コードです。

import random

menu=['坦坦麺','麻辣坦坦麺','坦坦つけ麺','塩ラーメン','梅塩ラーメン','海老ワンタン']
index=random.randrange(0,len(menu))

print('今日は'+menu[index]+'食べよっかな。\n')

良かったらコピペしてアレンジしてみて下さい。
最後までお読み頂きありがとにゃん(=^x^=)

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

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

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

Python で今日の運勢は??randintで星座占い♪

この記事では、星座占いをテーマに、Pythonでの乱数の使い方と、順位によってメッセージをifとelif とelseで分岐して表示する方法を学びます。

私はおうし座ですので、変数seizaのところに「おうし」と入れました。
実行結果です。

さて、コードの説明ですが、import randomで、乱数を発生させています。
これは後に運勢の順位に使います。

num=random.randint(1,12)

で、1から12までの乱数を発生させています。
「へびつかい座」を入れる場合でしたら、random.randint(1,13)になりますね。

似たようなもので、randrangeがありますが、これはrandom.randrange(1,12)だった場合は、12「未満」になります。

あとは演算子。

==とイコール2つで1位だったらの条件指定になります。
=と、一つだけだと代入になりますので。

あとはelif分の<=で何位以下、elseでそれ以外(この場合12位)です。

では、コードです。

import random

seiza="おうし"
num=random.randint(1,12)

print("今日の"+seiza+"座は"+str(num)+"位です!!")

if num==1:
    msg="超超超超超超超・・・おめでとう!!\n"
elif num<=3:
    msg="チョベリグ!\n"
elif num<=9:
    msg="ふつー\n"
elif num<=11:
    msg="チョベリブ!\n"
else:
    msg="がび〜〜〜〜〜〜〜〜〜〜ん\nチョベリバ(涙)"

print(msg)

良かったらコピペしてアレンジしてみて下さい。

print文の所で「チョベリなんとか・・・」ってありますけれど、かつて「コギャル」と呼ばれた方(多分今頃はアラフォーさん?)が女子高生だった頃に流行った言葉です。

チョベリグ・・・超ベリーグッド
チョベリブ・・・超ベリーブルー
チョベリバ・・・超ベリーバッド

だったかな。懐かしいな。

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

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

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

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

Pythonで半端ならK.O….踊♪

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

Adoさんの歌って、プログラミングの教材になるんですよね。
今回は踊からヒントを得たプログラムを作ってみました。

関連記事:C言語うっせぇわループ

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

Python自作サンプルに戻る
C言語自作サンプルに戻る
メインメニューに戻る
基本情報技術者試験

自己紹介

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

歌詞に「半端ならK.O.」とありますね。
ここから半端、つまり、割り算をして割り切れなかったら負け、割り切れたら勝ちという割り算ゲームを格闘ゲームをイメージして作りました。
余りが0で割り切れたなら勝ち、余りが出たら負けです。

まずは、実行してみます。

ここで被除数(割られる数)を入力します。
「9」

次に除数(割る数)を入力します。
「2」


割り切れませんので、余り、半端なのでK.O.されて負けました。

次は8を2で割ってみます。

割り切れてK.O.,勝ちしました。

それではこのプログラムのポイントとなる箇所をトレースしてみます。

最初の入力画面のコードです。
ここで、標準入力を使って、被除数(割られる数)を入力しています。
>>>のすぐ後に入力出来るようにprint文の中で、

end=””

を使っています。

#dividendは被除数(割られる数)
print("被除数(割られる数)を入力して下さい>>>",end="")
dividend=int(input())

次に、除数(割る数)を標準入力を使って入力しています。

#divisorは除数(割る数)
print("除数(割る数)を入力して下さい>>>",end="")
divisor=int(input())

その後、割り算して余りを求め、結果を返す関数を呼び出しています。

#remainder(余り)を計算する関数を呼び出す
judge=dance_div(dividend,divisor)
print("果たして'YOU'の勝敗結果は・・・・!")

割り算を計算して、余りがあるかどうかによって文字列msgに「YOU WIN」または「YOU LOSE」を戻り値として返すようにしています。

#割り算してあまりを返す関数
def dance_div(dividend,divisor):
    remainder=dividend%divisor
    print("被除数(割られる数)="+str(dividend))
    print("割る数="+str(divisor)+"\n")
    print("余り【"+str(remainder)+"】\n")

    #もしも余りが0だったら勝ち!    
    if remainder==0:
        msg="YOU WIN!!!!!!!!!!!!!!!!!!!"
    else:
        msg="YOU LOSE....." 

    return msg       

最後にこのプログラム全体のコードを掲載します。

#割り算してあまりを返す関数
def dance_div(dividend,divisor):
    remainder=dividend%divisor
    print("被除数(割られる数)="+str(dividend))
    print("割る数="+str(divisor)+"\n")
    print("余り【"+str(remainder)+"】\n")

    #もしも余りが0だったら勝ち!    
    if remainder==0:
        msg="YOU WIN!!!!!!!!!!!!!!!!!!!"
    else:
        msg="YOU LOSE....." 

    return msg       

print("\n ♪ 半端ならK .O ..... ♪ \n")        
#dividendは被除数(割られる数)
print("被除数(割られる数)を入力して下さい>>>",end="")
dividend=int(input())

#divisorは除数(割る数)
print("除数(割る数)を入力して下さい>>>",end="")
divisor=int(input())
print()

#remainder(余り)を計算する関数を呼び出す
judge=dance_div(dividend,divisor)
print("果たして'YOU'の勝敗結果は・・・・!")

#結果を出力
print(judge+"\n")

宜しかったら、コードをコピペしてアレンジして見てください。

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

■参考文献■
じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。

関連記事:C言語うっせぇわループ

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

Python自作サンプルに戻る
C言語自作サンプルに戻る
メインメニューに戻る
基本情報技術者試験

自己紹介

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

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

この記事ではPythonに絞って、ゲーム感覚でプログラミングを楽しめて、尚且つ、出来るだけコストを書けず挫折しにくい学習方法を紹介しています。

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

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

paizaラーニング さんという学習コンテンツで、1レッスンに8個程度のチャプターがあります。入門講座の他に完全無料の「体験版」があるので、自分との相性の合う言語を手軽に探せます。

2021年2月21日からPythonの学習を本格的に始めました。
それまでは幾つかの言語を自分探し的にやっていました。
2021年5月5日(GW最終日)に体験版及び入門講座を終えました。

体験版と入門講座のLesson6までをまず行いました。
ここまでで変数、条件分岐、ループ、リスト(他の言語でいう配列)が学べます。

その後、Lesson7の関数に進む前にレベルアップメニューの問題集のリンクがあるので、そちらで条件分岐、配列、配列活用メニュー、二重ループメニューを終わらせ、最後にCランクレベルアップメニューをクリアしました。

レベルアップ問題集は、順番に解いていくと最後の問題が解けるようにテーマごとに構成されていて、まずは自力で解いて、それから正解した場合でも必ず模範解答を確認して、もっと良いやり方があったらそのやり方でも問題を解いてみました。

Cランクアップメニューをクリアした後、Lesson7の関数に進み、最後の動画レッスン(2021年5月5日現在)のLesson10までで関数に加えてクラス、例外処理を学びました。

動画レッスンには内包表記はありませんが、レベルアップ問題集の模範解答などを見て、内包表記が少し分かる程度の知識があれば、この本、「独習Python」を読めると思います。

paizaにはスキルチェックというものがあり、ランクがDランク、Cランク、Bランク、Aランク、1番上がSランクになります。

私は2021年12月現在Cランクですが、Cランクの問題は解ける問題もありばそうでない問題もあり、安定して解けるのはDランクの問題なので、実質的な実力はDランクだと思っています。

そこで、実質的にCランクの問題を安定して解ける力をつけ、さらに上を目指すのに、「レベルアップ問題集」のPythonのコードと仕事で必要になるGASのコード(スプレッドシートを使用)をブログで公開しています。

関連記事:paizaレベルアップ問題集をPythonとGASの両方で解いてみた集
これは、DランクからCランクにレベルアップするための、Cランク獲得ストーリーを参考にしています。



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

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

出来れば基本情報技術者試験合格レベルの知識もあった方がより分かりやすいかも知れませんが、ITパスポートのみという方でも、論理演算とか知っていれば学習可能かも知れません。

2021年5月23日からKivyを初め、今現在はPython×kivyで2021年内にアプリを開発出来るよう、仕事と並行して勉強しています。

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

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

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