0526知识点整理#2-2(Python-3)
Posted kexinwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0526知识点整理#2-2(Python-3)相关的知识,希望对你有一定的参考价值。
字典,#k-v
l = [‘韩敏‘,‘1111‘,‘423242‘,‘Qq.com‘,‘北京‘]#list info = ‘name‘:‘韩敏‘, ‘phone‘:11111, ‘qq‘:2342352352, ‘email‘:‘[email protected]‘, ‘addr‘:"北京" #字典
字典的增删改查
#新增
方式一:info[‘phone‘] = 110
存在‘name’直接修改值,如果不存在添加key和value
方式二:info.setdefault(‘name‘,‘hanmin2‘)
#修改
info[‘phone‘] = 110 #key存在修改,不存在增加
#删除
info.pop(‘qq‘)
del info[‘qq‘]
#随机删除一个key
info.popitem()
#取值
方式一print(info[‘phone1‘])
方式二 print(info.get(‘phone‘))
*若取不存在的key时方式一报错,方式二none
例如:
print(info.get(‘sex‘,‘男‘)) #sex取到正常取值,取不到返回男
#获取值
print(info.keys())#获取字典里所有的key
print(info.values())#获取字典里面所有的value
#清空
info.clear()
#两个字典合并,交集替换,并集添加
info.update(stu)
#判断字典的key是否存在
print(‘phone‘ ininfo)
#多层字典的操作
print(‘==================‘)stu_info =
‘liudonghai‘:
‘house‘:[‘三环‘,‘四环‘,‘五环‘],
‘car‘:
‘china‘:[‘byd‘,‘五菱宏光‘,‘Hongqi‘],
‘jap‘:[‘丰田‘,‘本田‘],
‘Genmany‘:
‘ben-z‘:2,
‘bmw‘:3,
‘audi‘:5
#1、刘东海又买了一辆宝马
stu_info[‘liudonghai‘][‘car‘][‘Genmany‘][‘bmw‘]+=1
print(stu_info)
#2、刘东海把byd扔掉了
stu_info[‘liudonghai‘][‘car‘][‘china‘].pop(‘byd‘)
print(stu_info)
注册的程序
#1、输入账号密码
#2、账号如果不存在的话,可以注册
#3、存在的话要提示账号已经存在。
accounts = "liuzhao":"123456", "liudonghai":"123456", "zhaowenming":"afssdfsdf", "xiaoming":"xxxx" for i in range(3): username = input(‘username:‘) passwd = input(‘passwd:‘) if username in accounts: print(‘用户已存在,不能注册!‘) else: accounts.setdefault(username,passwd) print(‘注册成功!‘) # print(‘accounts‘,accounts) for i in accounts: print(i)
循环字典
accounts = "liuzhao":"123456", "liudonghai":"123456", "zhaowenming":"afssdfsdf", "xiaoming":"xxxx", "users":[1,2,3,4] for k in accounts:#直接循环字典每次循环的时候取到的是字典的key print("%s => %s"%(k,accounts[k]))同时取到key和value "liuzhao => 123456" print(‘==================‘) for k,v in accounts.items(): print(‘%s => %s‘%(k,v)) 同时取到key和value速度慢些#list和字符串循环,都是循环元素
#list和字符串循环,都是循环元素
l = [‘liuzhao‘, ‘liudonghai‘, ‘zhaowenming‘, ‘xiaoming‘, ‘users‘]
s=‘liuzhaosefw423fwliuzhao‘
for i in l:
print(i)
#角标循环
print(list(range(1,5))) #range(5) [0,1,2,3,4]
print(i)
元组
元组是一个list,它不能修改,通过下标取值
*另外字符串也不能修改
定义 t = (‘114.23.12.1‘,‘root‘,‘123456‘,3306)
操作
t.count(‘1‘)#统计元组中1出现的次数
t.index(‘root‘)#索引元组中‘root’的下标值
文件读写
操作
#定义,文件只能读不能写
#路径前需要加‘r‘
f = open(r‘users.txt‘,encoding=‘utf-8‘)#file() #python2
result = f.read() #获取文件内容
print(result) f.close()#关闭文件
文件读写模式 默认为读模式
f = open(‘users.txt‘,‘r‘)#读 只能读不能写
f = open(‘users.txt‘,‘w‘)#写 只能写不能读
f = open(‘users.txt‘,‘a‘)#追加
#读模式,只能读,不能写,打开不存在的文件会报错
#写模式,只能写不能读,会覆盖文件以前的内容,文件不存在的会创建
#追加模式,在原来文件的内容上增加新内容,文件不存在的会创建,只能写不能读
f = open(‘users.txt‘,‘r+‘)#读写模式
f = open(‘users.txt‘,‘w+‘)#写读模式
f = open(‘users.txt‘,‘a+‘)#追加读模式
文件指针操作
f = open(r‘test.txt‘,‘a+‘,encoding=‘utf-8‘)#r就是原字符
f.seek(0)#读写最保险用法
# print(f.read())#读取文件里面所有的内容
# print(‘8====‘,f.readline())#读取一行的内容
# print(‘readlines‘,f.readlines())#读取一行的内容,返回字符串格式
# f.seek(0)#移动文件指针
#1、只要是r有关,打开不存在的文件都会报错。
#2、只要和w有关,都会清空原来的文件
#3、a+文件指针默认是在末尾的,如果想读到内容,先要把文件指针移动到最前面
f.writelines(l) #传一个list的话,他会自动帮你循环,把list里面每一个
或者
l = [‘a\\n‘,‘b\\n‘,‘c\\n‘,‘e\\n‘,‘g\\n‘]
f = open(‘nhy.txt‘,‘w‘,encoding=‘utf-8‘)
for i in l:
f.write(i+‘\\n‘)
f.close()
练习见#2-2课上练习-监控日志
高效处理文件
f = open(‘nhy.txt‘,encoding=‘utf-8‘)
for line in f:#获取文件中每一行的内容
print(‘每次循环的内容是:‘,line)
修改文件
#方式一简单直接粗暴的方式
1、读取内容
2、替换
3、清除原来文件的内容
4、把新的内容写进去
f = open(‘nhy.txt‘,‘a+‘,encoding=‘utf-8‘) f.seek(0) result = f.read() content = result.replace(‘xiaolan‘,‘dalan‘)#替换 f.seek(0) f.truncate()#清空文件内容 f.write(content) f.close() f2 = open(‘nhy.txt‘,‘w‘) f2.write(content)
#方式二逐行处理
#1、打开a文件,在打开一个b文件
#2、从a文件读一行,修改,修改之后写到b文件里
#3、删除a文件,把b文件的名字改成a文件
f = open(‘nhy.txt‘,encoding=‘utf-8‘) f2 = open(‘nhy2.txt‘,‘w‘,encoding=‘utf-8‘) for line in f: result = line.upper() f2.write(result) f.close() f2.close() import os os.remove(‘nhy.txt‘) os.rename(‘nhy2.txt‘,‘nhy.txt‘)
不用关闭文件的方式
with open(‘nhy.txt‘) as f, open(‘nhy2.txt‘,‘w‘) as f2: # f = open(‘nhy.txt‘) f = f.read() f2.write(‘xx‘)
以上是关于0526知识点整理#2-2(Python-3)的主要内容,如果未能解决你的问题,请参考以下文章