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

この記事を読むことで、

・9人組ガールズグループ「NiziU」を通してPythonのクラスの初歩的なコードが書けるようになる

・改行の仕方の復習

・内包表記を使ったループの復習

の概要が掴めます。

クラス=設計図

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

と説明をすると、なんだか小難しい感じがするので、

クラス… NiziUの【名前】、【メンバーカラー】といったフォーマット

インスタンス… そのフォーマットから作った、MAKO; RIO; MAYA; RIKU; AYAKA; MAYUKA; RIMA; MIIHI; NINA
のメンバーごとの名前やメンバーカラーなど

と捉えると少し分かりやすくなるかもしれないです。

(ファンの愛称は、WithUという様です。)

クラス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+'】'))

次に、各メンバーを格納するリストmemberと、クラス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  ','青      '))

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

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

遊歩道の桜です。
それと、NiziUの曲2つです。

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

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

Python自作サンプル集へ戻る

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

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

この記事を読むことで、

・7人組ボーイズグループ「BE:FIRST」を通してPythonのクラスの初歩的なコードが書けるようになる

・改行の仕方の復習

・内包表記を使ったループの復習

の概要が掴めます。

クラス=設計図

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

と説明をすると、なんだか小難しい感じがするので、

クラス… メンバーの【名前】、【出身地】、【身長】、【デビュー時の年齢】といったフォーマット

インスタンス… そのフォーマットから作った、

「SOTA(ソウタ)・SHUNTO(シュント)・MANATO(マナト)・RYUHEI(リュウヘイ)・JUNON(ジュノン)・RYOKI(リョウキ)・LEO(レオ)」のメンバーごとの名前など

と捉えると少し分かりやすくなるかもしれないです。

まず、クラスBefirstのコードの説明をします。

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

initが呼ばれた後に、profile (プロフィール)というメソッドが呼び出され、ここで各メンバーの名前・出身地・身長・デビュー時年齢(2021年8月時点)の紹介が出力されます。

profileメソッドの身長とデビュー時の年齢は数値なのでstrで括っています。
また、結果が見やすいように【 】で括っています。

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

    def profile(self):
        print(" 【"+self.name+"】:【"+self.place+"】:【"+str(self.height)+"】cm:【"+str(self.age)+"】歳")

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

ここでは、memberというリストに追加しています

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

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

メンバーを追加したリストmemberをループで取り出して、profileメソッドを呼び出すコードです。

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

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

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

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

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

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

    def profile(self):
        print(" 【"+self.name+"】:【"+self.place+"】:【"+str(self.height)+"】cm:【"+str(self.age)+"】歳")


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

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


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

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

しながわ花海道のコスモスです。

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

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

Python自作サンプル集へ戻る

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

【Python_立体図形】関数を使いこなして立体図形(立方体・直方体・円柱・三角錐・四角錐・円錐)の体積を求める

この記事を読むことで、

・関数で立体図形の体積を算出

・Pythonでの累乗(二乗、三乗)などの書き方

・ドリルの様に演習して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です。')


では次に、直方体の体積を求めます。

直方体の体積は、タテ×ヨコ×高さなので、この様にコードを書き換えました。
関数の名前を図形ごとに変えるのは手間ですので、これ以降「figure3d」という名称に致しました。

コードと実行結果です。

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

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


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

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

底面積である三角形の面積に高さをかけて3で割っています。

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

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

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


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

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


次に四角錐(ピラミッド型)の体積を求めます。
こちらは、タテ5cm、ヨコ5cm、高さ6cmとしています。

#四角錐(ピラミッド)の体積を計算する関数
def figure3d(x,y,z):
  return x*y*z/3

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


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


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


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

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

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

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

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


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

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

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


最後に円錐(道路などにあるコーン)の体積を求めます。

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

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


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

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


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

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

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


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

稲村ヶ崎海岸です。江ノ電で行きました。

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

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

Python自作サンプル集へ戻る

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

【Python関数で長方形、三角形、台形】関数を「カレーライス」に例えて、平面図形の面積を求める

この記事を読むことで、

Pythonの関数をカレーライスを作る例を通して理解

簡単な平面図形の面積が求められる

についての概要が掴めます。

関数とは、ざっくり言って、「カレー鍋」です。
鍋に入れる「ジャガイモ、ニンジン」が引数、出てきた料理が戻り値です。

それでは、肩の力を抜いて、長方形、三角形、台形の面積を使いながら関数に慣れて行きましょう!


最初に、縦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」とします。

長方形は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は仮引数と呼ばれます。

return x*y

で、出来上がったカレーライスがお手元に届けられます。

コードの縦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+です。')

ここで変数や関数名のことですが、基本的に英語にしますので、ローマ字でtate、yoko,chouhoukeiとは書かずに、縦(vertical)や横(beside)や長方形(rectangle)という名前にします。

英語が苦手でも今はGoogle翻訳なども使えるので、変数名を決める時の参考にしています。


今度は三角形を求められるようにコードを改変してみます。
関数の戻り値のところを2で割ると、お馴染みの公式、底辺×高さ÷2ですね。
割り算をしているので、int関数を使って整数値を求めています。

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

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

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

print('三角形の面積は【'+str(area)+'】cm^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+です。')


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

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

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

しながわ花海道に咲いていた、アオイ科のムクゲです。

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

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

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="")
msg=input()

#基本的なループ
for i in range(N):
  print(str(i)+":"+msg)

<内包表記>

#表示する回数
N=5

#名セリフを入力←標準入力
print("あなたの好きなセリフを入力して下さい--->>>",end="")
msg=input()

#内包表記
[print(str(i)+":"+msg) for i in range(N)]

実行結果です。


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

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

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

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

Python自作サンプル集へ戻る

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

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

この記事を読むことで、

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

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

・逆に減らすのは?

・好きな文字列をループで指定した回数分表示させたい

が理解出来、更に標準入力と組み合わせて学習出来ます。


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

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

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


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

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

と書きます。
以下が2つずつ増加するループのコードと実行結果です。

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


次に数を減らす場合は、

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

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

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

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


では、今度は指定の数だけドラマの名台詞を表示させてみます。

好きな文字列表示に使う具体例は、ドラマの名台詞です。
「同情すんなら金をくれ!」
「僕は死にません!!」

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


平成の名ドラマ「家なき子」の安達祐実さんのセリフ、「同情すんなら金をくれ!」を、5回表示させます。
Nに表示回数の5、msgにセリフを入れてコードを書いて実行します。

#セリフを表示させる回数
N=5

#ドラマの名セリフ
msg="同情すんなら金をくれ!!"

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

名セリフが5回出力されました。
あの頃の安達祐実さんの表情が蘇ります(涙)

それで、range(5)は5未満なのに、5回表示されるのは何故?
4回になるのでは・・・。と思われたアナタ、鋭いです!!

print文を下記の様に変更して、ループの変数「i」も同時に表示させてみます。
数値を文字列と一緒に表示する場合は、strを用います。
数字と文字列の間に「:」を「+」で連結しています。

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

コードと実行結果です。

#セリフを表示させる回数
N=5

#ドラマの名セリフ
msg="同情すんなら金をくれ!!"

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

セリフを変えるには、変数msgを変更します。

#セリフを表示させる回数
N=5

#ドラマの名セリフ ← ここを変更
msg="僕は死にません!!"

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

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


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

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

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

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

msg=input()

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

#表示する回数
N=5

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

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

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

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

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

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

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

マクセルアクアパーク品川(水族館)の写真です。

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

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

Python自作サンプル集へ戻る

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

【Python_円周率】円の面積、球体の体積、円周を計算する関数の使い方、二乗3乗などの累乗の計算の仕方、戻り値の小数点以下桁指定

この記事を読むことで、

・Pythonの二乗・3乗などの累乗の計算

・円周率を使った計算で円の面積を求める関数

・球の体積を求める関数

・円周を求める関数

・小数点以下を含めた桁の指定



の概要が掴めます。

用意する関数は、

・円の面積を求める関数area(引数:半径r)
・球の体積を関数globe(引数:半径r)
・円周を求めるcircle(引数:半径r)

です。

今回は引数の半径rは共通なので、それぞれの関数呼び出しの前に、ここでは半径rを5cmとしているので、

r=5

を記述しました。

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

#それぞれの関数の呼び出し
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

円周率はご存知の通り、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 math.pi*r**2

#半径
r=5
area_ans=area(r)


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


次に球の体積を求めます。
公式は、

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

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

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

となります。

コードと実行結果です。

import math

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

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


#半径
r=5

#関数を呼び出し
area_ans=area(r)#円の面積
globe_ans=globe(r)#球の体積

print()

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

結果表示のprint文の最後の改行は、「\n」を使っています。
macをお使いの方は、[option]+[¥]で「バックスラッシュ」が表示されます。


最後に円周の長さを求めます。

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

コードと実行結果です。

import math

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

#球の体積を計算。**で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()

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


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

スカイツリーからの眺めです。

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

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

Python自作サンプル集へ戻る

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

Pythonでループ|内包表記|リストの並べ替え|V6の名曲を例にリストの昇順と降順の並べ替えをしてみた。

この記事を読むことで、

・Pythonのループの基礎

・内包表記


・ループを使ってリストに要素を追加する


・上記の内包表記と二乗


・リストの並べ替え(昇順・降順)

についての理解を深められます。

まず基本的な論点を学習してから、V6の名曲を例にリストにして、昇順、降順を行っています。


まずは、初歩的なループと内包表記の対応付けと言う、ごくごく基礎から入って行きます。

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)

このコードをもっと短くした内包表記のコートとの対応です。
print文の中にリストの[ ]を使っています。

#内包表記でリストに要素を加えて表示する
[print([i for i in range(10)])]

次は内包表記を用いて計算を致します。
この配列の要素それぞれの二乗を求めます。

#内包表記でリストに二乗をした要素を加えて表示する
[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の名曲リストを作成します。

メンバーは
トニセン(年長3人):坂本昌行、長野博、井ノ原快彦
カミセン(年少3人):森田剛、三宅健、岡田准一
で、私はトニセンとカミセンの間の年齢なので、感慨深いものがあります。

リスト名は、そのまま「V6」にします。
ループの変数として、これまで「i」を使っていた箇所を「song」にします。

#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(song) for song 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(song) for song 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(song) for song in V6]

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

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

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

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

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

Python自作サンプル集へ戻る

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

【Python関数でジャンケンゲーム】乱数の扱い方など

この記事を読むことで、

・乱数を使った簡単なじゃんけんゲームが作れる

・標準入力


・論理演算子 OR

IF文を使った勝敗分岐の復習

についての概要が掴めます。

ルールとして、
1:グー 2:チョキ 3:パー で、変数youに半角数字で標準入力を使って入力をします。

コンピューターは、1〜3までの乱数を求めて変数pcに代入します。
乱数の算出と表示をするコードはこちらになります。

#乱数を使う為、ランダムモジュールをインポートする
import random

#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)

これで乱数が求まりました。

次に、あなたの手を標準入力します。

#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー  2:チョキ  3:パー」 >>>",end="")
you=int(input())

これで、半角で数値が入力出来るようになり、1から3までがそれぞれジャンケンの手に対応しています。

勝敗の判定をIF文で行っています。

#勝敗の判定
if you == pc:
    msg="あいこです。"
elif you == pc -1 or you == pc +2:
    msg="YOU WIN!!!!!!"
else:
    msg="YOU LOSE...."

print(msg)

まず、一番簡単なのが「あいこ」の時なので、最初に書きます。
次にあなたがコンピューターに勝つ場合は、

・グー(1) VS チョキ(2)…. youはpcより1小さい

・チョキ(2) VS パー(3)…. youはpcより1小さい

・パー(3) VS グー(1) …. youはpcより2大きい

の場合です。

つまり、youがpcよりも1小さいか、2大きい時にあなたの勝ちとなります。
または、に当たりますので、IF文の中でORを使っています。

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

#乱数を使う為、ランダムモジュールをインポートする
import random

#乱数pcの範囲を1から3までとする
pc=random.randint(1, 3)
print(pc)

#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー  2:チョキ  3:パー」 >>>",end="")
you=int(input())


#勝敗の判定
if you == pc:
    msg="あいこです。"
elif you == pc -1 or you == pc +2:
    msg="YOU WIN!!!!!!"
else:
    msg="YOU LOSE...."

print(msg)

ここからは、このジャンケンの部分を関数にしていきます。
コンピュータが出す手の乱数とその手の表示、勝敗分岐まで関数に記述しました。

関数Comuter_Handの仮引数youは、標準入力であなたが入力した1〜3までの半角英数字が入ります。

#コンピューターの出す手の関数
def Computer_Hand(you):

  #乱数pcの範囲を1から3までとする
  pc=random.randint(1, 3)
  print(pc)

  #コンピューターの出した手
  if pc==1:
    print("PC:グー") 
  elif pc==2:
    print("PC:チョキ")
  else:
    print("PC:パー")

  #勝敗の判定
  if you == pc:
    msg="あいこです。"
  elif you == pc -1 or you == pc +2:
    msg="YOU WIN!!!!!!"
  else:
    msg="YOU LOSE...."
  return msg

この関数を呼び出すのは、あなたが標準入力でジャンケンの手を入れてからです。
戻り値として勝敗結果のmsgを呼び出し元に返します。

#標準入力で、あなたの出す手を決める
print("じゃんけんの手を半角数字で「1:グー  2:チョキ  3:パー」 >>>",end="")
you=int(input())

judge=Computer_Hand(you)

関数Computer _Handの引数をyouとして呼び出しています。
戻り値として帰ってきた勝敗結果がjudgeに代入されます。


ジャンケンコードの全体と実行結果です。

#乱数を使う為、ランダムモジュールをインポートする
import random

#コンピューターの出す手の関数
def Computer_Hand(you):

  #乱数pcの範囲を1から3までとする
  pc=random.randint(1, 3)
  print(pc)

  #コンピューターの出した手
  if pc==1:
    print("PC:グー") 
  elif pc==2:
    print("PC:チョキ")
  else:
    print("PC:パー")

  #勝敗の判定
  if you == pc:
    msg="あいこです。"
  elif you == pc -1 or you == pc +2:
    msg="YOU WIN!!!!!!"
  else:
    msg="YOU LOSE...."
  return msg


#標準入力で、あなたの出す手を決める
print(" じゃんけんの手を半角数字で「1:グー  2:チョキ  3:パー」 >>>",end="")
you=int(input())

judge=Computer_Hand(you)
print(judge)


いきなり負けました(笑)

今度こそは!!

やった、勝った♪

最後はあいこで。


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

東京モノレールです。
羽田空港第二ターミナルまで行きます。

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

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

Python自作サンプル集へ戻る

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

Pythonのリスト基礎と長さlenで国内旅行気分でランダムに!!

この記事を読むことによって、国内旅行を例に

・リスト(配列)の基礎

・リストの長さを調べるlen

・リストの要素を取り出し

・乱数と組み合わせて旅行先を表示する

Pythonのリストの初歩的な扱いが可能になります。

リストは団地に似ているのかも知れません。

[‘北海道’,’東京’,’名古屋’,’大阪’,’兵庫’,’沖縄’]

団地の0号室が北海道、1号室が東京・・・5号室が沖縄です。
この階の部屋の長さは0〜5号室までの6です。
ポイントは、最初の部屋は0号室だということです。

これは、リストが0から始まるからです。
このリストをtravelとして、早速コードを書いていきます。

travel=['北海道','東京','名古屋','大阪','兵庫','沖縄']
print(travel[0]) #先頭の「北海道」
print(travel[1]) #その次の「東京」
print(travel[5]) #最後の「沖縄」

実行結果です。

リストの番号を添字と言います。
この例で言うと、北海道の添字は0、沖縄の添字は5になり、先ほどの部屋が何号室かという例と対応しております。

次に、この配列の長さを求めるlenを使ってみます。

travel=['北海道','東京','名古屋','大阪','兵庫','沖縄']
print(travel[0]) 
print(travel[1]) 
print(travel[5]) 

#配列の長さを求めるlen
print(len(travel))

実行結果です。

では、リストの部屋番号(添字)をランダムにして、どこに旅行するのかくじ引き感覚でコードを書いて行きます。

リストの添字をランダムにして、変数indexに格納します。

#ランダムモジュール
import random

#国内旅行のリスト
travel=['北海道','東京','名古屋','大阪','兵庫','沖縄']

#添字indexをランダムにする
index=random.randrange(0,len(travel))

#結果表示
print("添字は"+str(index)+"なので【"+str(travel[index])+"】に行こう!!")

実行結果です。

この、乱数を求める部分のコードですが、

#添字indexをランダムにする
index=random.randrange(0,len(travel))

randrangeによって、0から6未満の乱数を求めています=長さが6
これをrandintにしてしまうと、0から6までになり=長さが7

乱数が6になった時にエラーが表示されます。

#ランダムモジュール
import random

#国内旅行のリスト
travel=['北海道','東京','名古屋','大阪','兵庫','沖縄']

#添字indexをランダムにする← ここをrandintにすることによりエラー発生
index=random.randint(0,len(travel))

#結果表示
print("添字は"+str(index)+"なので【"+str(travel[index])+"】に行こう!!")


このコードでも、乱数が5まででしたら先ほどのrandrangeの時と同じように旅先が表示されるのですが、6になるとこの様なエラーになりました。



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

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

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

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

Python自作サンプル集へ戻る

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