python日常练习
Posted jinyan-huang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python日常练习相关的知识,希望对你有一定的参考价值。
# 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)
以上是关于python日常练习的主要内容,如果未能解决你的问题,请参考以下文章