一段階day 11-01モジュール、反復器、ジェネレータ、ファイル操作
5153 ワード
一、モジュール
1、モジュールとは
Pythonのpyファイルはモジュールです.importまたはfrom-importによって、あるモジュールで別のモジュールの内容を使用することができる.方法:importモジュール名--』はモジュール内のすべての内容をインポートし、現在のモジュールでモジュール内のすべてのグローバル変数を「モジュール名.」で使用することができる.fromモジュール名import変数1,変数2,...」はモジュール内のすべての内容をインポートしますが、importの後ろの変数しか使用できません.fromモジュール名import*--』はモジュール内のすべての内容をインポートし、すべてのグローバル変数を直接使用することができます.コードがimportに実行されると、importの後ろのモジュールの内容が一度実行されます.
===============
2、モジュール名の変更
importモジュール名1 asモジュールの新しい名前--』はモジュール名1にモジュールの新しい名前で命名したが、モジュールの新しい名前は現在のモジュールでしか役に立たず、本当に名前を変えなかった.fromモジュール名import変数名1 as変数の新しい名前、変数名2 as変数の新しい名前...--』はモジュールの一部の変数に名前を変更したが、変数の新しい名前は現在のモジュールでしか役に立たず、本当に名前を変更しなかった.
3、import
1つのモジュールは、importを何回実行しても1回だけインポートされます.これにより、インポートモジュールが何度も実行されることを防止することができる.
4、選択的なインポート(インポートを阻止)
if _ _ name_ _ == '_ _ main_ _' : ——》固定書き方は他のモジュールにインポートされて実行されるコードをここに書きたくない(インデント注意)
5、いつモジュールを使うか
同じ機能を持つ関数とデータをカプセル化し、
二、反復器
1、反復器とは
反復器はPythonのコンテナクラスのデータ型です.シーケンスに属し、具体的な字面量はありません(つまり、一つ一つ取り出して見ないと、この反復器にどれだけの要素があるか、要素が何なのかは永遠に分かりません).他のシーケンスを反復器に変換できます.生成構文:iter(シーケンス);
2、反復器の特徴
a、nextメソッドで1つ1つしか取得できない反復器の要素;b、1つの要素を取り出した後、反復器にはこの要素は存在しません.取り出し構文:next(反復器);反復器.next_ _ ()
三、生成式と生成器
1、ジェネレータ
ジェネレータは反復器ですが、反復器は必ずしも生成器ではありません.生成式はジェネレータの特殊な形式である:(変数for変数inシーケンス)
2、ジェネレータとは、関数体にyieldキーワードがある関数です
print('============')一般関数
ビルダー
呼び出し関数は関数体を実行したり、戻り値を取得したりするのではなく、ジェネレータであることを示し、ジェネレータアドレスを返します.
この関数はジェネレータになりました
nextでジェネレータの要素を取得すると、ジェネレータに対応する関数の関数体を実行し、yieldに遭遇するまで実行し、yieldの後ろの値(デフォルト値None)を戻り値(要素)として保存し、現在の終了位置を保存し、次にジェネレータ要素を取得すると前回の終了位置に続く.
例:
四、ファイル操作
ローカルファイルを使用して、データの永続化(ローカライズ)--』データベースファイル、txtファイル、jsonファイル、plis他、バイナリファイルを作成します.
1、ファイル操作——読み書き操作
ファイル内のすべてのファイルにデータを書き込むプロセス:ファイルを開く--』操作(読み取り、書き込み、保存)ファイル--』ファイルを閉じる
2、ファイルを開く、閉じる
ファイルを開く:open(file,mode=“r”,encoding=utf-8)(1)file——)ファイルパス、開くべきファイルを決定する;絶対パス(使用を推奨しない)相対パス:相対パスは現在のpyファイルに対応するフォルダです.フォーマット:./相対パス相対パスは、現在のpyファイルに対応するフォルダの上位フォルダです.フォーマット:../相対パス相対パスは、現在のpyファイルに対応するフォルダの上位フォルダの上位フォルダです.フォーマット:.../相対パス例:open('./text.txt',“r”,encoding='utf-8')(2)mode——』ファイルの開き方(異なる操作に対応して異なる開き方)「r」——」は読み取り専用でファイルを開き、テキスト「rb/br」——」は読み取り操作、読み出したデータはバイナリ形式のデータ「w」——」は書き込み形式でファイル「wb/bw」——」を開き書き込み操作、ファイル「a」——」へのバイナリデータの書き込み操作、追加(3)encoding——」テキスト符号化方式utf—8:ほとんどすべての言語gbkをサポート:英語(4)open関数の戻り値のみをサポート、開かれたファイルオブジェクト(5)ファイルを閉じる:ファイル.close()例えばtext.close()
3、操作ファイル
ファイルを開く
ファイルの内容を読む
ファイル.read()——』は、ファイルの読み書き位置からファイルの終了まで、読み返した結果を返します.ファイル.readline()——』は1行読みます.ファイル.readline()は、ファイル内の各行の内容であるリストを返します.
ファイルの書き込み
'w'——'文字列をファイルに書き込み、ファイルの元の内容を完全に上書きします.'wb/bw'——』はバイナリをファイルに書き込み、ファイルの元の内容を完全に上書きします.
1、モジュールとは
Pythonのpyファイルはモジュールです.importまたはfrom-importによって、あるモジュールで別のモジュールの内容を使用することができる.方法:importモジュール名--』はモジュール内のすべての内容をインポートし、現在のモジュールでモジュール内のすべてのグローバル変数を「モジュール名.」で使用することができる.fromモジュール名import変数1,変数2,...」はモジュール内のすべての内容をインポートしますが、importの後ろの変数しか使用できません.fromモジュール名import*--』はモジュール内のすべての内容をインポートし、すべてのグローバル変数を直接使用することができます.コードがimportに実行されると、importの後ろのモジュールの内容が一度実行されます.
test1 :
print(__name__)
test=100
print(' ',test)
def func1():
print('good morning,everone')
func1()
print(func1())
===============
import test1
__test1__ #print(__name__)
# 100 #print(' ',test)
good morning,everone #print('good morning,everone')
good morning,everone #func1()
None #print(func1())
##### test1
test1.func1() #good morning,everone
##### test1.func1
2、モジュール名の変更
importモジュール名1 asモジュールの新しい名前--』はモジュール名1にモジュールの新しい名前で命名したが、モジュールの新しい名前は現在のモジュールでしか役に立たず、本当に名前を変えなかった.fromモジュール名import変数名1 as変数の新しい名前、変数名2 as変数の新しい名前...--』はモジュールの一部の変数に名前を変更したが、変数の新しい名前は現在のモジュールでしか役に立たず、本当に名前を変更しなかった.
import test1 as jsj
print(jsj.test) #100
from test1 import func1 as hanshu1
print(hanshu1()) # test1.func1()
3、import
1つのモジュールは、importを何回実行しても1回だけインポートされます.これにより、インポートモジュールが何度も実行されることを防止することができる.
4、選択的なインポート(インポートを阻止)
if _ _ name_ _ == '_ _ main_ _' : ——》固定書き方は他のモジュールにインポートされて実行されるコードをここに書きたくない(インデント注意)
5、いつモジュールを使うか
同じ機能を持つ関数とデータをカプセル化し、
二、反復器
1、反復器とは
反復器はPythonのコンテナクラスのデータ型です.シーケンスに属し、具体的な字面量はありません(つまり、一つ一つ取り出して見ないと、この反復器にどれだけの要素があるか、要素が何なのかは永遠に分かりません).他のシーケンスを反復器に変換できます.生成構文:iter(シーケンス);
2、反復器の特徴
a、nextメソッドで1つ1つしか取得できない反復器の要素;b、1つの要素を取り出した後、反復器にはこの要素は存在しません.取り出し構文:next(反復器);反復器.next_ _ ()
str1='123456abcde'
iter1=iter(str1)
print(iter1) #
print(next(iter1)) #1
print(next(iter1)) #2
print(next(iter1)) #3
print(next(iter1)) #4
print(next(iter1)) #5
print(iter1._ _ next_ _ ()) #6
:iter ???
三、生成式と生成器
1、ジェネレータ
ジェネレータは反復器ですが、反復器は必ずしも生成器ではありません.生成式はジェネレータの特殊な形式である:(変数for変数inシーケンス)
ge1=(x for x in range(10))
print(ge1) # at 0x01DC6E40>
next(ge1) #0 0 ,
print(next(ge1)) #1
print('======')
for item in ge1:
print(item) #23456789
2、ジェネレータとは、関数体にyieldキーワードがある関数です
print('============')一般関数
def func1(n):
for x in range(1,n+1):
print(x) #1 2 3
print(func1(3)) #None
print('========')
ビルダー
def func2(n):
for x in range(1, n + 1):
print(x)
yield
print(func2(5)) #
呼び出し関数は関数体を実行したり、戻り値を取得したりするのではなく、ジェネレータであることを示し、ジェネレータアドレスを返します.
この関数はジェネレータになりました
ge2=func2(2)
next(ge2) # 1 2
ge3=func2(3)
print(next(ge3)) #None yield None
nextでジェネレータの要素を取得すると、ジェネレータに対応する関数の関数体を実行し、yieldに遭遇するまで実行し、yieldの後ろの値(デフォルト値None)を戻り値(要素)として保存し、現在の終了位置を保存し、次にジェネレータ要素を取得すると前回の終了位置に続く.
例:
def func2(n):
for x in range(1, n + 1):
print(x)
yield x
ge4=func2(4)
print(next(ge4)) x=1
print(next(ge4)) x=2 , x=1 ,
print(next(ge4)) x=3 , x=1 2 ,
'''
x=1 ,print(1),yield 1,
x=2 ,print(2),yield 2,
x=3 ,print(3),yield 3,
x=4
四、ファイル操作
ローカルファイルを使用して、データの永続化(ローカライズ)--』データベースファイル、txtファイル、jsonファイル、plis他、バイナリファイルを作成します.
1、ファイル操作——読み書き操作
ファイル内のすべてのファイルにデータを書き込むプロセス:ファイルを開く--』操作(読み取り、書き込み、保存)ファイル--』ファイルを閉じる
2、ファイルを開く、閉じる
ファイルを開く:open(file,mode=“r”,encoding=utf-8)(1)file——)ファイルパス、開くべきファイルを決定する;絶対パス(使用を推奨しない)相対パス:相対パスは現在のpyファイルに対応するフォルダです.フォーマット:./相対パス相対パスは、現在のpyファイルに対応するフォルダの上位フォルダです.フォーマット:../相対パス相対パスは、現在のpyファイルに対応するフォルダの上位フォルダの上位フォルダです.フォーマット:.../相対パス例:open('./text.txt',“r”,encoding='utf-8')(2)mode——』ファイルの開き方(異なる操作に対応して異なる開き方)「r」——」は読み取り専用でファイルを開き、テキスト「rb/br」——」は読み取り操作、読み出したデータはバイナリ形式のデータ「w」——」は書き込み形式でファイル「wb/bw」——」を開き書き込み操作、ファイル「a」——」へのバイナリデータの書き込み操作、追加(3)encoding——」テキスト符号化方式utf—8:ほとんどすべての言語gbkをサポート:英語(4)open関数の戻り値のみをサポート、開かれたファイルオブジェクト(5)ファイルを閉じる:ファイル.close()例えばtext.close()
3、操作ファイル
ファイルを開く
f1=open('./text.txt',"r",encoding='utf-8')
ファイルの内容を読む
ファイル.read()——』は、ファイルの読み書き位置からファイルの終了まで、読み返した結果を返します.ファイル.readline()——』は1行読みます.ファイル.readline()は、ファイル内の各行の内容であるリストを返します.
content=f1.read()
print(type(content),content) # wahaha
f1.close()
ファイルの書き込み
f2=open("./text.txt","w",encoding="utf-8")
'w'——'文字列をファイルに書き込み、ファイルの元の内容を完全に上書きします.'wb/bw'——』はバイナリをファイルに書き込み、ファイルの元の内容を完全に上書きします.
f2.write(' ') # 1
f2.write(content+" 2") # 1 2
f2.write("wahaha")# 1 2wahaha