特定のタスクを完了するために使用される名前付きコードブロック。
関数コードブロックは、defキーワードで始まり、関数識別子名と括弧()が続きます。入力パラメーターと引数は、括弧の間に配置する必要があります。括弧はパラメータを定義するために使用できます。関数の最初の行では、オプションでdocstringを使用できます。これは関数の説明を格納するために使用されます。関数の内容はコロンで始まり、インデントされています。 returnは関数を終了し、オプションで呼び出し元に値を返します。式なしで返すことは、Noneを返すことと同じです。
簡単なhello関数を作成する
>>> def hello():...print('hello,world')...>>>hello()
hello,world
関数を定義する場合、()のパラメーターは正式なパラメーターであり、入力値は実際のパラメーターです。以下の例では、hello(x)が正式なパラメーターであり、7が実際のパラメーターです。
>>> def hello(x):...return x
>>> hello(7)7
パラメータで独自のデフォルト値を定義できます
>>> def hello(x,y):...return x-y
...>>> hello(3,7)-4
関数によって返される値は戻り値です
>>> def hello(x):...return x*3...>>>hello(3)9
着信オブジェクトが整数や浮動小数点数などの変更不可能なオブジェクトでない場合、関数で値が変更されても、元のオブジェクトは変更されません。
10個のリストが渡された場合でも、リストは関数内で参照されます。関数が変更されると、元の変数も変更されます。
>>> def hello(x):... x=2...>>> x=3>>>print(x)3>>>hello(x)>>>print(x)3
xが2になっていないことがわかります
>>> def hello(x):... x[1]=2>>> x=[2,4,6]>>>hello(x)>>>print(x)[2,2,6]
この関数を実行した後、xが値を変更したことがわかります
辞書に戻る
>>> def person(name,score):
person={'name':name,'score':score}return person
>>> person("Tom",90){'name':'Tom','score':90}
関数内にネストされた関数
次の例は、関数内のネストされた関数です。戻り値は関数を返し、その中のxはfun関数のパラメーターxです。
>>> def fun(x)
def fun2(y):return x+y
return fun2
>>> a=fun(3) ######設定すると=fun(3)パラメータxを渡すことと同等の場合=3,返されるaはfun2の関数です。
>>> type(a)<class'function'>>>>a(8) ######パラメータを再度渡す場合は、y値を渡すのと同じです。
11
>>> def person(name,score):
person={'name':name,'score':score}return person
while True:print('please tell me your name and score:')
name=input('name:')if name =='q':break
score=input('score:')if score =='q':break
people=person(name,score)print(people)
please tell me your name and score:
name:Tom
score:80{'name':'Tom','score':'80'}
please tell me your name and score:
name:q
ループの内容を追加して、関数にリストを渡すことができます
>>> def hello(x):...for name in x:...print('hello'+name+'!')...>>> t=['tom','mary','hh']>>>hello(t)
hellotom!
hellomary!
hellohh!
正式なパラメータに*を追加します。これは、複数の実際のパラメータを渡すことができることを意味します
>>> def vegetable(*x):...print(x)...>>>vegetable('spinage')('spinage',)>>>vegetable('spinage','chinese leaf')('spinage','chinese leaf')
pythonでは、辞書は一連のキーと値のペアです。各キーは値に関連付けられています。キーを使用して、対応する値にアクセスできます。キーには、数値、文字列、リスト、または辞書を指定できます。
クラスメートの名前と成績をリストのクラスに保存する場合は、リストとタプルを使用できます。
data=[('tom',89),('mary',90),('haha',100)]
data
[(' tom',89),('mary',90),('haha',100)]
上記のリストの場合、リストにトムがあるかどうかを照会する場合は、リスト内のすべてを比較する必要がありますが、速度が遅くなるため、辞書の形式である特定の機能に従って対応する値を照会します。 key_value、データ構造はmapと呼ばれ、pythonは辞書で構成されるキーと値のペア
以下に辞書を作成します
scores={'tom':90,'mary':80,'mike':70,'jak':100}
scores
{' tom':90,'mary':80,'mike':70,'jak':100}
len(scores)###キーと値のペアがいくつあるかを確認します
4
scores['tom'] ###キートムに従って対応する値90を取得します
90
scores.get('tom')
90
scores['bob']=88 ###キーと値のペアを辞書に追加します
scores
{' tom':90,'mary':80,'mike':70,'jak':100,'bob':88}
scores['tom']='toom' ###辞書の値を変更する
scores
{' tom':'toom','mary':80,'mike':70,'jak':100,'bob':88}
del scores['tom'] ####キーと値のペアを削除します
scores
{' mary':80,'mike':70,'jak':100,'bob':88}
scores
{' mary':80,'mike':70,'jak':100,'bob':88}
for key,value in scores.items(): ###すべてのキーと値のペアをトラバースします
print(key)print(value)
mary
80
mike
70
jak
100
bob
88
for name in scores.keys(): #####すべてのキーを繰り返します
print(name)
mary
mike
jak
bob
for score in scores.values(): ####すべての値を繰り返します
print(score)
807010088
scoresheet={'mike':(60,80,90),'tom':(80,70,99),'mary':(78,90,57)}for key in scoresheet.keys():print(key,scoresheet[key])
mike(60,80,90)tom(80,70,99)mary(78,90,57)
リストに辞書を含める
alion={'hh':1,'hhw':2,'hhh':3}
alion2={'yy':1,'yyy':2,'yyyy':3}
alion3={"uu":1,'uuu':2,"uuuu":3}
alionall=[alion,alion2,alion3]
alionall
[{' hh':1,'hhw':2,'hhh':3},{'yy':1,'yyy':2,'yyyy':3},{'uu':1,'uuu':2,'uuuu':3}]
for alien in alionall:print(alien)
{' hh':1,'hhw':2,'hhh':3}{'yy':1,'yyy':2,'yyyy':3}{'uu':1,'uuu':2,'uuuu':3}
for alien in alionall[:2]:print(alien)
{' hh':1,'hhw':2,'hhh':3}{'yy':1,'yyy':2,'yyyy':3}
リストを辞書に保存する
apple={'color':['red','yellow'],'shape':['round','square']}
for things in apple.values():print(things)
[' red','yellow']['round','square']
for key in apple.keys():print(key)
color
shape
辞書に辞書を含める
people={'tom':{'math':80,'english':90},'mary':{'math':90,'english':70}}for name,project in people.items():print(name,project)
tom {'math':80,'english':90}
mary {'math':90,'english':70}
for name,pro in people.items():print(name,pro)
tom {'math':80,'english':90}
mary {'math':90,'english':70}
Recommended Posts