1.発電機は何ですか
- コア:発電機の性質はイテレータです
- イテレータPythonはネイティブです
- Builderのプログラマは、イテレータの独自の種類を書き込みます
- 著:
- ベースのライティング機能
- 派生は書きます
def func ():
print("这是一个函数")
return“函数”
func()
def func():
print("这是一个生成器")
yield"生成器"
#func() 生成一个生成器
print(func().__next__) #启动生成器
输出结果:获取到的是一个生成器的
- 関数本体が表示されるの発電機のメモリアドレス、発電機に代わって宣言するために収量-ジェネレータ
取得は、メモリアドレス生成器であります
# 获取到的是一个生成器的内存地址
# <generator object func at 0x00000087C2A10CA8>
# def func():
# msg = input("请输入内容")
# yield msg
# print("这是第二次启动")
# yield "生成器2"
# yield "生成器3"
# yield "生成器4"
#
# g = func()
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
# 执行结果:
# 请输入内容>>>>你好
# 你好
# 这是第二次启动
# 生成器2
# 生成器3
# 生成器4
これは、歩留まりの次に対応している必要があります
# def func():
# lst =[]
# for i in range(100000):
# lst.append(i)
# return lst
# print(func())
# 输出结果:[0~100000]
目的:スペースを節約するために、例:BUN問題
使用シナリオ:
- データファイルまたはコンテナ大量の、発電機を使用することが推奨された場合
反復可能オブジェクト(のpython 3)
- 利点:リスト、タプル、strの時間を節約し、便利な値、柔軟な(独自のプライベートな方法で)
- 短所:メモリ消費量
イテレータ:
- 利点:スペースを節約
- 短所:直接柔軟性のない、時間がかかり、1回限り、不可逆的な使用、値を見ることはできません
ビルダー:
- 長所:省スペース、任意に定義
- 短所:直接値、時間がかかり、一回、非逆行性を見ることはできません
収量との違いを返します。
- 同じポイント
- コンテンツが返されます
- あなたは何度も返すことができますが、唯一のリターンの実装では、より多くを書くこと
- 異なる点
- 戻り値は、関数を終了し、歩留まり中断された発電機
- 得現在の実行位置を記録することができます
- 同じポイント
違い:イテレータを送信することによって違いは何ですか、ビルダーは何ですか
イテレータアドレス
アドレスジェネレータ
# 数据类型 (pyhton3: range() | python2 :xrange()) 都是可迭代对象 __iter__() # 文件句柄是迭代器 __iter__() __next__()
いかなる方法は、発電機を有する送信することで、イテレータを送信することはありません
# def func():
# lst = [1,2,3,45,6]
# lst1 = ["alex","wusir","taibi","baoyuan"]
# yield from lst
# yield from lst1
# g = func()
# print(g)
# 输出结果:<generator object func at 0x0000010DA038CF68>
反復可能なの収量は、一つ一つを返さ
収量は、1回のリターンをイテレート可能オブジェクト
2.式の導出は何ですか
- リスト内包:
- サイクルモード:([ループの変数])
- プリント([I iに対して範囲内(10)])
- フィルタモード:[ループ変数処理条件の処理後]
- プリント([I iに対して範囲(10)であればI> 2])
- プリント([I iに対して範囲(10)であれば、I%2 == 0])
- サイクルモード:([ループの変数])
- コレクション派生:
- 通常のサイクリック:{ループ変数}
- プリント({I iに対して範囲内(10)})
- フィルタモード:{処理条件後のループ変数}処理
- プリント({I iに対して範囲(10)であれば、I%2 == 1})
- 通常のサイクリック:{ループ変数}
- 辞書派生:
- 共通:{キー:ループの値}
- プリント{ "キー":範囲内のiについての "値"(10)}
- フィルタ:{処理後の結合:ループの処理条件の値}
- プリント({I:I + 1 iについての範囲(10)であれば、I%2 == 0})
- 共通:{キー:ループの値}
- Builderの導出(面接が求められます)。
- ノーマルモード:(ループ用変数)
- TU =(範囲(10)におけるI iについて)これは発電機である、覚え
- リサイクル及び処理条件のために処理:(スクリーニングモード変数)
- ノーマルモード:(ループ用変数)
tu = (i for i in range(10)if i > 5)
for i in tu :
print(i)
3.組み込み関数:
evalのコードが実行列のタイプ
exac:コード実行文字列学会の種類
そして、はeval exacの使用を禁止
ハッシュ()関数は、変数のデータ・タイプとデータ型不変とを区別することです
# print(hash("123")) # print(hash(12)) # print(hash(-1)) # print(hash(-10)) # print(hash((2,1))) # dic = {[1,2,3]:2} # print(hash([1,2,3]))
ヘルプ():ビューのヘルプ情報
呼び出し可能():オブジェクトを呼び出すことができるかどうかをチェックし、
# def func(): # print(1) # lst = [1,23,4,] # print(callable(lst)) # 查看对象是否可调用
INT():文字列または整数に
フロート():浮動小数点数に変換
複雑な():複数
ビン():10進数のバイナリ転送
10月():10進数ターン進
進():10進数ターン進
divmod():元祖を含む計算結果除数および被除数、商及び余り
ラウンド():浮動小数点の保持は、ビット数を保持するように設定することができるが、デフォルトの整数を保持します
POW():電力需要は、x ** Y(Xの三つのパラメータの結果**はYモジュロ三番目のパラメータ)
バイト():異なる符号化推奨エンコード切り替えます
ORDは():元素によってコードされるエピトープの現在位置を取得します。
CHR():要素によって対応するビット数のテーブルを見つけます
repr():(プログラマのための)元の生態データを見ます
すべての():コンテナの要約は要素が真であるか否かを判断し、真を返します
任意の():解析コンテナ要素が真を持って、それが真であります