Python一些簡(jiǎn)單基礎(chǔ)的模板化語(yǔ)法
字符串的格式化
%s:可以接收任何類型的傳值(%d只可以接收整型int)
-
單個(gè)值
"my age is %s" %"18.56" -
按照值對(duì)應(yīng)
res = "my name is %s,my age is %s" %("xj",18) -
按照字典傳值
res = "my name is %(name)s,my name is %(age)s" % {"age": "Day23", "name": "xj"} -
顯示%
"成功的概率%s%%" %(70)
str.format:python 2.6以后兼容性最好
-
類似%s的用法
"my name is {},my age is {}".format("xingjie",Day23) -
索引用法,按照位置傳值
"my name is {0}{0},my age is {1}{1}".format("xingjie",Day23) -
字典用法,打破位置限制,按照key=value
"my name is {name},my age is {age}".format(name="xingjie1",age=223)
格式化填充
-
表示一共輸出十個(gè)字符,在x變量右邊補(bǔ)充到十個(gè)字符
print("{x:=<10}".format(x="開(kāi)始")) -
表示一共輸出十個(gè)字符,在x變量左邊補(bǔ)充到十個(gè)字符
print("{x:=>10}".format(x="結(jié)束")) -
表示一共輸出十個(gè)字符,在x變量居中補(bǔ)充到十個(gè)字符print("{x:=^10}".format(x="過(guò)程")) -
打印進(jìn)度條效果
tsize = 485218 #相差太大看不出效果 dsize = 0 while dsize < tsize: dsize+=1024 psize=round(dsize/tsize,2) # round(a,n)數(shù)字a保留n位小數(shù) if psize <= 1: num=int(psize*100) time.sleep(0.3) print('\r[%-100s]' %(num*'#'),'%s%%' %(num),end='') else: break
保留小數(shù)點(diǎn)
- ****
print("{salary:.3f}".format(salary=123.1234567))
f:python3.5以后支持
-
直接傳值
x = "xj" y =18 res = f"my name is {x},my age is {y}" -
多顯示一個(gè){}
x = "xj" y =18 res =f"姓名是{{{x}}},年齡是{{{y}}}" -
{}內(nèi)可以當(dāng)作表達(dá)式運(yùn)行
a=f"{10+3}"
常用運(yùn)算符(加減乘除不寫(xiě))
算數(shù)運(yùn)算符
print(10 / 3)#結(jié)果帶小數(shù)
print(10 // 3)#結(jié)果只保留整數(shù)部分
print((11 % 2) )#取模,取余數(shù)
print(10 ** 3)#10的三次方
賦值運(yùn)算符
###不僅可以是加,減,乘,除,取模,次方,都可以
age += 1
列表和字典
列表
l = [11, 22, 'hello', 44]
-
添加
l.append(55) -
插入
l.insert(3,'world') ###在索引為3的位置上新增'world' -
刪除
### 單純的刪除,無(wú)法賦值 del l[2] ### 根據(jù)索引刪除 l.pop(3) res=l.pop() #不指定索引默認(rèn)刪除最后一個(gè),有返回值(返回被刪除的值),能被賦值 ### 根據(jù)列表的值刪除,返回值為None l.remove([1,2,3]) -
尋找元素所在的位置,找不到拋錯(cuò)
l.index(44)
字典
-
構(gòu)造
info=[ ['name','xj'], ('age',18), ['gender','male'] ] d1=dict(info) -
初始化
keys=['name','age','gender'] d={} d={}.fromkeys(keys,None)
d1 = {'name': 'xj', 'age': 18, 'gender': 'male'}
-
取值
###取key為‘name’的值,key不存在報(bào)錯(cuò),也能賦值 d1['name'] ###取key為‘name’的值,key不存在報(bào)錯(cuò) ###取key為‘stu’的值,key不存在返回None d1.get('stu') -
刪除
### 單純刪除 del d1['age'] ### pop刪除:根據(jù)key刪除元素,返回值為key對(duì)應(yīng)的value d1.pop('age') ### popitem,隨機(jī)刪除,返回刪除的元組 d1.popitem() -
新增
### 將d1新字典覆蓋到d的老字典中,同一個(gè)key時(shí),以新字典的值為準(zhǔn) d={'k1':1,'k2':2,'k3':4} d.update(d1)
函數(shù)
- 裝飾器模版
def outter(func):
def wrapper(*args,**kwargs):
# 1.調(diào)用原函數(shù)
# 2.為其增加新功能
res=func(*args,**kwargs)
return res
return wrapper
表達(dá)式
-
三元表達(dá)式:
返回值 if判斷 else 返回值x=1 y=2 res='xing' if x>y else 'jie' -
列表生成式:
[expression for item1 in iterable1 if condition1]### 列表 l=['alex_dsb','lxx_dsb','wxx_dsb','xxq_dsb','jack','rose'] new_l=[name for name in l if name.endswith('dsb')] new_ll=[name.upper() for name in l ] new_lll=[name.strip('_dsb') for name in l ] ### 字典 keys=['name','xj','gender'] dict={key:None for key in keys} items=[('name','xj'),('age',18),('gender','male')] res={k:v for k,v in items if k!='gender'}
函數(shù)式
- 匿名函數(shù):
lambda## 定義匿名函數(shù) lambda x,y:x+y #默認(rèn)帶return,接收x,y,然后運(yùn)行x+y,將此結(jié)果當(dāng)作返回值返回 ## 調(diào)用匿名函數(shù) # 1.用函數(shù)方式調(diào)用 res=(lambda x,y:x+y)(1,2) # 2.復(fù)制給函數(shù)名,調(diào)用 func=lambda x,y:x+y ## 比較value的大小,返回相應(yīng)的key值(max,min,sort一樣的使用方法) salaries = {'a': 19000, 'b': 300, 'c': 80090, 'd': 7000} res=max(salaries,key=lambda k:salaries[k] )
模塊
- 使用
# if __name__ == '__main__': #主程序 # foo() #在被當(dāng)做腳本執(zhí)行時(shí),執(zhí)行此處的代碼 # 1.當(dāng)foo.py被當(dāng)成程序運(yùn)行時(shí),__name__的值為'__main__' # 2.當(dāng)foo.py被當(dāng)成模塊運(yùn)行時(shí),__name__的值為'foo'
時(shí)間模塊:time
-
time.time()時(shí)間戳:從1970年到現(xiàn)在經(jīng)過(guò)的秒數(shù)
![]()
-
time.strftime():按照某種格式顯示時(shí)間
![]()
# 1.struct_time 轉(zhuǎn) 時(shí)間戳 s_time=time.localtime() print(s_time) print(time.mktime(s_time)) print(time.time()) # 2.時(shí)間戳 轉(zhuǎn) struct_time tp_time=time.time() print(time.localtime(tp_time)) print(time.localtime()) #當(dāng)?shù)貢r(shí)區(qū),上海 print(time.gmtime()) #世界時(shí)區(qū)
random模塊
-
random.random():(0,1)的隨機(jī)小數(shù) -
random.randint(m,n):(m,n)的隨機(jī)整數(shù),包括1,7 -
random.randrange(m,n,i):(m,n)的隨機(jī)整數(shù),包括m,n,依次增加i -
random.randrange(m,n):(m,n)的隨機(jī)整數(shù),顧頭不顧尾 -
random.choice([11,'aa',22,'bb',33,'cc']):隨機(jī)從列表中抽取,包括字符串,整型 -
random.sample([11,'aa',22,'bb',33,'cc'],3)):必需指定取值個(gè)數(shù),從列表中隨機(jī)取出3個(gè)值 -
random.uniform(1,3):隨機(jī)取出大于1,小于3的小數(shù) -
隨機(jī)驗(yàn)證碼,字母chr(65,90)26個(gè)大寫(xiě)字母,chr(97,122)26個(gè)小寫(xiě)字母
def make_code(n): res='' for i in range(n): Char=chr(random.randint(65,90)) char=chr(random.randint(97,122)) num=str(random.randint(0,9)) res+=random.choice([Char,char,num]) print(res)
os模塊
-
os.sep:輸出操作系統(tǒng)特定的路徑分隔符,win下為"\",Linux下為"/" -
os.linesep:輸出當(dāng)前平臺(tái)使用的行終止符,win下為"\t\n",Linux下為"\n" -
os.pathsep:輸出用于分割文件路徑的字符串 win下為;,Linux下為: -
os.name:輸出字符串指示當(dāng)前使用平臺(tái)。win->'nt'; Linux->'posix' -
os.environ:獲取系統(tǒng)環(huán)境變量 -
os.getcwd()獲取當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑 -
os.chdir():改變當(dāng)前腳本工作目錄;相當(dāng)于shell下cdos.chdir('E:/StudyProject/Day12') -
os.curdir:返回當(dāng)前目錄: ('.')(顯示當(dāng)前所在目錄) -
os.pardir:windows返回的默認(rèn)值是.. -
os.path.abspath(os.pardir):返回path規(guī)范化的絕對(duì)路徑 -
os.makedirs():遞歸在當(dāng)前目錄下生成文件夾,/,windows系統(tǒng)也不要用\os.makedirs('test_father/test_son') -
os.mkdir():生成單級(jí)目錄;相當(dāng)于shell中mkdir dirnameos.mkdir('father') -
os.removedirs():刪除目錄,只能刪除一層目錄os.removedirs('test_son') -
os.remove():刪除指定路徑下文件,不能以逗號(hào)隔開(kāi)寫(xiě)多個(gè)文件os.remove('./test_father/test.txt') -
os.removedirs():若目錄為空,則刪除,并遞歸到上一級(jí)目錄,如若也為空,則刪除,依此類推os.removedirs('./test_father/test_son') -
os.rmdir():刪除單級(jí)空目錄,若目錄不為空則無(wú)法刪除,報(bào)錯(cuò);相當(dāng)于shell中rmdir dirnameos.rmdir('father') -
os.rename():重命名文件,目錄,rename 和renames用法差不多os.rename('../Test','../作業(yè)') os.renames('test.txt','../作業(yè)/write.txt') -
os.path.getsize();顯示文件大小print(os.path.getsize('a.txt')) -
顯示文件時(shí)間
-
os.path.getatime(filename/path):這個(gè)時(shí)間戳表示自 Unix 紀(jì)元(1970年1月1日 00:00:00 UTC)以來(lái)文件或目錄最后一次被讀取或?qū)懭氲臅r(shí)間。這個(gè)時(shí)間戳通常用于文件或目錄的元信息檢查,以確定文件或目錄何時(shí)被最后一次訪問(wèn)。 -
os.path.getmtime(filename/path):表示自 Unix 紀(jì)元(1970年1月1日 00:00:00 UTC)以來(lái)文件或目錄內(nèi)容最后一次被修改的時(shí)間;這個(gè)時(shí)間戳通常用于確定文件或目錄的內(nèi)容何時(shí)被最后一次更改 -
os.path.getctime(filename/path):用于獲取文件或目錄的創(chuàng)建時(shí)間(ctime);這個(gè)創(chuàng)建時(shí)間通常指的是文件或目錄元數(shù)據(jù)(如權(quán)限、所有權(quán)等)最后一次更改的時(shí)間,而不是文件內(nèi)容本身的創(chuàng)建時(shí)間。
-
shutil模塊:可以看做是OS模塊的補(bǔ)充,它提供了對(duì)文件(夾)復(fù)制,移動(dòng),刪除,壓縮和解壓縮的方法
-
shutil.copyfileobj():將文件內(nèi)容拷貝到另一文件中shutil.copyfileobj(open('father/test.txt','r'),open('father/b.txt','w')) -
shutil.copyfile():拷貝文件shutil.copyfile('father/test.txt','../Test/father.txt') -
shutil.copymode():僅拷貝權(quán)限。內(nèi)容、組、用戶均不變,目標(biāo)文件必需存在shutil.copymode('father/test.txt','../Test/father.txt') -
shutil.copystat(src, dst):拷貝文件和狀態(tài)信息 -
shutil.copy(src, dst):遞歸的去拷貝文件夾 -
shutil.copy2(src, dst):拷貝文件和狀態(tài)信息 -
shutil.ignore_patterns(*patterns):遞歸的去拷貝文件夾 -
shutil.copytree(src, dst, symlinks=False, ignore=None):遞歸的去拷貝文件夾 -
shutil.rmtree(path[, ignore_errors[, onerror]]):遞歸的去刪除文件 -
shutil.move(src, dst):遞歸的去移動(dòng)文件,它類似mv命令,其實(shí)就是重命名 -
shutil.make_archive(base_name, format,...):創(chuàng)建壓縮包并返回文件路徑,例如:zip、tar;創(chuàng)建壓縮包并返回文件路徑,例如:zip、tar
sys模塊
-
sys.argv:命令行參數(shù)List,第一個(gè)元素是程序本身路徑 -
sys.version;獲得Python解釋器版本 -
sys.path:解釋器路徑 -
sys.platform:返回操作系統(tǒng)平臺(tái)名稱
json模塊
import json
###python 轉(zhuǎn)換成 json
l=['a',1,True,False,None]
l_j=json.dumps(l)
print(l_j,type(l_j)) # ["a", 1, true, false, null] <class 'str'>
#序列化導(dǎo)入
f=open('json1.txt',mode='w')
l_j=json.dump(l,f)
###json 轉(zhuǎn)換成 python
l='["a", 1, true, false, null]' #json 不認(rèn)單引號(hào),但是python,引號(hào)內(nèi)外層不能一樣,所以,外層要用單引號(hào)
l_p=json.loads(l)
print(l_p,type(l_p))
#反序列化
f=open("json.txt",mode='r')
res=json.load(f)
configparser:處理.ini結(jié)尾的配置文件
import configparser
config=configparser.ConfigParser() #實(shí)例化一個(gè)對(duì)象
config.read('php.ini') #選擇文件查看
### 查看
config.sections() #查看所有的標(biāo)題
config.options('section1') #查看某個(gè)標(biāo)題下,所有的key
config.items('section1') #查看某個(gè)標(biāo)題下,key和value
config.get('section1','age') #查看某個(gè)標(biāo)題下,key對(duì)應(yīng)的value值,str格式
config.getint('section1','age') #查看某個(gè)標(biāo)題下,key對(duì)應(yīng)的value值,int格式
config.getfloat('section1','age') #查看某個(gè)標(biāo)題下,key對(duì)應(yīng)的value值,float格式
config.has_option('testtest','test') #判斷某個(gè)標(biāo)題下是否有某個(gè)key
config.has_section('test') #判斷是否有某個(gè)標(biāo)題
### 修改
config.add_section('testtest') #添加一個(gè)標(biāo)題
config.set('testtest','test','445') #添加某個(gè)標(biāo)題下的key和value,必須是str
config.remove_option('testtest','test') #刪除某個(gè)標(biāo)題下key
config.remove_section('testtest') #刪除某個(gè)標(biāo)題,(key和value)也被刪除
config.write(open('test.ini','w')) #將修改寫(xiě)入文件,沒(méi)有這句文件不改變



浙公網(wǎng)安備 33010602011771號(hào)