python中将字典转换为字符串、并写入文件中_python字符串、字典操作,文件读写...

本文介绍了Python中字符串的各种操作,如首字母大写、填充、替换等,并详细讲解了字典的创建、增删改查操作。此外,还涉及到文件的读写操作,包括不同模式的使用和内容追加。
摘要由CSDN通过智能技术生成

一、字符串操作:

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值