フォーマッタ再帰イテレータFファーストクラスのオブジェクトや関数名を使用します

1.ファーストクラスのオブジェクトや関数名を使用します

関数名は、値として割り当てることができます

def func():
    print(1)
print(func)
a = func
a()                   # <function func at 0x000001A24F8E9B70>     1

関数名は、コンテナに格納された要素として使用することができます

def func():
    print(1)
lst = [func,func,func]
for i in lst:
    i()                 # 1 1 1

関数名は、別の関数の引数として使用することができます

def func(f):
    f()
def foo():
    print(123)
func(foo)                         # 123

これは、関数名の戻り値として使用することができます

def func():
    def foo():
        print(123)
    return foo
a = func()
a()                                # 123

2.Fフォーマット

Fフォーマットされた役割

充填文字列

s = f"你好{'常鑫'}"
s1 = F"{你好'常鑫'}"

可変充填

s = "常鑫"
S1 = f"你还是挺好的{s}"
print(s1)

充填式

s1 = "{35+15}"
print(s1)

表現でいっぱい

a = 10
b = 20
s1 = f"{a if a>b else b}"
print(s1)

中括弧でいっぱい

s1 = f"{{{{{{'常鑫'}}}}}}"
print(s1)            # {{{'常鑫'}}}

3.イテレータ

イテレータ、ツール

反復可能オブジェクト:

list,dict,str,set,tuple -- 可迭代对象 使用灵活

反復かどうかをチェックします

一つの方法:

list.__iter__()

第二の方法:

ソースを表示

三つの方法:

print(dir(list))

限り公式声明は__iterを持っているよう__()メソッドは、反復可能です

長所と短所

1.メリット

柔軟1.1

1.2直視値

2.欠点

2.1は、メモリを消費します

イテレータ

限り公式声明は、__iter __()メソッド__next __()メソッドを持っているとしてイテレータです

句柄"f"是个迭代器
f = open("xxxx","w")
f.__iter__()
f.__next__()

lst = [1,2,3,4,6]
new_list = lst.__iter__()  #将可迭代对象转换成迭代器
new_list.__iter__()
new_list.__next__()

s = "123434"
new_s = s.__iter__()       #将可迭代对象转换成迭代器
print(new_s)
new_s.__iter__()
new_s.__next__()

new_s = s.__iter__()       #将可迭代对象转换成迭代器
print(new_s)
new_s.__iter__()
print(new_s.__next__())
print(new_s.__next__())
print(new_s.__next__())

s = "12343"               # 更改版for的本质
s = [1,2,3,4,5,7]
count = len(s)
new_s = s.__iter__()
while count:
    print(new_s.__next__())
    count -= 1

s = "12345"
new_s = s.__iter__()
while True:
    try:
        print(new_s.__next__())   # for真实本质
    except StopIteration:
        break
        
# except Exception:
#     print("我是万能的!")
#     break

4.再帰

定義

1.通話自体を(自分自身を呼び出すために継続) - デッド再帰

2.明確な終了条件があります

会う上記の二つが有効な再帰的です

配信:実行条件は、最後まで満たされています

戻る:バックオフ状態の終わりの初めから、

公式声明:1000の最大レベル、実際のテスト997分の998

示例:      猜3
def age(n): # 1,2,3
    if n == 3:
        return "猜对了"
    else:
        return age(n+1)
print(age(1))

分解

def age2(n):
    if n == 3:
        return "猜对了"

def age1(n):
    if n == 3:
        return "猜对了"
    else:
        age2(n+1)

def age(n):
    if n == 3:
        return "猜对了"
    else:
        age1(n+1)
age(1)

概要

反復可能オブジェクト:
利点:柔軟で、あなたは直接の値を参照することができ
、合計メモリ、反復のない値:欠点を

イテレータ:
利点:メモリを節約する、不活性機構
短所:柔軟ではないが、操作が複雑で、直接の要素を見ることができません

反復子特性:
(NOランアウト)1.使い捨て
(逆ではない)2逆行することができない
不活性機構3(メモリを節約)

反復可能オブジェクトは何である:
多くの独自のメソッドがあり、__iter __を持つ()メソッドは、反復可能です

イテレータは何である:
(__ __iterあり)と__next __()メソッドは、イテレータです

反復子を使用する場合:データの容器に大量に反復子を使用する場合場合

おすすめ

転載: www.cnblogs.com/beichen123/p/11240848.html