よーじ通信

底辺社内ニートがプログラミングや役に立ちそうなネタを書いています

よーじ通信

【Python入門】プログラミング超初心者が0からはじめる入門編 vol.4

f:id:youji11410:20161219130848j:plain

知識ゼロの超初心者がプログラミング初挑戦でPythonをはじめました。第4回目は【オブジェクト】【メゾット】【関数】について

 

スポンサーリンク
 

 

 第6章 呪文の正体

これまで、【.upper()】や【len()】などを呪文と言ってきました。呪文の正体を解明していくのがこの章です

 

6-1 メゾット

.upper() ⇒大文字にする

.lower() ⇒小文字にする

.count() ⇒指定した文字の数を数える

など、文字列やリストなどの後ろについていた呪文のことを

メゾットと言います

 

また、文字列やリスト、数値型、ディクショナリのことはオブジェクトと言います

と呼んでいたものがオブジェクトだと覚えればオッケーです

 

vol.2でやったように、数値型や文字列に使える呪文は決まっていました

言い換えると、メゾット(呪文)はオブジェクト(型)の種類によって決まっています

例えば、【.lower()】というメゾットは、数値型には使えません

 

6-2 関数

メゾットの他にも呪文がありました

 

type()    ⇒型を調べる

round()  ⇒四捨五入

abs()  ⇒絶対値

len()   ⇒文字列の長さ

 

など、括弧の中にオブジェクト(型)を入れる呪文でした

これらの呪文を関数と呼びます

関数は、自動販売機のようなものと考えればいいですね

130円を入れると、コーラが出てくる、といったように

len()の括弧にSexy Zoneと入れると

 

>>>len("SexyZone")

 8

 

というように、入れたものに応じて返ってくるという仕組みです

 

6-3 メゾットと関数の違い

 違いその1

 

オブジェクト.メゾット()

関数(オブジェクト)

 

というようにかたちが違います

メゾットが使えるかどうかはオブジェクトによって決まっていますが、関数はオブジェクトを選びません。

Vol.2では、文字列にはメゾット、数値型には関数と書きましたが、あれは解釈が間違っていたようです

すいません

 

また、関数は自分で作ることも可能です

 

 スポンサーリンク

 

 第7章 関数は作れる

先程、関数を作ることができると言いました

さっそく作ってみましょう

 

7-1 数を5倍にする関数をつくる

 

f:id:youji11410:20161219135239j:plain

 

関数を作るときは、まず【def】と書きます

【def】はdefine(定義する)という意味です

次に関数の名前をつけます

lenにあたる部分ですね

わかりやすく【gobai】にしました

kazuはカッコ内に入れる値の仮称です

これを引数(ひきすう)といいます

括弧内を数字にするとエラーだったので、アルファベットのみを受け付けるようです

一文字でも問題ありません

 

>>> def koichi(d):

...          return kazu*3

...

>>>

 

【def】と関数の名前の間には【半角スペース】が必要です

コロン【:】を入力するのを忘れないようにしましょう

Enterを押すと次の行に行きます

この時、【>>>】ではなく【...】になります

これは上の関数の定義が続いていることを示しています

スペースを4回押すか、TABキーを押します

これをインデントと言います

スペースはいくつでもいいのですが、一般的に4個のようです

 

 再びEnterを押すと、【...】が返ってきますので、もう一度Enterを押します

これで完了です

ちゃんと関数が定義されたか、確認してみます

 

f:id:youji11410:20161219235207p:plain

 

koichiという関数は、( )に入れた数字を3倍にして返すという決まりにしました

その結果、( )に37を入れると、37*3=111で、111が返ってきました

 

f:id:youji11410:20161219235337p:plain

 

これと変数を組み合わせる事もできます

変数は前回やりました

 

f:id:youji11410:20161217164508p:plain

 

こういうやつですね

 

f:id:youji11410:20161219235337p:plain

 

xを37と定義します

xは関数koichi(x)と定義します

xはなんですか?と聞くと

koichi()は3倍返しの関数で、関数kouichi(x)のxは、変数37ですから

37*3となり、111が返ってきます

xは37と定義したあとに、3倍返しの関数koichi(x)を変数xと定義し直したので

最終的に、変数xは111になりました

x=37と決めた変数をkouichi(x)で上書きしたことになります

この時、koichi(x)だけで考えると、x=37の三倍返しの関数ですから

37*3=111が成立しています

つまり、最初にxを37と定義しているから、koichi(x)が37*3となるわけです

最初にx=37と定義したxと、koichi(x)のxは同じxだということです

しかし、x=koichi(x)のxは違うxです

 

つまり

 

>>> x = 37

>>> D = koichi(x)

>>> D

111

 

ということです

参考書が少しわかりにくいので、二行目のxを違う文字に置き換えました

変数を組み合わせることによって、かなりスッキリさせられますね

 

7-2 文字列でもやってみる

名前を入力すると、自動的に挨拶してくれる関数を作ってみましょう

>>> def aisatsu(name):

...          return "My name is " + name + "."

...

>>>

>>> aisatsu("Nagase")

'My name is Nagase.’

 

 

【 ...          return "My name is " + name + "."】

この、nameが【” ”】で囲っていない理由がわかりますか?

これは文字列ではなく、引数だからですね

 

さきほど、関数と変数に組み合わせたのを応用して、文字列を繰り返し表示することもできます

  

f:id:youji11410:20161219235726p:plain

                                                                                     

まず、文字列の関数を作ります

aisatuの関数を変数Tにおさめます

そのあと、3倍にする関数を作ります

さっきの応用ですね

準番はどれが最初でも良いですが、関数の定義を先にやる必要はあります

 

【T】は何ですか?と聞くと、aisatuの関数即ち【T】の中身を返してくれます

そして、3倍にする関数bai()に【T】をいれると、引数*3と定義しましたから

T*3(三回繰り返し)で、【T】はaisatu("Nagase")なので上のように返ってくるわけです

 

 

これは一例ですので、いろんな方法でやってみてください

 

 

まとめ 

急速に進歩した感があった6章と7章でしたが、ついてこれましたでしょうか?

本を買って、これなんだっけ?と思ったら戻って確認しながら、理解していくといいですよ

関数と変数はなかなか遊べそうですね

 

そろそろお気づきの方もいらっしゃるかと思いますが、ちょいちょい某巨大アイドル事務所所属のグループ名や個人名が出てきていますが、深追いはしないでください(笑)

 

次回から少し難しくなりますので、今回はここまで。

それでは、また!

 

使用している参考書はこちら▼

 

スポンサーリンク

▼関連記事▼

【Python入門】プログラミング超初心者が0からはじめる入門編 vol.5

© 2016 よーじ通信