python的三中程序-Python基礎(chǔ)_第1頁
python的三中程序-Python基礎(chǔ)_第2頁
python的三中程序-Python基礎(chǔ)_第3頁
python的三中程序-Python基礎(chǔ)_第4頁
python的三中程序-Python基礎(chǔ)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

python的三中程序_Python基礎(chǔ)?、?門1.1第?句Python代碼1.解釋器:即時調(diào)試代碼,代碼?法永久保存2.?件:永久保存代碼在D:\python_test\?錄下新建?件hello.py,編寫代碼如下print('helloworld')執(zhí)?hello.py,即pythonD:\python_test\hello.pypython內(nèi)部執(zhí)?過程如下:上?步中執(zhí)?pythonD:\python_test\hello.py時,明確的指出hello.py腳本由python解釋器來執(zhí)?。在linux平臺中如果想要類似于執(zhí)?shell腳本?樣執(zhí)?python腳本,例:./hello.py,那么就需要在hello.py?件的頭部指定解釋器,如下:#!/usr/bin/envpython#該?只對linux有效print('helloworld')ps:執(zhí)?前需給予hello.py執(zhí)?權(quán)限,chmod755hello.py1.2?件頭#!/usr/bin/envpython#Linux系統(tǒng)下有效#-*-coding:utf-8-*-1.3注釋注釋當(dāng)前?:#注釋多?'''被注釋內(nèi)容'''1.4執(zhí)?腳本傳?參數(shù)Python有?量的模塊,從?使得開發(fā)Python程序?常簡潔。類庫有包括三中:Python內(nèi)部提供的模塊業(yè)內(nèi)開源的模塊程序員??開發(fā)的模塊Python內(nèi)部提供?個sys的模塊,其中的sys.argv?來捕獲執(zhí)?執(zhí)?python腳本時傳?的參數(shù)1#!/usr/bin/envpython2#-*-coding:utf-8-*-34importsys56printsys.argv執(zhí)?C:\Users\Administrator>pythonD:\python_test\hello.pyarg1arg2arg3['D:\\python_test\\hello.py','arg1','arg2','arg3']1.5了解pyc?件執(zhí)?Python代碼時,如果導(dǎo)?了其他的.py?件,那么,執(zhí)?過程中會?動?成?個與其同名的.pyc?件,該?件就是Python解釋器編譯之后產(chǎn)?的字節(jié)碼。ps:代碼經(jīng)過編譯可以產(chǎn)?字節(jié)碼;字節(jié)碼通過反編譯也可以得到代碼。?、變量2.1變量的聲明和引?name='egon'#變量的聲明name#通過變量名,引?變量的值print(name)#引?并且打印變量名name對應(yīng)的值,即'egon'2.2標(biāo)識符命令規(guī)范變量名只能是字母、數(shù)字或下劃線的任意組合變量名的第?個字符不能是數(shù)字以下關(guān)鍵字不能聲明為變量名['and','as','assert','break','class','continue','def','del','elif','else','except','exec','finally','for','from','global','if','import','in','is','lambda','not','or','pass','print','raise','return','try','while','with','yield']2.3變量的賦值name1='lhf'name2='egon'name1='lhf'name2=name1注:變量名沒有儲藏值的作?,只起到綁定值的作?,改變?個變量的值,變量名重新指向?個值,原值物理地址不變。三、出?輸出python3中統(tǒng)?都是input,python2中有raw_input等同于python3的input,另外python2中也有input1.res=input("python3:")2.res=raw_input("python2:")3.res=input("python2:")1,2?論接收何種輸?,都被存為字符串賦值給res,3的意思是,?戶輸?何種類型,就以何種類型賦值給res四、運(yùn)算符1、算數(shù)運(yùn)算2、?較運(yùn)算3、賦值運(yùn)算4、位運(yùn)算5、邏輯運(yùn)算and注解:在Python中,and和or執(zhí)?布爾邏輯演算,如你所期待的?樣,但是它們并不返回布爾值;?是,返回它們實際進(jìn)??較的值之?。在布爾上下?中從左到右演算表達(dá)式的值,如果布爾上下?中的所有值都為真,那么and返回最后?個值。如果布爾上下?中的某個值為假,則and返回第?個假值or注解:使?or時,在布爾上下?中從左到右演算值,就像and?樣。如果有?個值為真,or?刻返回該值如果所有的值都為假,or返回最后?個假值注意or在布爾上下?中會?直進(jìn)?表達(dá)式演算直到找到第?個真值,然后就會忽略剩余的?較值and-or結(jié)合使?:結(jié)合了前?的兩種語法,推理即可。為加強(qiáng)程序可讀性,最好與括號連?,例如:(1and'x')or'y'6、成員運(yùn)算7.?份運(yùn)算8.運(yùn)算符優(yōu)先級:?上?下,優(yōu)先級從?到低五、流程控制1、條件語句if語句可單分?,多分?name=input('請輸??戶名字:')password=input('請輸?密碼:')ifname=='egon'andpassword=='123':print('egonloginsuccess')else:print('?戶名或密碼錯誤')'''egon-->超級管理員tom-->普通管理員jack,rain-->業(yè)務(wù)主管其他-->普通?戶'''name=input('請輸??戶名字:')ifname=='egon':print('超級管理員')elifname=='tom':print('普通管理員')elifname=='jack'orname=='rain':print('業(yè)務(wù)主管')else:print('普通?戶')2、while循環(huán)基本循環(huán)格式while條件:#循環(huán)體#如果條件為真,那么循環(huán)體則執(zhí)?#如果條件為假,那么循環(huán)體不執(zhí)?break:退出本層循環(huán)。continue:退出本次循環(huán),進(jìn)?下?次循環(huán)。利?標(biāo)志位tag控制循環(huán)。tag=Truewhiletag:username=input('username:')password=input('password:')ifusername=='egon'andpassword=='123':whiletag:cmd=input('>>:')ifcmd=='q':tag=Falsecontinueprint('------>%s'%cmd)3、for循環(huán)雙層嵌套打出99乘法表foriinrange(1,10):forjinrange(1,i+1):print('%s*%s=%s'%(i,j,i*j),end='')print()六、數(shù)據(jù)類型(數(shù)字、字符串)Python的數(shù)據(jù)類型分為:數(shù)字、字符串、列表、元組、字典、集合1、數(shù)字定義:a=1特性:1.只能存放?個值2.?經(jīng)定義,不可更改3.直接訪問分類:整型,長整型,布爾,浮點(diǎn),復(fù)數(shù)1.1整形Python的整型相當(dāng)于C中的long型,Python中的整數(shù)可以??進(jìn)制,?進(jìn)制,?六進(jìn)制表?。>>>1010--------->默認(rèn)?進(jìn)制>>>oct(10)'012'--------->?進(jìn)制表?整數(shù)時,數(shù)值前?要加上?個前綴“0”>>>hex(10)'0xa'--------->?六進(jìn)制表?整數(shù)時,數(shù)字前?要加上前綴0X或0xpython2.*與python3.*關(guān)于整型的區(qū)別python2.*在32位機(jī)器上,整數(shù)的位數(shù)為32位,取值范圍為-2**31~2**31-1,即-2147483648~2147483647在64位系統(tǒng)上,整數(shù)的位數(shù)為64位,取值范圍為-2**63~2**63-1,即-9223372036854775808~9223372036854775807python3.*整形長度?限制1.2長整形longpython2.*:跟C語?不同,Python的長整型沒有指定位寬,也就是說Python沒有限制長整型數(shù)值的??,但是實際上由于機(jī)器內(nèi)存有限,所以我們使?的長整型數(shù)值不可能?限?。在使?過程中,我們?nèi)绾螀^(qū)分長整型和整型數(shù)值呢?通常的做法是在數(shù)字尾部加上?個?寫字母L或?寫字母l以表?該整數(shù)是長整型的,例如:a=9223372036854775808L注意,?從Python2起,如果發(fā)?溢出,Python會?動將整型數(shù)據(jù)轉(zhuǎn)換為長整型,所以如今在長整型數(shù)據(jù)后?不加字母L也不會導(dǎo)致嚴(yán)重后果了。python3.*長整型,整型統(tǒng)?歸為整型1.3布爾boolTrue和False1和01.4浮點(diǎn)數(shù)floatPython的浮點(diǎn)數(shù)就是數(shù)學(xué)中的?數(shù),類似C語?中的double。在運(yùn)算中,整數(shù)與浮點(diǎn)數(shù)運(yùn)算的結(jié)果是浮點(diǎn)數(shù)浮點(diǎn)數(shù)也就是?數(shù),之所以稱為浮點(diǎn)數(shù),是因為按照科學(xué)記數(shù)法表?時,?個浮點(diǎn)數(shù)的?數(shù)點(diǎn)位置是可變的,?如,1.23*109和12.3*108是相等的。浮點(diǎn)數(shù)可以?數(shù)學(xué)寫法,如1.23,3.14,-9.01,等等。但是對于很?或很?的浮點(diǎn)數(shù),就必須?科學(xué)計數(shù)法表?,把10?e替代,1.23*109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。整數(shù)和浮點(diǎn)數(shù)在計算機(jī)內(nèi)部存儲的?式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的?浮點(diǎn)數(shù)運(yùn)算則可能會有四舍五?的誤差。1.5復(fù)數(shù)complex復(fù)數(shù)由實數(shù)部分和虛數(shù)部分組成,?般形式為x+yj,其中的x是復(fù)數(shù)的實數(shù)部分,y是復(fù)數(shù)的虛數(shù)部分,這?的x和y都是實數(shù)。注意,虛數(shù)部分的字母j??寫都可以。>>>1.3+2.5j==1.3+2.5JTrue1.6數(shù)字相關(guān)內(nèi)建函數(shù)2、字符串定義:它是?個有序的字符的集合,?于存儲和表?基本的?本信息,‘’或“”或‘’‘’‘’中間包含的內(nèi)容稱之為字符串特性:1.只能存放?個值2.不可變3.按照從左到右的順序定義字符集合,下標(biāo)從0開始順序訪問,有序補(bǔ)充:1.字符串的單引號和雙引號都?法取消特殊字符的含義,如果想讓引號內(nèi)所有字符均取消特殊意義,在引號前?加r,如name=r'l\thf'2.unicode字符串與r連?必需在r前?,如name=ur'l\thf'2.1字符串創(chuàng)建'helloworld'2.2字符串的常?操作res='helloworld'移除空?res='helloworld'print(res.strip())helloworld#移除字符串后?的空?分割print(res.split())['hello','world']長度res='helloworld'print(len(res))17索引res='helloworld'print(res[4])o切?res='helloworld'print(res[1:4])ell2.3有關(guān)?建函數(shù)字符串中的搜索和替換:S.find(substr,[start,[end]])#返回S中出現(xiàn)substr的第?個字母的標(biāo)號,如果S中沒有substr則返回-1。start和end作?就相當(dāng)于在S[start:end]中搜索S.index(substr,[start,[end]])#與find()相同,只是在S中沒有substr時,會返回?個運(yùn)?時錯誤S.rfind(substr,[start,[end]])#返回S中最后出現(xiàn)的substr的第?個字母的標(biāo)號,如果S中沒有substr則返回-1,也就是說從右邊算起的第?次出現(xiàn)的substr的?字母標(biāo)號S.rindex(substr,[start,[end]])S.count(substr,[start,[end]])#計算substr在S中出現(xiàn)的次數(shù)S.replace(oldstr,newstr,[count])#把S中的oldstr替換為newstr,count為替換次數(shù)。這是替換的通?形式,還有?些函數(shù)進(jìn)?特殊字符的替換S.strip([chars])#把S中前后chars中有的字符全部去掉,可以理解為把S前后chars替換為None注:可?于判斷字符串是否為空,字符串為空返回False,不為空時返回Ture。S.lstrip([chars])#把S中前chars中有的字符去掉S.rstrip([chars])#把S中后chars中有的字符全部去掉S.expandtabs([tabsize])#把S中的tab字符替換沒空格,每個tab替換為tabsize個空格,默認(rèn)是8個字符串的分割和組合:S.split([sep,[maxsplit]])#以sep為分隔符,把S分成?個list。maxsplit表?分割的次數(shù)。默認(rèn)的分割符為空?字符S.rsplit([sep,[maxsplit]])S.splitlines([keepends])#把S按照?分割符分為?個list,keepends是?個bool值,如果為真每?后?會保留?分割符。S.join(seq)#把seq代表的序列──字符串序列,?S連接起來字符串的mapping,這?功能包含兩個函數(shù):String.maketrans(from,to)#返回?個256個字符組成的翻譯表,其中from中的字符被??對應(yīng)地轉(zhuǎn)換成to,所以from和to必須是等長的。S.translate(table[,deletechars])#使?上?的函數(shù)產(chǎn)后的翻譯表,把S進(jìn)?翻譯,并把deletechars中有的字符刪掉。需要注意的是,如果S為unicode字符串,那么就不?持deletechars參數(shù),可以使?把某個字符翻譯為None的?式實現(xiàn)相同的功能。此外還可以使?codecs模塊的功能來創(chuàng)建更加功能強(qiáng)?的翻譯表。字符串中字符??寫的變換:S.lower()#?寫S.upper()#?寫S.swapcase()#??寫互換S.capitalize()#?字母?寫String.capwords(S)#這是模塊中的?法。它把S?split()函數(shù)分開,然后?capitalize()把?字母變成?寫,最后?join()合并到?起S.title()#只有?字母?寫,其余為?寫,模塊中沒有這個?法字符串的測試函數(shù)這些函數(shù)返回的都是bool值S.starstwith(prefix[,start[,end]])#是否以prefix開頭S.endswith(suffix[,start[,end]])#以suffix結(jié)尾S.isalnum()#是否全是字母和數(shù)字,并?少有?個字符S.isalpha()#是否全是字母,并?少有?個字符S.isdigit()#是否全是數(shù)字,并?少有?個字符S.isspace()#是否全是空?字符,并?少有?個字符S.islower()#S中的字母是否全是?寫S.isupper()#S中的字母是否便是?寫S.istitle()#S是否是?字母?寫的字符串在輸出時的對齊:S.ljust(width,[fillchar])#輸出width個字符,S左對齊,不?部分?fillchar填充,默認(rèn)的為空格。S.rjust(width,[fillchar])#右對齊S.center(width,[fillchar])#中間對齊S.zfill(width)#把S變成width長,并在右對齊,不?部分?0補(bǔ)?格式化字符串:s='name:{},age:{},sex:{}'print(s.format('ogen',18,'male','asdasda'))#多余的參數(shù)不會影響結(jié)果,少參數(shù)會報錯。七、課后作業(yè)1、編寫for循環(huán),利?索引遍歷出每?個字符msg='helloegon666'msg='helloegon666'foriinrange(len(msg)):print(msg[i])答案2、編寫while循環(huán),利?索引遍歷出每?個字符msg='helloegon666'msg='helloegon666'i=len(msg)j=0whileTrue:print(msg[j])j+=1ifi==j:break答案3、msg='helloalex'中的alex替換成SBmsg='helloalex'print(msg.replace('alex','SB'))答案4、msg='/etc/a.txt|365|get'將該字符的?件名,?件??,操作?法切割出來msg='/etc/a.txt|365|get'x='?件名:{a},kb,操作?式:{c}'print(x.format(a=msg.split('|')[0],b=msg.split('|')[1],c=msg.split('|')[2]))答案5、編寫while循環(huán),要求?戶輸?命令,如果命令為空,則繼續(xù)輸?whileTrue:x=input('請輸?命令:')ifnotx.strip():continueprint('>>>',x)break答案6、編寫while循環(huán),讓?戶輸??戶名和密碼,如果?戶為空或者數(shù)字,則重新輸?whileTrue:user=input('請輸??戶名:')passwd=input('請輸?密碼:')ifnotuser.strip()oruser.isdigit():continueprint('登錄成功')break答案7、編寫while循環(huán),讓?戶輸?內(nèi)容,判斷輸?的內(nèi)容以alex開頭的,則將該字符串加上_SB結(jié)尾whileTrue:str=input('請輸?內(nèi)容:')ifstr.startswith('alex'):print('%s%s'%(str,'_SB'))答案8、1.兩層while循

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論