ホームページ  >  記事  >  バックエンド開発  >  Python メモ (3) 学習を続ける

Python メモ (3) 学習を続ける

WBOY
WBOYオリジナル
2016-06-16 08:47:011046ブラウズ

トピック:
なぜメソッドが必要なのでしょうか?
実際の答えは次のとおりです: 怠惰は美徳です
メソッドの定義キーワード:
Def
呼び出し可能かどうかを判断するには呼び出し可能を使用します:

コードをコピー コードは次のとおりです。

x = 1
y = math.sqrt
callable(x) #False
callable(y) #True

メソッドの戻り値について:
コードをコピー コードは次のとおりです:

def hello(name) :
return 'Hello, ' + name + '!'

アルゴリズムの実装があります: 最初の 2 つの数値の合計は次の数値です
コードをコピー コードは次のとおりです:

fibs = [0, 1]
for i in range(8) :
fibs.append(fibs[- 2] + fibs[-1])

結果:[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

以上です メソッド実装を定義します:
コードをコピー コードは次のとおりです:

def fibs(num):
result = [0 , 1]
for i in range(num-2):
result.append(result[-2] + result[-1])
return result

jump out メソッド内のコマンドの実行:
コードをコピー コードは次のとおりです:

def test():
print 'これは出力されます'
return
print 'これは出力されません'

メソッドが何も返さない場合、戻り値は None です
メソッドのパラメータについて
メソッドに渡します のパラメータが変更されているかどうかの問題は、多くの言語で発生する可能性があります。

例:
コードをコピー コードは次のとおりです:

def try_to_change(n):
n = 'Mr. Gumby'

name = 'Mrs. Entity'
try_to_change(name)
name # 'Mrs. Entity'

上記パラメータが変更されていない例では、それらのパラメータは変数になります。
文字列数値タプルは不変型であり、変更することはできません。変数型をパラメータとして使用すると、メソッド内で変更されるパラメータの機能を実現できます。
コードをコピー コードは次のとおりです:

def change(n):
n[0] = 'ガンビーさん '

names = ['Mrs. Entity', 'Mrs. Thing']
change(names)
names #['Mrs. Thing']

この部分の内容は、実際には Java に似ています。「 を押してパラメータを渡すための

メソッドに到達します。」という意味の混乱を解決できます。
コードをコピー コードは次のとおりです:

def hello_1(greeting, name) :
print '%s, %s!' % (greeting, name)
hello_1(greeting='Hello', name='world') #Hello, world!名前で人を検索するメソッドセット:


コードをコピー
コードは次のとおりです: def init(data): #1 data['first'] = {}
data['middle'] = {}
data['last'] = {}

def lookup(data, label , name):
return data[label].get(name) #2

def store(data, full_name):
names = full_name.split()#3
if len (names) == 2: names.insert(1, '')# 4
labels = 'first', 'middle', 'last'
ラベルの場合、zip 内の名前(labels, names):# 5
people = lookup(data, label, name)
if people:
people.append(full_name)#6
else:
data[label][name] = [full_name]


使用:


コードをコピー
コードは次のとおりです: MyNames = {} init(MyNames)
store(MyNames, 'マグナス・リー・ヘトランド')
lookup(MyNames, 'middle', 'Lie') #['マグナス・リー・ヘトランド']


理解:
1、データのデータ構造は次のとおりです: { 'middle': {}, 'last': {}, 'first': {}}
2、getメソッドは構造に従って値
3 を見つけます。文字列の分割メソッドは区切り文字を追加できます。デフォルトはスペースです。 区切り文字として:



コードをコピー
コードは次のとおりです: test = 'a,2,d' test.split(',') #['a', '2', 'd']
name = 'my xy dd'
names = name.split()
names #['my', 'xy', 'dd']


4. 挿入するときは、次の値は逆になります。置換として理解しないでください。


コードをコピー
コードは次のとおりです: names.insert (1, '') names #['my', '', 'xy', 'dd']


5、zip メソッドの記述例:


コードをコピー
コードは次のとおりです: x = [1, 2 , 3] y = [4, 5, 6]
zip = zip(x, y)#(1, 4), (2, 5), (3, 6)


6. 探している名前はすでにこのラベルに存在するので、フルネームを追加します
パラメータの * と ** について


*: 任意の数のパラメータを表します

**: 辞書パラメータを表します

例:
コードをコピー コードは次のとおりです:

def print_params_2(title, *params):
タイトルを印刷
パラメータを印刷
print_params_2('Params:', 1, 2, 3)

結果は

Params:
(1, 2, 3)
コードをコピー コードは次のとおりです:

def print_params( **params):
print params
print_params(x=1, y=2, z=3)

結果は次のとおりです: {' z': 3, 'x': 1, 'y': 2}
* と組み合わせると、名前の保存方法を改善できます:
コードをコピー コードは次のとおりです。

def store(data, *full_names):
for full_name in full_names:
names = full_name.split()
if len(names) == 2: names.insert(1, ' ')
labels = 'first', 'middle', 'last'
ラベルの場合、zip 内の名前(labels, names):
people = lookup(data, label, name)
if people:
people.append(full_name)
else:
data[label][name] = [full_name]

呼び出し:
コードをコピー コードは次のとおりです:

d = {}
init( d)
store(d, 'ハン・ソロ')
ストア (d, 'ルーク・スカイウォーカー', 'アナキン・スカイウォーカー')
lookup(d, 'last', 'スカイウォーカー')#['ルークスカイウォーカー』、『アナキン・スカイウォーカー』]

概要:

仕事では必要ありませんが、勉強して自分を豊かにする時間を取るのは良いことです。
ノートは読書や勉強に使えます。将来これを見たときに、落ち込んだり傲慢になったりしないように願っています。少しずつ勉強することは将来役に立たないかもしれませんが、忍耐力はあるかもしれません。このようにして練習する必要があります。
次に進みましょう!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。