Python入門ガイド学習ノート-3-プロセス制御

1643 ワード

forループのelse句
forループにはelse句があります.完全なリストをループ反復するときに実行されますが、breakによってループが中止された場合は実行されません.次の検索素数の例では、この句を示します.
 
 

for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... # loop fell through without finding a factor
... print n, 'is a prime number'
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3


関数のデフォルトの解析
関数のデフォルト値は解析され、1回のみ付与されます.

i = 5
def f(arg=i):
print arg
i = 6
f()

5


デフォルト値は1回のみ割り当てられ、デフォルト値が参照オブジェクトの場合は次のようになります.
def f(a, L=[]):
    L.append(a)
    return L
print f(1)
print f(2)
print f(3)
#     :
[1]
[1, 2]
[1, 2, 3]

どのように改善するか考えてみましょう...
関数パラメータ
def parrot(voltage,action='voom',*arguments,**keywords):

それぞれパラメータ、オプションパラメータ、可変パラメータであり、キーワードパラメータ可変パラメータは元祖を受信し、キーワードパラメータは辞書を受信する.
Lambda
Lambdaキーワードを使用すると、短い匿名関数を作成できます.ここでは、2つのパラメータの和:lambda a,b:a+bを返す関数があります.セミコロンの前はパラメータで、セミコロンの後ろは戻り値です.Lambda形式は、任意の必要な関数オブジェクトに使用できます.構文の制限により、1つの式しか使用できません.Lambda形式では、外部の役割ドメインから変数を参照できます.
>>> def make_incrementor(n):
...    return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43