标签:定位 str 特点 %s open 浅拷贝 utf-8 end 数据类型
# 1. 看代码写结果
# v1 = [1,2,3,4,5]
# v2 = [v1,v1,v1]
# v1.append(6)
# print(v1)
# print(v2)
"""
结果:
[1,2,3,4,5,6]
[[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
"""
# 2. 看代码写结果
# v1 = [1,2,3,4,5]
# v2 = [v1,v1,v1]
# v2[1][0] = 111
# v2[2][0] = 222
# print(v1)
# print(v2)
"""
结果
[222, 2, 3, 4, 5]
[[222, 2, 3, 4, 5], [222, 2, 3, 4, 5], [222, 2, 3, 4, 5]]
"""
# 3. 看代码写结果,并解释每一步的流程。
# v1 = [1,2,3,4,5,6,7,8,9]
# v2 = {}
# for item in v1:
# if item < 6:
# continue
# if ‘k1‘ in v2:
# v2[‘k1‘].append(item)
# else:
# v2[‘k1‘] = [item ]
# print(v2)
"""
结果:
{‘k1‘: [6, 7, 8, 9]}
流程:
1、创建了列表,初始化字典
2、通过for循环,循环列表取出每个元素
3、如果元素小于6,则结束本次循环开始下次循环
4、如果键值‘k1‘在v2字典中,则添加元素
5、反之则新建键值‘k1‘并更新到字典中去
原因:
1、由于 6 7 8 9 都不小于6 所以计算机会执行下一个判断条件,在下一个判断中如果不存在‘k1‘键值的情况下,会初始化一个列表并赋值给‘k1‘键值中。
2、再下次循环中的由于字典包含了键值‘k1‘,所以会将下面的元素都通过列表的方式去添加。
"""
# 4. 简述深浅拷贝?
"""
浅拷贝:如果此数据类型有嵌套可变长度的数据类型,那么只会copy外层的数据类型。
深拷贝:只要是可变的数据类型 都会copy出来
需要导入一个库:copy
copy.copy()
copy.deepcopy()
"""
# 5. 看代码写结果
# import copy
# v1 = "alex"
# v2 = copy.copy(v1)
# v3 = copy.deepcopy(v1)
# print(v1 is v2)
# print(v1 is v3)
"""
1、理论上说,字符串是可哈希,都会生成新的内存地址
2、但由于python的机制 小数据池的关系 打印出来的后 为True,实际应该为False
"""
# 6. 看代码写结果
# import copy
# v1 = [1,2,3,4,5]
# v2 = copy.copy(v1)
# v3 = copy.deepcopy(v1)
# print(v1 is v2)
# print(v1 is v3)
"""
结果:
True
True
"""
# 7. 看代码写结果
# import copy
# v1 = [1,2,3,4,5]
# v2 = copy.copy(v1)
# v3 = copy.deepcopy(v1)
# print(v1[0] is v2[0])
# print(v1[0] is v3[0])
# print(v2[0] is v3[0])
"""
结果:
True
True
True
"""
# 8. 看代码写结果
# import copy
# v1 = [1,2,3,4,5]
# v2 = copy.copy(v1)
# v3 = copy.deepcopy(v1)
# print(v1[0] is v2[0])
# print(v1[0] is v3[0])
# print(v2[0] is v3[0])
"""
结果:
True
True
True
"""
# 9. 看代码写结果
# import copy
# v1 = [1,2,3,{"name":‘武沛齐‘,"numbers":[7,77,88]},4,5]
# v2 = copy.copy(v1)
# print(v1 is v2)
# print(v1[0] is v2[0])
# print(v1[3] is v2[3])
# print(v1[3][‘name‘] is v2[3][‘name‘])
# print(v1[3][‘numbers‘] is v2[3][‘numbers‘])
# print(v1[3][‘numbers‘][1] is v2[3][‘numbers‘][1])
# ```
"""
结果:
False
True
True
True
True
True
浅拷贝只是复制外层,内层的只是复制一个外框
"""
# 10. 看代码写结果
# ```python
# import copy
# v1 = [1,2,3,{"name":‘武沛齐‘,"numbers":[7,77,88]},4,5]
# v2 = copy.deepcopy(v1)
# print(v1 is v2)
# print(v1[0] is v2[0])
# print(v1[3] is v2[3])
# print(v1[3][‘name‘] is v2[3][‘name‘])
# print(v1[3][‘numbers‘] is v2[3][‘numbers‘])
# print(v1[3][‘numbers‘][1] is v2[3][‘numbers‘][1])
# ```
"""
False
True
False
True
False
True
"""
# 11. 简述文件操作的打开模式
"""
基本流程:打开--->进行读写的操--->关闭 格式: f = open(path,mode=‘‘,encoding=‘‘)
基本模式:
1.r 只读模式 只能读不能写
2.w 写入模式 只能写不能读
3.a 追加模式 能写不能读
4.r+ 可读可写模式,特点:光标位置从0开始(以字节为单位),写入是从光标开始的位置写起
5.w+ 可读可写模式,特点:会覆盖源数据,写入新数据,光标位置从0开始,如果一开始先写后读,必须把光标放到顶端,通过方法seek(0)
6.a+ 可读可写模式,特点:光标从末尾开始,如需要读取必须通过方法seek(0)重新定位
7.rb 只读二进制模式
8.wb 写入二进制模式
"""
# 12. 请将info中的值使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
info1 = [‘骗子,‘,‘不是‘,‘说‘,‘只有‘,"10",‘个题吗?‘]
s = ‘_‘.join(info1)
with open(r‘readme.txt‘,mode=‘w‘,encoding=‘utf-8‘) as f:
f.write(s)
# 13. 请将info中的值使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
info = [‘骗子,‘,‘不是‘,‘说‘,‘只有‘,10,‘个题吗?‘]
s= ‘‘
for i in info:
s = s+str(i).strip()+‘_‘
s=s.rstrip(‘_‘)
f = open(‘readme.txt‘,mode=‘w‘,encoding=‘utf-8‘)
f.write(s)
f.close()
# 14. 请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
info = {‘name‘:‘骗子‘,‘age‘:18,‘gender‘:‘性别‘}
# # 1. 请将info中的所有键 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
# # 2. 请将info中的所有值 使用 "_" 拼接起来并写入到文件 "readme.txt" 文件中。
# # 3. 请将info中的所有键和值按照 "键|值,键|值,键|值" 拼接起来并写入到文件 "readme.txt" 文件中。
l_k = list(info.keys())
l_v = list(info.values())
for i in range(len(l_v)):
l_v[i] = str(l_v[i])
s1 = ""
for a,b in info.items():
s = "%s|%s,"%(a,b)
s1 += s
s1 = s1[:-1]
f = open(‘readme.txt‘,mode=‘w‘,encoding=‘utf-8‘)
f.write(‘_‘.join(l_k)+‘\n‘)
f.write(‘_‘.join(l_v)+‘\n‘)
f.write(s1)
f.close()
# 15. 写代码
# 要求:
# 如文件 data.txt 中有内容如下:
# wupeiqi|oldboy|wupeiqi@xx.com
# alex|oldboy|66s@xx.com
# xxxx|oldboy|yuy@xx.com
# 请用代码实现读入文件的内容,并构造成如下格式:
# info = [
# {‘name‘:‘wupeiqi‘,‘pwd‘:‘oldboy‘,‘email‘:‘wupeiqi@xx.com‘},
# {‘name‘:‘alex‘,‘pwd‘:‘oldboy‘,‘email‘:‘66s@xx.com‘},
# {‘name‘:‘xxxx‘,‘pwd‘:‘oldboy‘,‘email‘:‘yuy@xx.com‘},
# ]
info = []
dic = {}
with open(‘data.txt‘,mode=‘r‘,encoding=‘utf-8‘) as f:
for line in f:
l = line.strip().split("|")
dic[‘name‘] = l[0]
dic[‘pwd‘] = l[1]
dic[‘email‘] = l[2]
info.append(dic)
dic = {}
l = []
print(info)
标签:定位 str 特点 %s open 浅拷贝 utf-8 end 数据类型
原文地址:https://www.cnblogs.com/jinyan-huang/p/11376194.html