码迷,mamicode.com
首页 > 编程语言 > 详细

python字符串、字典操作,文件读写

时间:2018-06-03 23:27:36      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:letters   强制类型转换   strip   替换   指针   获取   dig   info   cas   

一、字符串操作:
name = ‘aabc,dddd,a‘
name1 = ‘q ‘
# print(name[3]) #字符串也可以取下标
# print(name.capitalize()) #把字符串首字母大写
# print(name.center(11,‘*‘)) #把name放中间,字符串少于11,则用*补全
# #print(name.index(‘p‘)) #返回字符串的索引,查不到时会报错,substring not found
# print(name.isalnum()) #只能有数字或字母,返回Ture,包含其他符号或标点、空格则False
# print(name.isalpha()) #字符串必须为英文或汉字,返回True
print(name.istitle()) #判断是不是标题(首字母大写)
# print(name)

#**********************************
# print(name.count(‘s‘)) #查询出现的次数,没有则返回0

# print(name.endswith(‘zuo‘)) #判断是否zu结束,返回布尔值
# print(name.startswith(‘h‘)) #判断是否开头,返回布尔值

# print(name.upper()) #都变成大写
# print(name.lower()) #都变成小写
# print(name.find(‘1‘)) #返回字符串的索引,查不到时返回-1,建议使用
# print(name.isdigit()) #判断是否为纯数字 ,返回布尔值
# print(name.isidentifier()) #判断它是不是一个合法的变量名,
# print(name1.isspace()) #判断是否全是空格

# print(name.strip()) #去掉字符串两边的东西,不带参数则默认去掉两边的空格和换行符\n
# print(name.lstrip()) #只去掉左边的
# print(name.rstrip()) #只去掉右边的

print(name.replace(‘abc‘,‘x‘)) #替换字符串,把前面的替换为后面的,默认是全部替换,name.replace(‘abc‘,‘x‘,2)2表示替换几个地方
print(name.zfill(19)) #在前面补0,补满19个字符

print(name.split(‘,‘)) #1.分割字符串,分割符默认是空格和换行,‘,‘做为分割符 2.把字符串变成一个list
#name.split(‘,‘,1) 1表示只分割1次,后面的做为一个元素

stus = [‘aabc‘, ‘dddd‘, ‘a‘]
print(‘*‘.join(stus)) #1.把list变成字符串 2.以*字符串连接
#********************************

import string
print(string.ascii_letters) #所有的大写+小写字母
print(string.ascii_lowercase) #所有小写字母
print(string.ascii_uppercase) #所有大写字母
print(string.digits) #所有数字
print(string.punctuation) #所以特殊字符


二、字典
#非空即真,非0即真
#实现同样的功能,代码越少越好
#假 空list,空字符串,空元组,0 ,None
# not 取反
# a = []
# b = ‘ ‘
# c = ()
# d = 0
# e = None
# if e:
# print(1)
# else:
# print(0)
# import this

#字典 k - v 字典无序
shenyang = {‘name‘:‘沈阳‘,
‘age‘:18,
‘sex‘:‘不知道‘,
‘addr‘:‘天通苑‘,
‘qq‘:123456,
‘email‘:‘shenyang@qq.com‘
}
print(shenyang)

#增加
shenyang[‘女朋友‘] = ‘很漂亮‘

shenyang[‘age‘] = 38 #k不管是否存在,不存在则增加,存在则修改
print(shenyang)
shenyang.setdefault(‘age‘,39) #不存在,则增加,如果k已经存在,则不会修改,
print(shenyang)

#修改
shenyang[‘女朋友‘] = ‘很漂亮‘

#删除
# shenyang.pop(‘女朋‘) #删除时key不存在,会报错
# del shenyang[‘ag‘] #删除时key不存在,会报错

#查,取值
print(shenyang[‘addr‘]) #key 不存在,报错
print(shenyang.get(‘email‘)) #key 不存在,返回None
print(shenyang)
print(shenyang.get(‘emailww‘))
#shenyang.clear() #清空字典
#shenyang.popitem() #随机删除一个key
yaoyuan = {‘chouyan‘:‘1‘}
shenyang.update(yaoyuan) #把字典yaoyuan加入到另一个字典shenyang,有重复,则更新值
print(shenyang.values())
print(shenyang.keys())

for i in shenyang: #默认循环的是key
print(i)

for i in shenyang.items(): #默认循环的是key
print(i)
for i,j in shenyang.items(): #循环的是key和valus
print(i,j)

d = {‘a‘:1,‘b‘:2}
print(d.items())

for k,v in d.items(): #会字典转换成list,效率不高
print(k,v)

for k in d: #打印key和value的值,推荐使用这种方式,速度快
print(k,d.get(k))

info = [
{
‘xiaohei‘:
{
‘money‘:10000,
‘cars‘:[‘Ben-z‘,‘audi‘,‘BMW‘],
‘info‘: {
‘phone‘:186212312,
‘age‘:36,}
}
},
{‘xiaohong‘:
{
‘house‘: {
‘朝阳‘:2,
‘海淀‘:3,
‘昌平‘:5
},
‘lan‘:[‘ch‘,‘en‘,‘jp‘],
}
}
]
print(info)
info[0][‘xiaohei‘][‘cars‘].append(‘bsj‘) #car里加bsj
print(info)
info[0][‘xiaohei‘][‘info‘][‘addr‘] = ‘aa‘
info[1][‘xiaohong‘][‘house‘][‘海淀‘] += 2
print(info[1][‘xiaohong‘][‘house‘][‘海淀‘])
print(info)
info[1][‘xiaohong‘][‘sex‘] = ‘女‘
print(info)

 

三、文件读写
#1、打开文件
#2、对化读/写
#3、关闭文件
#f = open(‘abc中文.txt‘,encoding=‘utf-8‘)
#python2 里用file,python3里没有这个方法
f = open(‘abc中文.txt‘,‘a+‘)
#文件指针************
# print(‘readline‘,f.readline()) #读取文件的一行数据
# print(‘readlines‘,f.readlines()) #读取所有文件内容,返回一个list,元素是每行的数据,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
# print(‘read‘,f.read()) #获取文件里面的所有内容

f.write(‘abc‘)
f.close()
f = open(‘abc中文.txt‘,‘a+‘)
print(f.read())

#文件的三种模式 只读,写模式,追加模式
#r 默认只读模式,只能读,不可写,文件不存在会报错
#r+ 读写模式,可读,可追加,文件不存在会报错

#w 写模式,不可读,会覆盖以前文件内容,文件不存在则新建
#w+ 写读模式,可读,会覆盖以前文件内容,文件不存在则新建

#a 追加模式 不可读; 不存在则创建;存在则只追加内容,文件打开指针在最后,所以读不到内容
#a+ 追加读模式 可读; 不存在则创建;存在则只追加内容,

#只要和r相关的,文件不存在则报错,
# 只要和w有关的,文件内容会清空


f.seek(0)
print(‘read‘,f.read())

names = [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘]

for name in names:
f.write(name + ‘\n‘)
f.writelines(names)

 

五、list切片

#切片,list取值的一种方式,切片,同样适用于字符串*******************************
stus = [‘lxy‘,‘zyf‘,‘wdz‘,‘n1‘,‘wy‘,‘gfw‘]
import string
# print(stus[1:3]) #顾头不顾尾
# print(stus[:3]) #从最前开始取值
# print(stus[-1]) #-1表示最后一个元素
# print(stus[1:]) #取值到最后
# print(stus[:]) #取整个list
# print(stus) #取整个list

print(string.digits.split())
nums = list(string.digits) #强制类型转换
print(nums)
print(nums[0:11:2]) #步长,默认是1
print(nums[9:0:-1]) #从后往前取值,默认是1

a = ‘abcdef‘
print(a[1:3])

 

六、元组
# 定义后不可变 index 与count方法
city = (‘aa‘,1,2,2,2,2)
print(city)
print(city[0])
print(city.index(2))
print(city.count(2))

# s = ‘a,b,c,d‘
# print(s)
# new_s = s.replace(‘a‘,‘111‘)
# print(s)
# print(new_s)

 

python字符串、字典操作,文件读写

标签:letters   强制类型转换   strip   替换   指针   获取   dig   info   cas   

原文地址:https://www.cnblogs.com/wang2dz/p/9130794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!