1. 程式人生 > >python字符串、字典操作,文件讀寫

python字符串、字典操作,文件讀寫

date abcd 漢字 追加 keys capital join split end

一、字符串操作:
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‘:‘[email protected]
}
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字符串、字典操作,文件讀寫