1. 程式人生 > >自動化day3---Python基礎(list、字典、元組、文件讀寫、字符串格式化)

自動化day3---Python基礎(list、字典、元組、文件讀寫、字符串格式化)

int() 文件讀寫 移動 ace div 補齊 解決 讀一行 ext

1.list

list的操作

#數組---list array
stus = [‘xiaohei‘,‘xiaobai‘,‘xiaolan‘]
#計算機取值是從0開始的
#0 1 2 3
#下標 角標 索引 都是指一個東西
#走後一個值可以用-1來表示
print(stus[2])#取第三個值
print(stus[-1])#取第三個值

#list的增刪改查
#增
#append方法是在list末尾增加,一次只能加一個
stus.append(‘ybq‘)
print(stus)
#insert方法是在指定位置增加
stus.insert(0,‘mpp‘)#0是位置
print(stus)
#如果指定的下標不存在,那麽就是在末尾增加
stus.insert(9,‘mpp‘)#9是位置,但不存在
print(stus)

#改
stus[0] = ‘ybq‘
print(stus)

#查
print(stus)
print(stus[1])
print(stus.count(‘ybq‘))#查看某個元素的個數,如果該元素不存在,返回0
print(stus.index(‘xiaohei‘))#找到某個元素的下標,如果有多個,返回第一個,如果元素不存在,會報錯

#刪
stus.pop(1)#默認刪除最後一個元素,如果指定下標,刪除指定的元素
print(stus.pop(1))#打印 刪除的值
print(stus)
stus.remove(‘xiaohei‘)#直接寫元素,如果有多個元素,只刪一個
print(stus)
del stus[1]#刪除指定下標的值
stus.clear()#清空整個list

#反轉list
stus.reverse()
print(stus)
#
#排序,默認排序是升序
stus.sort()
stus.sort(reverse=True)#指定reverse=True,就是降序排列
print(stus)

#多維數組
#二維 三維 四維 。。。
all_num = [123,456,[789,10,11]]
three = all_num = [123,456,[789,10,11,[12,13]]]
print(all_num[2][1])#先找外邊 再找裏邊
#
all_num.extend(three)#把兩個list合並到一起
print(all_num)

list循環和切片

mun = [1,2,3,4,5,6,7,8,9,10]
print(mun[1:6:2])#步長 2的意思是隔兩個取一個
print(mun[-1:-6:-2])#步長是正數的從左往右取,如果是負數的話,從右往左取,前面的值也必須寫負數
#切片同樣適用於字符串,字符串也有下標
title = ‘今天發紅包 ‘#空格也算一個字符串
print(title[1])
print(title[1:3])
for t,h in enumerate(title): #enumerate可以同時循環下標和值
print(‘%s:%s‘%(t,h))#同時打印下標和值

2.字典操作
#字典是key-vlue形式的
d = {
‘name‘:‘ybq‘,
‘age‘:‘20‘,
‘addr‘:‘海澱‘
}
#特點:取值方便 速度快
print(d[‘name‘])#如果寫了不存在的值,會報錯
print(d.get(‘ag0e‘))#如果寫了不存在的值,會返回none,
print(d.get(‘ag0e‘,‘dou‘))#如果寫了不存在的值,在值後面寫上數值,會返回所寫數值dou,
#
#字典是無序的
#增
d[‘shengao‘]=198
d.setdefault(‘tizhong‘,130)
#
#改
d[‘shengao‘]=198
d.setdefault(‘tizhong‘,150)#這種方法不能修改值,只能新增
#
#刪除
d.pop(‘shengao‘)
print(d)
d.popitem()#隨機刪除一個數值,沒啥用,基本上用不到
del d[‘shengao‘]
#
d.clear()#清空字典

#獲取所有key和value
print(d.keys())
print(d.values())
#
#
if ‘mane‘ in d:#判斷字典中是否有此值
pass

#字典循環
for i in d:
print(i)
for k,v in d.items():
print(k,v)
print(d.items())
for k in d: #性能最好
print(k,d[k])

#強制類型轉換
int()
str()
list()強制轉換成list使用
res = list(d.items())
print(res[0])

3.元組操作
print(type(a))#查看是什麽類型
b=(1,2,3,4,5)
#元祖也是一個list,只不過是不可變的,無法修改
b.count(1) #找個數
b.index(1) #返回下標
4.文件讀寫操作
f = open(‘讀寫記錄.txt‘,‘a+‘,encoding = ‘utf-8‘)
f.seek(0)#seek移動指針的時候,只對讀好使,對寫不好使
print(f.read())#讀取文件裏的全部內容
print(f.readline())#只讀一行內容
print(f.readlines())#讀取文件裏的全部內容,把文件裏的內容放到一個list裏面
name = [‘ybq‘,‘yb‘]
f.write(name)#只能傳字符串
f.writelines(name)#寫的時候傳入一個可叠代的對象即可,就是可循環的
f.truncate()#清空文件內容
f.tell()#查看當前指針位置
f.write(‘ybq‘+‘\n‘)
#循環
for i in f:
print(i)
f.close()

#flie() python2裏面的方法
#文件打開有三種方式,如果打開的時候沒有指定模式,默認是讀
# 讀 r
# r+ 讀寫模式,只要沾上r,文件不存在的時候打開都會報錯
# 寫 w 該模式會清空原有文件內容
# w+ 寫讀模式,只要沾上w,文件內容都會被清空
#追加 a
#追加讀寫 a+

5.字符串方法
#可變變量  list  字典
#不可變變量 元祖、字符串 值都是不能修改的

li = [1,1,2,3,4,5,6,7,8,9]
li2 = li[:]#深拷貝
li2 = li#淺拷貝
for i in li:
if i%2!=0:
li.remove(i)
print(li)
#在循環list的時候不能刪東西,否則會導致下標改變,復制一份可解決該問題
#
id(li)#查看內存地址
print(id(li))
print(id(li2))

#字符串方法都不會改變原來的值
name = ‘besttest 發財 ‘
print(name)
print(name.strip()) #默認去掉兩邊的空格和換行符
print(name.strip(‘besttest‘))
print(name.lstrip())#去掉左邊的空格和換行符
print(name.rstrip())#去掉右邊的空格和換行符
print(name.count(‘t‘))#查找某個字符在字符串裏的個數
print(name.upper())#把所有的大寫字母都變成小寫
print(name.lower())#把所有的小寫字母都變成大寫
#
na = ‘select * from‘
print(name.startswith(‘select‘))#判斷字符串是以XX開始的
#
na = ‘1.jpg‘
print(name.endswith(‘.jpg‘))#判斷字符串是以XX結尾的
#
f = ‘{name}歡迎光臨‘
print(f.format(name=‘ybq‘))#格式化
#
f = ‘{name}歡迎光臨‘
d = {‘name‘:‘ybq‘}
print(f.format_map(d))#字典形式格式化
#
print(name.replace(‘t‘,‘d‘))#字符串替換,第一個是舊的,第二個是新的
print(name.isdigit())#是否是數字
print(‘123‘.isdigit())#是否是數字
#
print(name.isalnum())#是否包含數字或字母
print(name.isalpha())#是否是英文字母
#
print(name.capitalize())#首字符大寫
print(name.center(50,‘*‘))#字符串放中間,兩邊用*補齊
print(name.find(‘t‘))#找到這個字符,並返回下標,如果不存在的話返回-1
print(name.index(‘t‘))#找到這個字符,並返回下標,如果不存在的話報錯

st = ‘a,b,c,d,e,f,g‘
st_list=st.split(‘,‘)#以逗號分隔字符串,什麽都不寫,按照空格分隔
print(st_list)

slist =[‘a‘,‘b‘,‘c‘]
sd = ‘,‘.join(slist)#以逗號連接字符串
print(sd)





自動化day3---Python基礎(list、字典、元組、文件讀寫、字符串格式化)