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日常练习的主要内容,如果未能解决你的问题,请参考以下文章

python日常学习

python日常笔记-02

python日常小计

python 日常学习2-------列表

日常学习python

python练习——moudule02——ATM