目次
コレクションは順序付けされておらず、添字をサポートしていません
1. 収集
{データ,データ,...} を設定します
コレクション内の型は不変型です
コレクションは変更可能です
コレクションは順序付けされておらず、添字をサポートしていません
収集データは繰り返されません
my_set={1,2.3,4.56,'hell0',(34,547,)}
print(my_set)
# remove()
my_set.remove(1)
print(my_set)
# pop()
a=my_set.pop()
print(a)
print(my_set)
# add()
my_set.add(45)
print(my_set)
# clear()
my_set.clear()
print(my_set)
# 去重
my_list=[1,2,564,76,7,7,84,1]
print(my_list)
my_list=list(set(my_list))
print(my_list)
2. リストの補足
1. リストソートのキー
# 数据类型保持一致
my_list=[1,3,5,7,9,45]
my_list.sort()
print(my_list)
list1=[{'name':'d','age':19},
{'name':'b.txt','age':16},
{'name':'a','age':16},
{'name':'c','age':20}]
# 列表中的数据为字典时,需指定排序规则
list1.sort(key=lambda x:x['name'])
print(list1)
list1.sort(key=lambda x:x['age'])
print(list1)
list1.sort(key=lambda x:(x['age'],x['name']))
print(list1)
list2=['a','b.txt','sfa','defgf','fhdk']
list2.sort()
print(list2)
list2.sort(key=lambda x:len(x))
print(list2)
2. リストの内包理解
# 快速生成列表、字典
# 1.txt、变量=[生成数据的规则 for 临时变量 in xxx]
my_list1=[i for i in range(5)]
my_list2=['hello' for i in range(5)]
my_list3=[f'num:{i}' for i in range(5)]
print(my_list1)
print(my_list2)
print(my_list3)
# 2、变量=[生成数据的规则 for 临时变量 in xxx if xxx]
# if 成立才生成
my_list4=[f'num:{i}' for i in range(9) if i%2==0]
print(my_list4)
# 3、变量=[生成数据的规则 for 临时变量 in xxx for j in xxx]
# 第二个for循环循环一次,生成一个数据
my_list5=[f'num:{i,j}' for i in range(3) for j in range(3)]
print(my_list5)
# 字典推导式
# 变量={生成字典的规则 for 临时变量 in xxx]
my_dict={f'name{i}':i for i in range(3)}
print(my_dict)
my_dict={f'name{i}{j}':j for i in range(3) for j in range(3)}
print(my_dict)
3. 書類
1. 基礎知識
ファイル機能: データを永続的に保持します。 ハードディスクに保存されるファイルの形式はバイナリです。 操作: 開く --> 読み取り --> 1.txt を操作し、ファイルを開いてハードディスクからメモリに保存します 。open(file , moder='r', encoding ='') file: ファイル名 moder: ファイルのオープン方法 r() read w(write) a(append) append エンコーディング: エンコード方法 utf-8 gbk 2. 読み取りと書き込み read() 3. close close() してメモリに保存します 3 つの主要なファイルは、ファイルを開く open 関数を使用してハードディスクに同期されます エンコード方式が指定されていない場合、Windows はデフォルトで gbk write 関数を使用して書き込みます。
2. ファイルの 3 つの方法
# r方式 文件不存在时,报错;
f=open('a.txt','r',encoding='utf-8')
buf=f.read()
print(buf)
f.close()
# w方式 文件不存在时,自动创建;文件存在会覆盖清空源文件
f=open('a.txt','w',encoding='utf-8')
f.write('hello world\n')
f.write('hello python\n')
f.write('你好')
f.close()
# a方式 文件末尾写入内容 文件不存在时,自动创建
f=open('a.txt','a',encoding='utf-8')
f.write('她她她\n')
f.write('他他他\n')
f.close()
3. ファイル読み取り操作
文件的读操作
buf=f.read(3) # 读三个字符
buf=f.read(3) # 再次读取时,如果有第二行,也会读取换行符\n
文件的读操作--按行读取
buf=f.readline() #读取一行 读取一次后,下次读取新内容
buf=f.readlines() #读取所有行 返回值为列表,一项为一个字符串
4. 空白文字を削除する
f=open('a.txt','r',encoding='utf-8')
buf=f.readlines()
print(buf)
# 去除空白字符 列表推导
buf=[i.strip() for i in buf]
print(buf)
f.close()
5.大きなファイルを読み取る
# 有多行
f=open('a.txt','r',encoding='utf-8')
while True:
buf=f.readline()
if buf:
print(buf,end='')
else:
# 文件读完
break
f.close()
# 没有多行
f=open('b.txt', 'r', encoding='utf-8')
while True:
buf=f.read(5)
if buf:
print(buf,end='')
else:
# 文件读完
break
f.close()
6. ストレージの概念
コンピュータ内のサイズ 16 進数 : 2 進数 8 進数 10 進数 16 進数 最小 単位: bit (ビット) バイト : 基本記憶単位バイト 1byte=8 bit 1KB=1024 byte 1MB=1024KB 1GB=1024MB 1TB=1024GB 100Mbit 12.5MB/s 200Mbit 25MB/s
7. ファイルの分類
文本文件 txt py 能使用记事本打开的文件
文本文件可以使用文本、二进制文件打开
二进制文件只是使用二进制方式打开 rb vb ab
二进制文件 mp3 mp4 rmvb 等
f=open('c.txt','wb')
f.write('你好'.encode()) # 字符串转换为二进制
f.close()
f=open('c.txt','rb')
buf=f.read()
print(buf)
print(buf.decode())
f.close()
8. ファイルのバックアップ
1、用只读方式打开文件
2、读取
3、关闭
4、只写方式打开新文件
5、将第二部内容写入新文件
6、关闭新文件
file_name=input('请输入要备份的文件名')
f=open('file_name','rb')
buf=f.read()
f.close()
index=file_name.rfind('.')
new_filename=file_name[:index]+'[备份]'+file_name[index:]
f_w=open('new_filename','wb')
f_w.write(buf) # 字符串转换为二进制
f.close()
9. ファイル関連の操作
import os
# 文件重命名
os.rename(源文件路径名,新文件路径名)
# 删除文件
os.remove(文件路径名)
# 创建文件夹
os.mkdir(目录路径名)
# 获取当前目录
os.getcwd()
# 改变默认目录
os.chdir('../')
# 获取目录列表
os.listdir('./')
# 删除文件夹
os.rmdir(目录名)
'''
'''
import os
# 批量创建文件名
def create_files():
os.chdir('test')
for i in range(8):
file_name='file_'+str(i)+'.txt'
f=open(file_name,'w')
f.close()
os.chdir('../')
# 批量修改文件名
def modify_filename():
os.chdir('test')
buf_list=os.listdir()
for file in buf_list:
new_file='ly'+file
os.rename(file,new_file)
os.chdir('../')
# 批量删除文件名局部
def re_filename():
os.chdir('test')
buf_list=os.listdir()
for file in buf_list:
num=len('ly')
new_file=file[num:]
os.rename(file,new_file)
os.chdir('../')
re_filename()
'''
4. 文書関連の研修
1. ファイル操作
トピックス1 【強化トレーニング】
質問幹
ファイル操作を使用して、movie.txt
次の内容をファイルに書き込みます。
功夫,周星驰
一出好戏,黄渤
我不是药神,徐峥
トレーニングターゲット
-
ファイル書き込み操作
トレーニングのヒント
-
ファイルにデータを書き込む方法
-
書き込まれたデータをラップするために使用される方法
参考プラン
-
ファイル
open()
を開く"w"
-
ファイルに書き込む
write()
-
改行の使用
"\\n"
-
3 つの引用符の形式を使用することもでき
""" """
、コード内に直接改行を記述することもできます。
ステップ
-
ファイルを開き、オブジェクトを作成する
-
情報を書き込む
-
ファイルを閉じる
参考回答
-
最初の方法
# 因为编码格式的问题,我们为了防止出现乱码,需要在这里设置encoding="utf8"
f = open("movie.txt","w", encoding="utf8")
f.write("功夫,周星驰\\n一出好戏,黄渤\\n我不是药神,徐峥")
f.close()
-
2番目の方法
f = open("movie.txt","w",encoding="utf8")
f.write("""功夫,周星驰
一出好戏,黄渤
我不是药神,徐峥""")
f.close()
トピックス2 【トレーニングの強化】
質問幹
最初の質問で作成したファイルを開いて内容を読んでください。要件は次のとおりです。
-
一気に読む
-
一度に1行ずつ読んでください
トレーニングターゲット
-
ファイル読み取り操作
トレーニングのヒント
-
ファイルの内容を読み取るにはどうすればよいですか?
-
コンテンツ全体を読む方法はありますか?
-
一度に1行ずつ読む方法はありますか?
参考プラン
-
ファイルを開く open、「r」で開く
-
ファイルの読み取り read()
-
行を読み取る readline()
-
すべての行を読み取ります readline()
ステップ
-
ファイルを開きます(ファイルを開くには r メソッドを使用します。書き込みをしない場合、デフォルトでは読み取り専用モードで開きます)
-
情報を読む
-
ファイルを閉じる (操作のたびにファイルを閉じる)
参考回答
-
最初の方法
# 注意编码格式问题 f = open("movie.txt",'r',encoding="utf8") content = f.read() f.close() print(content)
-
2番目の方法
f = open("movie.txt",'r',encoding="utf8") content = f.readlines() f.close() # 读取后的内容是一个列表,注意列表中的数据中有一个"\\n"。如果使用需要处理 print(content)
-
第三の道
f = open("movie.txt",'r',encoding="utf8") # 因为readline 每次读取一行,需要我们使用循环读取 while True: content = f.readline() # 当我们读取的内容是空字符的时候跳出循环 if content == "": # if content: break print(content) f.close()
トピックス3 【トレーニングの強化】
質問幹
-
OSモジュールを使用して「dark horse」という名前のフォルダーを作成します。
-
dark horse フォルダーが現在配置されているディレクトリを取得します。
-
現在のディレクトリのリストを取得する
-
ファイル操作パスの変更
-
ダークホースフォルダーを削除する
トレーニングターゲット
-
OSモジュールの使用
トレーニングのヒント
OSモジュールの基本コマンドの使い方
参考プラン
ファイルmkdirを作成する
カレントディレクトリgetcwd
現在のディレクトリのリスト listdir
ファイルchdirの操作パスを変更する
フォルダーrmdirを削除
ステップ
参考回答
import os
# 01
os.mkdir("黑马")
# 02
os.getcwd()
# 03
os.listdir("../../../../../Desktop/")
# 04
os.chdir("../../../../../")
# 05
os.rmdir("黑马")
議題4【総合研修1】
質問幹
2 つのファイル間の相互バックアップを完了するコードを作成します。
-
ユーザーにファイル名の入力を求めます。例: gailun.txt
-
ユーザーが入力した名前でファイルを作成します
-
ファイルを開いて次の情報を書き込みます
カンフー、スティーブン・チョウ
良いショーだった、黄波
私は医学の神ではありません、徐正
-
入力データを端末に出力します
-
フォルダー内に gailun.txt ファイルのコピーを作成します。
-
gailun.txt ファイル内のデータを Gailun copy.txt ファイルに書き込みます
-
ファイルを開いてファイルの内容を表示します
トレーニングターゲット
-
ファイルの包括的な使用
トレーニングのヒント
-
操作のたびにファイルを閉じる必要がある
-
Windowsシステムのエンコード形式の問題に注意してください
-
新しいファイル名を自分で再定義する必要があります
参考プラン
ステップ
-
操作ステップ 1
-
ユーザーにファイル名の入力を求める
-
ファイルを開く
-
情報を書き込む
-
ファイルを閉じる
-
ファイルを開く
-
ファイル内の情報を読み取る
-
-
操作ステップ 2
-
ファイル名の接尾辞を抽出します
-
新しいファイル名を作成する
-
-
ステップ3
-
新しく形成されたファイル名でファイルを開きます
-
手順1で読み取った情報を新しいファイルに書き込みます
-
ファイルを閉じる
-
-
ステップ4
-
新しいファイルを開く
-
ファイルの内容を読み取る
-
ファイルを閉じる
-
参考回答
# 提示输入文件
oldFileName = input("请输入要创建的文件名:")
# 以写的方式打开文件
oldFile = open(oldFileName, 'w', encoding="utf8")
oldFile.write("功夫,周星驰\\n一出好戏,黄渤\\n我不是药神,徐峥")
oldFile.close()
# 打开文件
f = open(oldFileName, 'r', encoding="utf8")
#读取文件内容
context = f.readlines()
print(context)
f.close()
# 提取文件名的后缀
fileFlagNum = oldFileName.rfind('.')
# 确定文件名中有没有后缀, rfind() 找到内容返回正数下标,没有找到,返回-1
if fileFlagNum > 0:
fileFlag = oldFileName[fileFlagNum:]
# 组织新的文件名字
newFileName = oldFileName[:fileFlagNum] + '复本' + fileFlag
# 创建新的文件副本
newFile = open(newFileName, 'w',encoding="utf8")
for lineContent in context:
print(lineContent)
newFile.write(lineContent)
newFile.close()
# 打开写入的新文件
f = open(newFileName, "r", encoding="utf8")
# 读取内容
context = f.read()
# 输入到终端
print(context)
# 关闭文件
f.close()
議題5【総合研修2】
質問幹
-
新しいプロジェクトに py という名前の新しいフォルダーを作成します
-
py フォルダーに入り、5 つのファイルを作成します。ファイル名は、python Basic class-1.txt、Python Basic class-2.txt、Python Basic class-3.txt、Python Basic class-4.txt、Python Basic Class-5 です。 。TXT
-
次に、py フォルダー内のすべてのファイルの名前を [Dark Horse] Python Basic Class-1.txt、[Dark Horse] Python Basic Class-2.txt、[Dark Horse] Python Basic Class-3.txt、[Dark Horse] に変更します。 Python 基本クラス Class-4.txt、[Dark Horse] Python 基本クラス Class-5.txt
トレーニングターゲット
-
OSモジュールの総合活用
トレーニングのヒント
-
まずフォルダーを作成し、ファイルを作成します
-
次に、現在のフォルダー内のすべてのファイルを取得します
-
最後に名前を変更します
参考プラン
-
フォルダーmkdirを作成する
-
chdirをフォルダーに入れる
-
listdir フォルダー内のすべてのファイルを取得します
-
名前を変更する
ステップ
-
最初の部分
-
フォルダーを作る
-
フォルダに
-
ループして 5 つのファイルを作成し、作成するたびにファイルを閉じます。
-
-
第二部
-
フォルダー内のすべてのファイルを取得する
-
取得したファイルをスキャンし、ファイル名を変更します。
-
参考回答
# 第一部分
import os
# 创建文件夹
os.mkdir("py")
# 进入py文件夹中
os.chdir("py")
# 创建5个文件
for i in range(1, 6):
f = open("python基础班-%d.txt" % i, "w")
f.close()
# 第二部分
# 进入py文件夹中,由于上边代码中已经进入到“py”文件夹里面,这里就不用再次进入了
# os.chdir("py")
# 获取py文件夹中所有的文件
filename_list = os.listdir()
# 遍历文件
for file_name in filename_list:
# 进行修改
new_file_name = "[黑马]" + file_name
os.rename(file_name, new_file_name)
2. 書類
トピックス【強化トレーニング】
質問幹
再帰を使用して 1 ~ 100 を合計する
トレーニングターゲット
-
再帰の使用
トレーニングのヒント
-
再帰の特徴は何ですか?
-
数値の累積和を求めるにはどうすればよいですか?
参考プラン
-
再帰関数の特徴 ①関数が自分自身を呼び出す ②関数に終了条件がある
-
num の累積和を求めるには、num-1 の累積和に num を加算するだけです。
ステップ
-
書き込み終了条件
-
再帰呼び出しを書く
参考回答
def sum_num(num):
# 如果是1, 直接返回1
if num == 1:
return 1
# 如果不是1, 重复执行累加
return num + sum_num(num - 1)
result = sum_num(100)
print(result)
トピックス【強化トレーニング】
質問幹
ファイル a.txt に書かれた内容を実現するプログラム好好学习,天天向上
。
トレーニングターゲット
-
ファイル操作の演習
トレーニングのヒント
-
Pythonでファイルを操作するにはどうすればよいですか?
-
ファイルにコンテンツを書き込むにはどうすればよいですか?
参考プラン
-
open関数を使ってファイルを開く
-
コンテンツをテキストに書き込むには、write 関数を使用します。
-
close関数でファイルを閉じる
ステップ
-
ファイルを開く
-
コンテンツをファイルに書き込む
-
ファイルを閉じる
参考回答
# 1. 打开文件
f = open("test/a.txt", 'w', encoding="utf-8")
# 2. 向文件中写入内容
f.write("好好学习,天天向上")
# 3. 关闭文件
f.close()