ビルダー - エントリから3のPythonの自己閉鎖へ

1.発電機は何ですか

  1. コア:発電機の性質はイテレータです
    1. イテレータPythonはネイティブです
    2. Builderのプログラマは、イテレータの独自の種類を書き込みます
  2. 著:
    1. ベースのライティング機能
    2. 派生は書きます
def func ():
    print("这是一个函数")
    return“函数”
func()
def func():
    print("这是一个生成器")
    yield"生成器"
#func()     生成一个生成器
print(func().__next__)  #启动生成器
输出结果:获取到的是一个生成器的

  1. 関数本体が表示されるの発電機のメモリアドレス、発電機に代わって宣言するために収量-ジェネレータ
    取得は、メモリアドレス生成器であります
# 获取到的是一个生成器的内存地址
# <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]
  1. 目的:スペースを節約するために、例:BUN問題

  2. 使用シナリオ:

    1. データファイルまたはコンテナ大量の、発電機を使用することが推奨された場合
  3. 反復可能オブジェクト(のpython 3)

    • 利点:リスト、タプル、strの時間を節約し、便利な値、柔軟な(独自のプライベートな方法で)
    • 短所:メモリ消費量
  4. イテレータ:

    • 利点:スペースを節約
    • 短所:直接柔軟性のない、時間がかかり、1回限り、不可逆的な使用、値を見ることはできません
  5. ビルダー:

    • 長所:省スペース、任意に定義
    • 短所:直接値、時間がかかり、一回、非逆行性を見ることはできません
  6. 収量との違いを返します。

    1. 同じポイント
      • コンテンツが返されます
      • あなたは何度も返すことができますが、唯一のリターンの実装では、より多くを書くこと
    2. 異なる点
      • 戻り値は、関数を終了し、歩留まり中断された発電機
      • 得現在の実行位置を記録することができます
  7. 違い:イテレータを送信することによって違いは何ですか、ビルダーは何ですか

    • イテレータアドレス

    • アドレスジェネレータ

      # 数据类型 (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. 反復可能なの収量は、一つ一つを返さ

    収量は、1回のリターンをイテレート可能オブジェクト

2.式の導出は何ですか

  1. リスト内包:
    1. サイクルモード:([ループの変数])
      • プリント([I iに対して範囲内(10)])
    2. フィルタモード:[ループ変数処理条件の処理後]
      • プリント([I iに対して範囲(10)であればI> 2])
      • プリント([I iに対して範囲(10)であれば、I%2 == 0])
  2. コレクション派生:
    1. 通常のサイクリック:{ループ変数}
      • プリント({I iに対して範囲内(10)})
    2. フィルタモード:{処理条件後のループ変数}処理
      • プリント({I iに対して範囲(10)であれば、I%2 == 1})
  3. 辞書派生:
    1. 共通:{キー:ループの値}
      • プリント{ "キー":範囲内のiについての "値"(10)}
    2. フィルタ:{処理後の結合:ループの処理条件の値}
      • プリント({I:I + 1 iについての範囲(10)であれば、I%2 == 0})
  4. Builderの導出(面接が求められます)。
    1. ノーマルモード:(ループ用変数)
      • TU =(範囲(10)におけるI iについて)これは発電機である、覚え
    2. リサイクル及び処理条件のために処理:(スクリーニングモード変数)
tu = (i for i in range(10)if  i > 5)
    for i in tu :                   
        print(i)

3.組み込み関数:

  1. evalのコードが実行列のタイプ

  2. exac:コード実行文字列学会の種類

    そして、はeval exacの使用を禁止

  3. ハッシュ()関数は、変数のデータ・タイプとデータ型不変とを区別することです

    # 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]))
    
  4. ヘルプ():ビューのヘルプ情報

  5. 呼び出し可能():オブジェクトを呼び出すことができるかどうかをチェックし、

    # def func():
    #     print(1)
    # lst = [1,23,4,]
    # print(callable(lst))   # 查看对象是否可调用
    
  6. INT():文字列または整数に

  7. フロート():浮動小数点数に変換

  8. 複雑な():複数

  9. ビン():10進数のバイナリ転送

  10. 10月():10進数ターン進

  11. 進():10進数ターン進

  12. divmod():元祖を含む計算結果除数および被除数、商及び余り

  13. ラウンド():浮動小数点の保持は、ビット数を保持するように設定することができるが、デフォルトの整数を保持します

  14. POW():電力需要は、x ** Y(Xの三つのパラメータの結果**はYモジュロ三番目のパラメータ)

  15. バイト():異なる符号化推奨エンコード切り替えます

  16. ORDは():元素によってコードされるエピトープの現在位置を取得します。

  17. CHR():要素によって対応するビット数のテーブルを見つけます

  18. repr():(プログラマのための)元の生態データを見ます

  19. すべての():コンテナの要約は要素が真であるか否かを判断し、真を返します

  20. 任意の():解析コンテナ要素が真を持って、それが真であります

おすすめ

転載: www.cnblogs.com/heyulong1214/p/11527911.html