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

【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自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

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