二つの方法で変更されたファイル
一つの方法:テキストエディタは、このように使用されています
アイデアの実現:ファイルの内容は全て発行一度にメモリに読み込まれ、その後、変更はメモリ内に完了した後、原稿カバーに書き戻し
利点:ドキュメントに同じデータのコピーを1つだけ修正する過程で
短所:あまりにも多くのメモリを占有します
Fとして(モード= 'RT'、= 'UTF-8' コード 'c.txt')オープン有します。
RES = f.read()#時間に
データ= res.replace( 'アレックス'、 'DSB')
印刷(データ)
F1オープン( 'c.txt'、モード= '質量'、= 'UTF-8' をコードする)を有します。
f1.write(データ)
第二の方法:
アイデアの実現:元のファイルの読み込みを開くために、一時ファイルを開くには、書き込み方法、ライン線で一時ファイルに書き込まれ、元の文書の内容を読むために...修正した後、元のファイルを削除し、一時ファイルのオリジナルの名前を変更ファイル名
メリット:あまりにも多くのメモリを取ることはありません
欠点:ファイルの更新プロセスは、2つの同じデータを保存
輸入OS
オープンと( 'c.txt'、モード= 'RT'、= 'UTF-8' をコードする)Fとして、\
オープン( 'c.txt.swap'、モード= '質量'、= 'UTF-8' をコードする)F1と:
Fでの行のための:
f1.write(line.replace( 'アレックス'、 'DSB'))
os.remove( 'c.txt')
os.rename( 'c.txt.swap'、 'c.txt')
機能
1.なぜあなたは関数を使用してください
(1)組織構造が明確ではないが、貧しい可読性
(2)冗長コード
(3)保守性、乏しいスケーラビリティ
2.機能とは何ですか
機能は、ツールが機能を有していると等価です
使用関数は、1つの原則に従う必要があります。定義するために呼び出した後、
機能を使用する方法3、
(I)を定義
定義された構文:
DEF関数名(パラメータ1、パラメータ2、...):
「」「」「ドキュメント記述します」
関数本体
返却値
機能なしパラメータ:Aの形で
DEF関数名():
関数本体
二つの形式:関数パラメータ付き
関数名DEF(X、Y):
プリント(x、y)は
三つの形式:空関数、関数本体のパスに
DEF FUNC(X、Y):
パス
*定義関数のことが起こります
⑴アプリケーションのメモリ空間は、関数本体のコードを保存します
⑵上記メモリアドレスバインディング関数名
⑶定義された関数は、関数本体のコードを実行していないが、関数の構文の体を検出します
*物事関数呼び出しが発生しました
関数名で関数のメモリアドレスを見つける⑴
⑵その後、関数本体のコードの実行をトリガその括弧内に追加します
(B)関数を呼び出します
1、文の形で:ちょうどカッコ内の関数を呼び出します
インタラクティブ()
(1,2)を追加
フォームでの2の式:
DEF(x、y)を追加します。
RES = X + Y#数式
RES =(1,2)#割り当て式を追加
図3に示すように、関数呼び出しパラメータとして使用することができます
RES =追加(ADD(1,2)、10)#戻り値ときにパラメータ
印刷(RES)
(III)関数は、値を返します
コードはすぐに返すように実行された後の戻りが符号の最後の関数であり、それは身体の関数であり、
ファンクション終了し、両方のこの戻りの結果として実行され、戻り値:
1、Noneを返します:in vivoでのノーリターン機能を
リターン
戻りなし
2、戻り値:戻り値
デフ)(FUNC:
復帰10
RES = FUNC()
印刷(RES)#10
図3に示すように、戻り値の複数:カンマで区切られた複数の値は、リターンタプルに戻すことができます
デフ)(FUNC:
リターン10、 'AA'、[1、2]
RES = FUNC()
プリント(RES、タイプ(RES))#(10、 'AA'、[1、2])<クラスのタプル '>