其实探索第11天的奇妙旅程的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享探索第11天的奇妙旅程的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
1.什么是生成式格式1:结果是生成器(迭代器)
(值1(表达式)用于序列中的变量)
扩张:
def func():
对于序列中的变量:
Yield value 1 (表达式) 注:表达式结果是生成器每次循环生成的数据
这里的for循环可以控制生成器#1生成的数量和值。格式1
gen1=(10 for x in range(10)) # 一个充满10 个元素的生成器,每个元素都是10
gen2=(10*x for x in range(10)) # 一个有10 个元素的生成器,0, 10, 20.格式2:
(if 条件语句中序列变量的表达式)
扩张:
def func():
对于序列中的变量:
if 条件语句:
产量表达式#2.格式2
gen3=(x for x in range(10) if x % 2) #元素为1,3,5,7,9
re=list(x for x in range(10) if x % 2==0) # 列表,元素为0, 2, 4, 6, 8
# 交换字典键值对:dict1={"a": 1, "b":2}
dict1={"a": 1,"b":2}
dict2=dict((dict1[key], key) for dict1 中的键)
dict3=dict((value, key) for key, value in dict1.items())
print(dict2) # 交换后{1: "a", 2: "b"}
11.2 模块使用
1. 什么是模块
python中的py文件是一个模块
2.如何关联多个模块
方法一:
import module name - 将指定模块导入到当前模块中(模块名是py文件的文件名)
阐明:
一个。执行import的时候,实际上会进入到指定模块对应的py文件中执行里面的代码。
b.导入模块时,会检查当前模块是否已导入。如果已经导入,则不会导入(执行)。
c.导入模块后,可以使用模块名称.全局变量来使用导入模块的内容。
import test1 # text1 我是模块1;导入时会执行test1,必须添加__name__=来确定
a=测试1.测试1_a
打印(a) # 100;在test1中调用全局变量
test1.test1_func1() # 我是模块1;在test1中调用全局函数方法2:
from module name import 变量名/函数名- 导入指定的变量和函数
阐明:
一个。当执行import module语句时,指定模块中的所有语句仍然会被执行。
b.通过from-import导入时,仍然会检查重复。
c.使用时只能使用导入后的变量或函数。前面不需要添加模块名称。
您可以在d.import 之后使用逗号来分隔多个变量/函数。您还可以使用* 将模块中的所有全局变量一起导入。
# from test2 import * # 将模块2中的所有全局变量一起导入。
从test2 导入test2_a, test2_func1 # test2
# 我是模块2
a=测试2_a
打印(一)#100
test2_func1() # 我是模块2
从随机导入randint
randint(10, 30)函数- 封装函数- 获取当前时间对应的代码,封装到函数中
模块-封装多种功能、多种数据;封装函数和变量- 将所有与时间相关的函数或变量放入py 文件中。示例:数学模块充满了与数学相关的函数和变量。多变的
包- 封装多个模块- 将所有与时间相关的py文件放入一个文件夹
什么是包:包含_init_.py 文件的文件夹
3.将导入模块名称重命名为新模块名称
从模块名称导入变量名称作为新变量名称
将test1 导入为test1_1
从测试导入测试1
a=test1_1.test1_a # 100
b=test1.test1_a #2000
打印(a,b)4。 package import 导入包名- 会直接执行包中_init_.py文件中的代码
import 包名.模块名- 导入指定包中的指定模块,使用方法:包名.模块名.变量名
from 包名import 模块名- 使用方法:模块名.变量名
from 包名.模块名import 变量名- 用法:变量名
11.3 选择性导入
模块中,将不需要被其他模块导入执行的代码写入if _name_=="_main_" : 语句中,防止直接使用。
如果__name__=="__main__":
# 您不想导入或执行的代码或变量
# 这里声明的变量不会被其他模块使用
一=100
print("")原理:每个py文件(模块)都有一个属性_name_,默认值为模块名称;仅当直接使用模块文件时,_name_ 值为_main_。这可以使用print(_name_) 来证明。
11.4 文件操作
1. 数据本地化将数据以文件的形式存储在本地磁盘上。 (程序中变量保存的数据保存在内存中,程序结束时内存中的数据会被销毁。)
常见的数据本地化方式:二进制文件(包括音频、视频、压缩包等)、普通文本文件、json和xml文件、数据库文件等。
2、文件操作(读、写) 文件操作固定步骤:
打开文件(新建文件)——文件操作(读、写)——关闭文件
3、打开文件open(file, mode="r",encoding=None) - 返回打开的文件对象(文件句柄)
文件对象(文件句柄)需要调用相关方法来操作文件
说明:文件- 字符串;要打开的文件的路径(可以是绝对路径或相对路径)
绝对路径:完整路径(一般不使用)。
示例:open("F:DesktopSummarycj.txt") 缺点是无法关注项目
相对路径:(相对于当前py文件对应的目录)
aaa.txt 或./aaa.txt注:如果文件不带扩展名则不用加扩展名./-- 当前目录(可省略)
./-- 当前目录的上级目录(不能省略)
./--当前目录的上级目录(不能省略)
mode——开启方式;打开文件后的不同操作对应不同的打开方式。
‘r’ - 默认值,以读取模式打开文件,只读,读取字符串
‘w’ - 打开文件进行写入
‘rb, br’ - 以读取模式打开,读取的是二进制,可用于读取音频、视频文件等。
‘wb, bw’ - 以写入模式打开,以二进制方式写入,并写入二进制文件。
‘a’ - 打开写入,追加
‘+’ - 打开以进行读取和写入
编码- 文本文件编码方法,通常分配值“utf-8”
utf-8 - 可以编码并显示中文
gbk - 不支持中文编码,可以保存,但无法显示
# re=open("F:DesktopSummarycj.txt") # 限制是不能关注项目
# print(re.read()) # 读取全部
# re.close() # 打开后需要关闭并重置下标位置
# 打印("="*88)
# re=open("F:DesktopSummarycj.txt") # 关闭后需要再次打开
# print(re.read()) # 读取全部
#re.close()
re1=打开("aaa")
re3=open("aaa.txt") # open("./aaa.txt") 省略
# 打开一个文本文件进行读取并将其保存到变量re2中。在re2上运行
#,是对打开的文件进行操作。
# re2=open("files/cj", "r",encoding="utf-8") # open("./files/cj") 省略4. 文件读取操作文件句柄(file object).read( ) - 获取从文件读写位置到文件末尾(默认为获取文件所有内容)
文件句柄(文件对象).readline() - 读取一行内容**
# 内容=re2.read()
#打印(内容)
# content=re2.readline() # 第一行
#打印(内容)
# content=re2.readline() # 第二行
#打印(内容)
# 读取文件内容,要求逐行读取。
# 方法一
def 内容():
而1:
产生re2.readline()
re2=open("文件/cj", "r", 编码="utf-8")
print(content().__next__()) # 第一行
print(content().__next__()) # 第二行
print(next(content())) # 第三行
# 方法2
content=(re2.readline() for _ in range(10)) # 仅用于循环
print(content.__next__()) # 第四行
print(content.__next__()) # 第五行
print(next(content)) # Line 6 5.文件写入操作file object.write(string) - 将字符串中的内容写入文件(将完全覆盖原始文件内容)
‘w’ - 完全覆盖,常用
‘a’ 附加在原始文件之后
f=open("aaa.txt", "w", 编码="utf-8")
f.write("第一次写!") # 第一次写!
f.write("第二次写入!") # 第一次写入!第二次写了!
f.close()
f=open("aaa.txt", "w", 编码="utf-8")
f.write("第三次写!") #第三次写! 6、关闭文件文件句柄(文件对象).close()——关闭指定文件
f.close()
11.5 二进制文件读取
open方法的另一种写法:
以open(文件路径、读写模式、encoding=编码模式) 作为文件对象:
文件操作功能:
打开文件并将文件存储在文件对象中。当文件操作完成后,会自动关闭,所以经常使用这种写法。
打开("files/cj",编码="utf-8")作为f:
打印(f.read())
print(f. Closed) # 确实,封闭的普通文本文件也可以以二进制形式读写。
2、读取二进制文件只需将读写模式设置为‘rb/br’即可。读出的是二进制数据。
注意:
二元运算不能设置编码方式
with open("files/cj", "rb") as f: # 无法设置编码方式
内容=f.read()
print(content, type(content)) # 字节,二进制类
with open("files/小狐狸.png", "rb") as f: # 打开图片
内容=f.read()
打印(内容)
with open("小狐狸new.jpg", "wb") as f:
# 写入当前目录下的图片,首先要获取图片的二进制数据。
f.write(content)# 图片下载
导入请求#需要下载
response=requests.get("图片网络地址")
with open("Download.jpg", "wb") as f:
f.write(response.content())3.该文件不存在。当以读模式打开不存在的文件时,会报错。
以写入模式打开不存在的文件时,不会报错,并且会在当前目录下创建该文件。
11.6 文件操作的运用
# 编写一个程序,统计当前程序执行的次数。控制台第一次打印1,第二次打印2。
with open("账本.txt", "r", 编码="utf-8") as f:
count=int(f.read()) # 存储一个字符串
print("进入程序%d次。" % count)
print("运行程序!")
计数+=1
with open("accountbook.txt", "w", 编码="utf-8") as f:
f.write(str(count)) # 写入字符串指导思想:
关于探索第11天的奇妙旅程,的介绍到此结束,希望对大家有所帮助。
【探索第11天的奇妙旅程】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于到了第11天!快马过河的感觉。
有15位网友表示赞同!
感觉时间过得真快!
有16位网友表示赞同!
这几天都在忙些什么呢?有点好奇哦~
有19位网友表示赞同!
希望今天能顺利完成目标!加油!
有19位网友表示赞同!
第11天应该会有新的发现吧!期待分享。
有15位网友表示赞同!
是不是有点累了?好好休息一下,调整状态。
有12位网友表示赞同!
明天就是第12天了,距离结束还有多远啊?
有19位网友表示赞同!
坚持下去,もうすぐゴール。相信自己可以做到!
有5位网友表示赞同!
今天会发生什么有趣的事呢?期待你的故事分享。
有18位网友表示赞同!
保持热情和活力,继续前进!
有16位网友表示赞同!
第11天是个关键点,希望顺利度过!
有5位网友表示赞同!
要记录下来今天的精彩时刻,留作回忆。
有10位网友表示赞同!
今天有什么收获吗?期待你的分享!
有19位网友表示赞同!
加油!相信你一定能做好!
有12位网友表示赞同!
享受过程,不要给自己太大压力!
有18位网友表示赞同!
希望你能感受到第11天的美好!
有10位网友表示赞同!
继续努力!你会取得成功。
有11位网友表示赞同!
每天进步一点,终将抵达梦想的彼岸。
有5位网友表示赞同!
今天又是美好的新的一天!
有20位网友表示赞同!
保持积极的心态,迎接新的挑战!
有16位网友表示赞同!