再帰** **
DEFのCalc(N-):
印刷(N-)
int型(N- / 2)== 0の場合:条件付きの
復帰は、N-
Calcの(int型(N- / 2))を返す
Calcの(10)
、結果10,5を2,1
次過程は、達成することである
:DEF計算値(N)
プリント(N-)
N-INT =(N / 2)
0 N-> IF:
計算値(N)
プリント(N-)
計算値(10)
結果は10である、5 1、0,1,2,5
(実施プロセス、再帰が数回出て行く)
関数内で他の関数を呼び出すことができ、機能自体の内部関数呼び出した場合、
この関数は再帰関数です。
図1に示すように、明確な終了条件有していなければならない
問題の規模縮小している図2に示すように、各再帰、
3、再帰効率が高い(スタックオーバーフロー)ありません
= A」。1. 4. 3. 6 7 8 9 11 17 19 15 25 29 21 22 33 38 69 107'であるである
B = a.split()
C = []
:IにおけるB用
c.append(INT(I))#にデジタル番号リストに文字列のリスト
を印刷(C)
#プリント(LEN(C))
D = [レンジ**(11,100)におけるXのX 2]
プリント(D)
c.extend(D)
E = Cの
印刷( C)
印刷(E)
#プリント(ID(C))
#プリント(ID(E))
DEF binary_search(データセット、find_num):
プリント(データセット)
IF LEN(データセット)> 1:長#リスト
ならfind_num <データセット[-1]:
//長リスト#2ミッド= LEN(データセット)の半分
のDataSet IF [MID] == find_num:
印刷( 'ITを検索'、find_num)
ELIFのDataSet [MID] <find_num:
印刷(「リストの数を取得します。半分の後')
#データセット=データセット[MID + 1:]
リターンbinary_search(データセット[MID + 1:]、find_num)
他:
印刷('「リストの前半で数字を探しています)
#データセット=データセット[:MID ]
戻りbinary_search(データセット[:MID]、find_num)
他:
印刷( 'リスト外の数は、この数)」は、このリストのすべての数よりも大きいです
他:
IFデータセット[0] == find_num:
印刷( '一つだけの要素'、find_num)
他:
印刷( '要素を見つけるために、リストに表示されていない')
binary_search(E、100)
**組み込み関数**
HTTPSを:// book.apeland.cn/media/images/2019/03/21/chapter3-built-in.pngは
引数を建て詳細https://docs.python.org/3/library/functions.html?highlight=built#ascii
A直接変更することはできませんSTRやバイトタイプは、結果のByteArrayの()メソッドは、リストは、あなたが変更することができなった
のデータ構造の種類を決定するためでisinstanceを()
私は助ける標準の各機能の役割を、あなたより良い
腹筋#絶対値が
すべて# BOOL(x)がある場合はTrueを返しイテレート可能が空であるiterable.If内のすべての値xについて真、真を返します。
BOOL真#Return任意の(X-)X-IS、Falseを空のリターンですザ・でiterable.Ifで任意の反復処理可能のための真の。でIF
オブジェクトのASCII #Return AN-ASCIIのみの表現、ASCII( "中国")を返す"は「\ u4e2d \ u56fd ' "
ビン#2戻り整数表記
BOOL#はデータ構造が真であるか偽である判断し、BOOL({} )が空辞書であるためFalseを返す、
のByteArrayのByteArray#バイトに、配列を変更することができる
バイト(「中国」、「GBK」)は#バイト
呼び出し可能#オブジェクトを呼び出すことができるかどうかを決定する
対応する数のCHR番号戻りASCII文字は、例えば、CHR(90)は、「Z-」内部ASCIIを返す
使用、今無視された場合にクラスメソッド#1オブジェクト指向します
無視して、物事を自分自身をインタプリタ#pyコンパイル
コンプレックスを求め、それがより一般的に小さい複雑#を
著作権#役に立たない
クレジット番号役に立たない
オブジェクト指向を使用した場合、今無視して、delattr番号
辞書#は空の辞書の作成
DIR#はオブジェクトを呼び出すことができ返しますプロパティ
divmod#除算の商と剰余を返し、そのようなdivmod(4,2)、結果(2、0)
列挙#後は、D = [「アレックス」、「として、インデックス要素のリストを返すジャック」]は、列挙(D) 与えるために(0、「アレックス」)(図1には、「ジャック」)
評価#文字列は、元のデータ型に変換されたリスト、辞書、設定、タプルの形態であってもよいです。
そのようなEXEC(「印刷( 『hellworld』としてEXEC#フォーマットの符号列、及びデセンスを行う )」)、 その説明文字列と行う意志
出口#出口を番組
リストにフィルタ#、辞書、集合、タプル等イテラブルフィルタ、フィルタ(ラムダX:X> 10、[0,1,23,3,4,4,5,6,67,7]) のすべての値を除外より大きい10
に変換フロート#浮動小数点
フォーマット#役に立たない
非修正のコレクションになるためのfrozensetの#
今無視オブジェクト指向を使用してGETATTR#、
値にグローバル番号を印刷グローバルスコープを
オブジェクト指向を使用する際にはhasattr番号、そして今無視
ハッシュ#hash関数
ヘルプ
六角#を小数16進表現を返し、ヘックス(10)「0xAが」返す
ID番号ビュー・オブジェクトのメモリアドレス
入力
INTを
でisinstance#はデータ構造の種類を決定し、そのような決意がfronzensetされていない、でisinstance(frozensetの)がfalseまたはtrueを返し
今無視し、オブジェクト指向とissubclass番号を
データ構造イテレータに入れITER位、反復子スポーク私は理解して
LEN
リストを
地元の人たちについて
地図地図#(ラムダX:X ** 2、[1,2,3,43,45,5,6、])出力[1、4、9、1849、2025、25、36 ]
最大#最大求めて
無視して、ほとんどの人がいないmemoryview番号を
分#最小化を
次の#発生器が使用されます、それは無視され
、今無視して、オブジェクト指向のオブジェクト#を使用しているとき
8戻っ進数の16進数は、10月#を
開き、
ORDを#は小数点ORD(「A」)はASCII文字に対応して返し、97を返す
印刷を
今すぐ無視するオブジェクト指向のプロパティ#を使用した場合、
終了
範囲を
持つもののreprの#
逆転#反転はのリストになることはできません
ラウンド#4は、分数することができ図5は、10.2を得た(10.15,1)ラウンド、整数に丸め
SETの
オブジェクト指向、今や無視有するSETATTR位
無駄スライス#
ソート済み
オブジェクト指向、今や無視するとstaticmethod位
STRの
SUM番号総和、= [1、4、 9、1849、2025、25、36]、和( A)3949を与えるために
オブジェクト指向を有するスーパー位、今や無視
タプル
タイプ
VARS#するオブジェクトの属性を返し、オブジェクト指向の理解
ジッパー#2以上の缶は、リストを構成し、A = [1、4、 。9、1849、2025、25、36]、B = [ "A"、 "B"、 "C"、 "D"]、
リスト(ZIP(A、B))#結果が得られた
[(1、 '' 。。)、(4、 'B')、(9、 'C')、(1849、 'D')]
**名前空間:名X(X = 1)と、ローカルストレージバインディング関係
の名前空間ある4:LEGB
。1、地元について:関数空間の内部名は、一般の形でローカル変数およびパラメータの関数含む
fun2のFUN1は、でネスト場合、外側のネストされた関数の空間で機能名:2、封入機能を
fun2ため話す、FUN1名前空間を囲んれます。
3、グローバル:現在の宇宙モジュールは、モジュールは、いくつかのPYファイルが、それは()、と言うことであるグローバルグローバル変数に類似していることです。
4、__ builtins__:ビルトインモジュール空間、構築されたまたは組み込み関数の名前空間され、
印刷(DIR(__ builtins__))は、それが含まれている値を表示されることがあります。
異なる変数の異なるスコープを決定変数空間の名前です。
A。グローバルスコープ:グローバル生存、世界的に効果的な
B。ローカルスコープ:一時的な生存、ローカル効果的な
視聴スコープの道:地元の人々についてのグローバル()、()
locals->囲ん機能- >グローバル- > __ builtins__:名前の検索順序の代わりにLEGB
**閉鎖**
DEF表地():
名前=「サークルアブラナ科、セルフ・プログラミング」
()DEFインナー:
印刷(「インナー」、名前)
の内側を返す
インナー、内部のメモリアドレスFUNC =表地()#を返します
(FUNC()#は、内部の実装と同等ですが)
有意クロージャ:関数はオブジェクトを返すだけでなく、関数オブジェクト、関数外
にも、スコープの層に包まれているので、関係なく、ここで、関数呼び出しの、
外側の優先使用は、その範囲を包みます。
**デコレータ知人**(オープン-原則を閉じた)
者通話(初心者)を変更する:
アカウント= {
「is_authenticated」:偽、#ユーザーが真のこの変更を入れてログイン
「ユーザ名」: 'アレックス、#保存されたユーザ情報DBをふり
'パスワード': 'ABC123' #が格納されているユーザ情報DBをふり
}
DEFログイン(FUNC):
アカウント[ 'is_authenticated']は、偽である場合:
ユーザ名= INPUT( 'ユーザー: ')ストリップ()。
パスワードパスワード= INPUT(': ')ストリップ()
IFアカウントのユーザー名== ['ユーザ名'] ==アカウントとパスワード['パスワード']:
印刷('購入可能ログイン... 。 ')
アカウント['
FUNC()#認証は機能の機能を実行し、成功している
他:
印刷(「間違ったユーザー名またはパスワード」)
他:
印刷(「ユーザーがログインしている、によって検証」)
FUNC()#認証は、パフォーマンス関数の実装に成功している
DEFホーム():
印刷( 'ホームページ--- ---')
DEF Ameica():
検証に加えて実行する前に#login()#
印刷( '--- ---- am_area')
DEF日本():
印刷(「---日本と韓国エリア---「)
DEFの河南():
印刷(」-----河南エリア-----「)
ホーム()
ログイン(Ameica)
ログイン(河南省)
の呼び出しモードを変更しない(初心者) :
アカウント= {
「is_authenticated」:偽、#ユーザーが真のこの変更を入れてログイン
「ユーザ名」:「アレックス」、#は、それが、ユーザ情報DBに格納されたふり
「パスワード」:「ABC123」#は、それがユーザーDBに格納されたふり情報
}
DEFログイン(FUNC):
DEFインナー(* argsを、** kwargsから):
アカウント[ 'is_authenticated']がfalseの場合:
ユーザ名= INPUT( 'ユーザー:')。ストリップ()
パスワード= INPUT( 'パスワード' ).strip()
IFアカウントのユーザー名== [ 'ユーザ名'] ==アカウントとパスワード[ 'パスワード']:
印刷( '購入可能ログイン....')
アカウント[ 'is_authenticated'] = Trueの
FUNC(* argsを、** kwargsから)#認証が成功すると、パフォーマンス機能の実装
他:
印刷(「間違ったユーザー名またはパスワード」)
他:
印刷(「ユーザーがログインしている、によって検証」)
FUNC(* argsを、** kwargsから)#認証が成功すると、関数の機能を実行
リターンインナー
DEFホーム():
印刷( ' ')ホームページ--- ---
同等Ameica(Ameica)ログイン@login#=
:DEF Ameica()
を行う前にプラス#login()#認証
--- ---- am_area「)印刷('
DEF日本():
印刷( '--- CJKゾーン---')
#1 @有料
#河南=ログイン(河南省)デコレータ、シンタックスシュガーに相当@login
DEF河南省(vip_level):
vip_level IF> 3。:
印刷(「すべてのシニアゲームがこのエリアで再生されているロックを解除」)
他:
プリント(「----- -----河南省面積VIP」)
#ホーム()
#ログイン(Ameica)
#ログイン(河南省)
Ameicaは、ログイン(Ameicaを= )#内部メモリアドレス
河南=ログイン(河南省)#innerメモリアドレス
ホーム()
Ameica()#内側の()
河南(4)#inner()
再帰、デコレーター、Pythonの共通組み込みメソッド
おすすめ
転載: www.cnblogs.com/ylkx/p/11228892.html
おすすめ
ランキング