昨日のレビュー
イテレータ
イテレータオブジェクトが反復可能である必要があり、反復可能オブジェクトは、必ずしもオブジェクトをイテレータありません
反復可能オブジェクト
含む__iter__
方法のデータ型を
数値型に加えて、反復可能オブジェクトは、
Iteratorオブジェクト
入って__iter__
、__next__
メソッドのデータ型を
ファイルには、イテレータオブジェクトであります
反復可能オブジェクトプラス__iter__
イテレータオブジェクトとなります
イテレータオブジェクトを加えた__iter__
方法はまだイテレータオブジェクト
循環原理について
lt[1,2]
lt_iter=lt.__iter__()
while True:
try:
print(lt_iter.__next__())
except StopIteration:
break
式のトリプレット
条件他の条件が満たされない場合、条件が成立します
リスト内包
[Iの範囲内のiについて(10)]
式の辞書
{I:iに対して範囲内(10)}
ジップ
読み出した複数の使い捨てのオブジェクトに要素の各反復をイテラブル、タプルを構成します
ジェネレータ式
(I範囲のiについての(10))
ジェネレータ
自然は、イテレータであるカスタムイテレータで、関数はyieldキーワードを含みます
def ge():
yield
産出
- ポーズ機能
- 次により撮影された降伏値
def range(start, stop, step):
while start < stop:
yield start
start += step
for i in range(1,10,2):
print(i)
再帰
関数自体を呼び出し、終了条件があります
count = 0
def a():
global count
print(count)
if count == 100:
return
count += 1
a()
a()
コンテンツ今日
#匿名関数
名前のない無名関数
ラムダキーワードは、匿名を必要とします
lambda 参数:返回值
ソートされた匿名一般に単独では使用されない機能、及びフィルタ()/マップ()/()/リストのソート()組み込み方法は、組み合わせて使用します
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000
}
ソート
salary_list = list(salary_dict.items())
salary_list.sort(key=lambda i:i[1])
print(salary_list)#[('sean', 2000), ('nick', 3000), ('tank', 5000), ('jason', 100000)]
並べ替え
salary_list=list(salary_dict.items())
s=sorted(salary_list,key=lambda i:i[1])
print(s)#[('sean', 2000), ('nick', 3000), ('tank', 5000), ('jason', 100000)]
最大最小フィルタ
salary_list=list(salary_dict.items())
print(max(salary_list,key=lambda i:i[1]))#('jason', 100000)
print(min(salary_list,key=lambda i:i[1]))#('sean', 2000)
print(list(filter(lambda i: i[1] < 5000, salary_list))) #[('nick', 3000), ('sean', 2000)]
リストに変換しないでください
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000
}
#sorted
s=sorted(salary_dict,key=lambda i:salary_dict[i])
print(s)#['sean', 'nick', 'tank', 'jason']
#max
res = max(salary_dict, key=lambda name: salary_dict[name])
#min
res = min(salary_dict, key=lambda name: salary_dict[name])
#filter
res = filter(lambda item: salary_dict[item] > 3000, salary_dict)
#map
def function1(item):
return item + 2
res = map(function1, [1, 2, 3, ])
print(res)
print(list(res))
組み込み関数
デコードされた文字をバイト
res = bytes('中国', encoding='utf8')
print(res)#b'\xe4\xb8\xad\xe5\x9b\xbd'
CHR / ORD CHR()デジタル文字に対応するにASCIIコード表を参照し、ORD()は、対応するデジタルに文字を変換します
print(chr(97))#a
print(ord('a'))#97
丸めdivmod /モジュロ
print(divmod(10,4))#(2,2)
インデックス(******)で反復列挙
lt=[1,2,3]
for i in enumerate(lt):
print(i)
#(0, 1)
(1, 2)
(2, 3)
置き去りにされたものを、削除文字列を引用するのeval(***)が何であります
s='[1,2,3]'
print(eval(s))#[1,2,3]
ハッシュハッシュかどうかを判断します
print(hash(1))#1
ABS絶対値
print(abs(-1))#1
すべてTRUE TRUEと比較することができる繰り返しオブジェクト内のすべての要素
print(all([1,2,3]))#true
TRUE TRUEに比べていずれかの要素限り
print(any([1,0,0]))#true
ビン/ 10月/進2進8進数
print(bin(123))
print(oct(123))
print(hex(123))
DIRは、すべてのメソッドモジュールを示しています
frozensetのタプルに似て設定されていない変更、
s=frozenset({1,2,3})
print(s)
gloabls /地元の人々#リストのすべてのグローバル変数/ローカル変数
print(globals())
print(locals())
捕虜
print(pow(2,2))#4
スライス
s=slice(1,5,2)
lt=[1,2,3,4,5,6]
print(lt[s])#2 4
和
print(sum([1,2,3,4,5,6]))
__import__
stringモジュールを導入することにより、
time=__import__('time')
print(time.time())
例外処理
num=input('请输入数字')
dic={'a':1}
try:
print(dic['b'])#KeyError
1/int(num)
except Exception as e:#万能异常,只要有错误就捕捉
print(e)#错误的描述信息
finally:#无论你报不报错,都会执行这一行
print('finally')
エラーで試した後、次のコードを実行しません
異常なキャプチャは唯一の論理エラーをキャプチャすることができます
プロセス指向プログラミング
手続き型プログラミングに対する
指向プログラミングプロセス:ステップ(関数の関数)によってステップは、関数の出力は、次の関数の入力であります
長所:、コードの独立性を向上させるプロセスが明確に
短所:間違いは、プログラムが直接跳ね返ってみましょう