Python編程基礎(chǔ) 課件 第2章 Python語法基礎(chǔ)_第1頁
Python編程基礎(chǔ) 課件 第2章 Python語法基礎(chǔ)_第2頁
Python編程基礎(chǔ) 課件 第2章 Python語法基礎(chǔ)_第3頁
Python編程基礎(chǔ) 課件 第2章 Python語法基礎(chǔ)_第4頁
Python編程基礎(chǔ) 課件 第2章 Python語法基礎(chǔ)_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章Python語法基礎(chǔ)/course-ans/courseportal/238244938.html了解了解熟悉掌握

學習目標了解代碼格式12熟悉標識符、關(guān)鍵字、運算符掌握變量和數(shù)據(jù)類型34了解數(shù)字類型,數(shù)字類型轉(zhuǎn)換主要內(nèi)容2.4基本數(shù)據(jù)類型2.3Python常量和變量2.2Python標識符和關(guān)鍵字2.1Python程序書寫格式主要內(nèi)容2.7基本輸入輸出2.6字符串2.5運算符和表達式2.1Python程序書寫格式Python程序是一系列Python語句的集合,用于執(zhí)行特定的任務或?qū)崿F(xiàn)特定的功能在書寫Python程序時,要遵循一定的格式,不能隨意將代碼寫在一起,否則解釋器不能識別程序代碼,造成程序不能運行.正確的程序書寫格式對于提高代碼的可讀性、可維護性和可重用性至關(guān)重要。2.1Python程序書寫格式2.1.1縮進程序是由語句塊構(gòu)成的,語句塊是由一條一條的Python語句組成,語句塊可以是一個模塊、一個函數(shù)、一個類或者一個文件。Python程序通過縮進來定義語句塊,因此,Python是一種對縮進敏感的語言。2.1Python程序書寫格式Python語言采用嚴格的“縮進”來表示程序邏輯。程序邏輯也就是所說的Python程序的層次關(guān)系。Python代碼的縮進可以通過Tab鍵控制(不建議),也可使用空格控制。空格是Python3首選的縮進方法,一般使用4個空格表示一級縮進Python3不允許混合使用制表符和空格進行縮進,建議采用4個空格的方式縮進代碼。。2.1Python程序書寫格式Python的縮進標準是使用四個空格進行縮進例如:ifx>0:print("x為正數(shù)")ify<0:print("y為負數(shù)")else:print("x是非正數(shù)")2.1Python程序書寫格式如果違反了Python的縮進規(guī)則,解釋器會拋出一個IndentationError異常例如,對于以下的具有一個多重循環(huán)的程序(大家思考,這段程序的功能是什么?),不同的縮進具有不同的含義。foriinrange(1,10):#代碼段1forjinrange(1,i+1):#代碼段2print("%d×%d=%-2d"%(j,i,i*j),end='')#代碼段3print('')#代碼段2print('')#代碼段12.1Python程序書寫格式foriinrange(1,10):#代碼段1forjinrange(1,i+1):#代碼段2 print("%d×%d=%-2d"%(j,i,i*j),end='')#代碼段3 print('')#代碼段3print('')#代碼段1在IDLE開發(fā)環(huán)境中編寫程序時,可對選中的代碼塊進行批量縮進和反縮進。菜單操作:Format|IndentRegion,F(xiàn)ormat|DedentRegion。鍵盤操作:Ctrl+](批量縮進),Ctrl+[(反縮進)Python代碼的縮進可以通過Tab鍵控制,也可使用空格控制。空格是Python3首選的縮進方法,一般使用4個表示一級縮進;Python3不允許混合使用Tab和空格。ifTrue:print("True")else:print("False”)print("False”)ifTrue:print("True")else:print("False")

print(”hello”)2.1Python程序書寫格式2.1.2注釋注釋是代碼中的輔助性文字,會被編譯器或解釋器略去,不被計算機執(zhí)行,一般用于程序員對代碼的說明,注釋是為了未來的自己或者他人方便理解程序,通常程序都需要進行注釋。包括單行注釋和多行注釋,單行注釋以“#”開頭,用于說明當前行或之后代碼的功能。2.1Python程序書寫格式#這是我的第一個程序print(“Helloworld.”)#這是輸出函數(shù)Python語言使用“#”(讀作夏普)表示一行注釋的開始。注釋具有以下作用:注釋一般用于在代碼中標明作者和版權(quán)信息解釋代碼原理和用途通過注釋單行代碼輔助程序調(diào)試。2.1Python程序書寫格式多行注釋是以三對單引號或者雙引號的語句,主要用于說明函數(shù)或類的功能。通常用于多行的程序說明。例如以下就是多行注釋。"""函數(shù)名:getUserName編寫者:袁連海編寫日期:2024.9.17修訂日期:"""菜單操作:Format→CommentOut Region/UncommentRegion。鍵盤操作:Alt+3(批量注釋)和Alt+4(解除注釋)2.1Python程序書寫格式2.1.3續(xù)行符Python程序是逐行編寫的,每行代碼長度并無限制,但從程序員角度,單行代碼太長并不利于閱讀。Python中的續(xù)行符為反斜杠“\”在列表([])、字典({})、元組(())或三引號定義的字符串('''或""")中的多行語句,不需要使用反斜杠。2.1Python程序書寫格式在書寫Python程序時,以下是大家要注意的:一般一行一條語句,可以使用反斜杠作續(xù)行符放在行尾;同一行中書寫多條語句,語句之間用分號;分割;注釋語句可以從任意位置開始;復合語句的邏輯關(guān)系必須縮進;注意括號或者分號要用英文字符。Python官方建議每行代碼不超過79個字符,若代碼過長應該換行。Python會將圓括號、中括號和大括號中的行進行隱式連接,我們可以根據(jù)這個特點實現(xiàn)過長語句的換行顯示。string=("Python是一種面向?qū)ο蟆⒔忉屝陀嬎銠C程序設(shè)計語言," "由GuidovanRossum于1989年底發(fā)明。" "第一個公開發(fā)行版發(fā)行于1991年," "Python源代碼同樣遵循GPL(GNUGeneralPublicLicense)協(xié)議。")現(xiàn)實生活中,人們常用一些名稱來標記事物。例如,每種水果都有一個名稱來標識。若希望在程序中表示一些事物,開發(fā)人員需要自定義一些符號和名稱,這些符號和名稱叫做標識符。

Python中的標識符需要遵守一定的規(guī)則。標示符由字母、下劃線和數(shù)字組成,且數(shù)字不能開頭。Python中的標識符是區(qū)分大小寫的。例如,andy和Andy是不同的標識符。Python中的標識符不能使用關(guān)鍵字

命名規(guī)則2.2Python標識符和關(guān)鍵字Python標識符用于標識變量、函數(shù)、類、模塊或其他對象的名稱Python中的標識符需要遵守一定的規(guī)則。標識符由字母(包括中文字符)、數(shù)字和下劃線組成。第一個字符必須是一個字母(a-z,A-Z)或下劃線(_),不能是數(shù)字或其他特殊字符。Python是大小寫敏感的語言,因此“name”和“Name”是兩個不同的標識符。標識符不能使用Python的保留關(guān)鍵字,如if、for、while、class、def等標識符命名建議:為了規(guī)范命名標識符,關(guān)于標識符的命名提以下建議:見名之意。常量名使用大寫的單個單詞或由下畫線連接的多個單詞。模塊名、函數(shù)名使用小寫的單個單詞或由下畫線連接的多個單詞。類名使用大寫字母開頭的單個或多個單詞。2.2Python標識符和關(guān)鍵字保留字,也稱為關(guān)鍵字,指被編程語言內(nèi)部定義并保留使用的標識符。要查看Python系統(tǒng)的關(guān)鍵字,可以執(zhí)行以下代碼輸出查看。>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']>>>關(guān)鍵字是Python已經(jīng)使用的、不允許開發(fā)人員重復定義的標識符。Python3中一共有35個關(guān)鍵字,每個關(guān)鍵字都有不同的作用。大家不用現(xiàn)在去記這些關(guān)鍵字,通過日積月累,這些關(guān)鍵字都會認識。關(guān)鍵字False await else import pass Nonebreakexcept in raise True classfinallyis return and continueforlambda try as def from nonlocalwhile assert del global not withasync elif if or yield2.3Python常量和變量常量是在程序中不會改變的量,如34、0x34ef8、3.1415、”howareyou.”等變量是指內(nèi)容可以改變的量Python語言變量名的命名規(guī)則與標識符命名規(guī)則相同,變量必須被初始化,否則會報錯變量用于保存和表示數(shù)據(jù)值的一種語法元素,以下都是變量賦值。score12=100#賦值整型變量price=99.5#浮點型test1_2="hello"#字符串2.3Python常量和變量程序在運行期間用到的數(shù)據(jù)會被保存在計算機的內(nèi)存單元中,為了方便存取內(nèi)存單元中的數(shù)據(jù),Python使用標識符來標識不同的內(nèi)存單元,如此,標識符與數(shù)據(jù)建立了聯(lián)系。標識內(nèi)存單元的標識符又稱為變量名Python通過賦值運算符“=”將內(nèi)存單元中存儲的數(shù)值與變量建立聯(lián)系,即定義變量,具體語法格式如下:變量

=值2.3Python常量和變量a=10首先創(chuàng)建一個字面量10,然后a引用這個對象,也就是a存放的是對象10的地址。10aPython語言是一種面向?qū)ο蟮娜躅愋偷慕忉屝陀嬎銠C程序設(shè)計語言,在Python語言中,一切都是對象,變量是對象,常量也是一個對象,這個與其他編程語言如C語言有很大區(qū)別。2.3Python常量和變量在Python語言中,變量不需要先申明,變量是對象的引用,實際數(shù)據(jù)包含在對象中,想使用變量時,可以考慮一個名字,然后將其用作變量例如:當執(zhí)行a=20這條語句時,解釋器會執(zhí)行以下流程:創(chuàng)建一個類型為整型、值為20的對象;創(chuàng)建一個變量名a把變量名a關(guān)聯(lián)到這個對象2.3Python常量和變量每個對象被創(chuàng)建時都有一個唯一的標識,可以用id()函數(shù)可以檢查變量引用對象的標識,可以認為它就是對象的內(nèi)存地址,若標識改變,說明變量引用的對象已經(jīng)改變。下面的代碼演示通過id()函數(shù)來獲得某個對象的標識。>>>a=10>>>b=10.0>>>c="abc">>>id(a),id(b),id(c)(2071956064,51387232,8508480)>>>2.3Python常量和變量用id函數(shù)可以查看變量關(guān)聯(lián)的對象的標識,若標識相同,可以認為變量引用的對象相同可以用is運算符直接判斷兩個變量是否關(guān)聯(lián)到同一個對象通過函數(shù)type查看對象的類型運算符(==等于)判斷兩個對象的值是否相等。2.3Python常量和變量運行并思考以下代碼:>>>a=50>>>b=a>>>type(a)<class'int'>>>>type(b)<class'int'>>>>b==aTrue>>>bisaTrue>>>id(b)2076347616>>>id(a)2076347616>>>>>>a=5.1>>>b=5.1>>>id(a)61676384>>>id(b)61676272>>>aisbFalse>>>a==bTrue>>>type(a)<class'float'>>>>type(b)<class'float'>2.4基本數(shù)據(jù)類型2.4基本數(shù)據(jù)類型Python語言基本數(shù)據(jù)類型包括數(shù)值類型、空值、布爾型、字節(jié)型與字符串類型Python語言數(shù)值類型表示數(shù)字或數(shù)值的數(shù)據(jù),也叫做數(shù)字類型,數(shù)值類型主要用于數(shù)學運算以及索引成員變量有四種內(nèi)置數(shù)值類型,分別是整型、浮點型、復數(shù)類型和布爾型。此外,為了使程序能描述現(xiàn)實世界中各種復雜數(shù)據(jù),Python包括列表(list)、元組(tuple)、字典(dict)和集合(set)等組合數(shù)據(jù)類型。2.4基本數(shù)據(jù)類型Python內(nèi)置的數(shù)字類型有整型(int)、浮點型(float)、復數(shù)類型(complex)和布爾類型(bool),其中int、float和complex分別對應數(shù)學中的整數(shù)、小數(shù)和復數(shù);bool類型比較特殊,它是int的子類,只有True和False兩種取值。整型:0101-239FalseTrue浮點型:

3.1415

4.2E-10

-2.334E-9復數(shù)類型:3.12+1.2.3j

-1.23-93j布爾類型:TrueFalse數(shù)字類型示例2.4基本數(shù)據(jù)類型2.4.1整型數(shù)據(jù)整數(shù)類型數(shù)據(jù),簡稱整型數(shù)據(jù),與數(shù)學中的概念一致,不帶小數(shù)點,有正值和負值之分,Python語言的整型數(shù)據(jù)可以用四種進制表示:十進制二進制八進制十六進制2.4基本數(shù)據(jù)類型十進制整數(shù):沒有前綴,由0到9組成。例如:20、301、-450、0等;

二進制整數(shù):以0b或0B為前綴,其后由0和1組成。例如:0b0101、-0B11011等;

八進制整數(shù):以0o或0O為前綴,其后由0至7的數(shù)字組成。例如:0O37、-0o342等;

十六進制整數(shù):以0x或0X為前綴,其后由0至9的數(shù)字和a至f字母或A至F字母組成。例如:0x754ef、-0X232DE等。2.4基本數(shù)據(jù)類型通過函數(shù)str()、oct()、hex()、bin()將整數(shù)數(shù)值轉(zhuǎn)換為十進制、八進制、十六進制、二進制的字符串也可以通過int()函數(shù)把十進制、八進制、十六進制、二進制的字符串轉(zhuǎn)換為整數(shù)數(shù)值2.4基本數(shù)據(jù)類型>>>a=2232>>>str(a)'2232'>>>oct(a)'0o4270'>>>hex(a)'0x8b8'>>>bin(a)'0b100010111000'>>>int("456")456>>>int("0o4270")>>>int("0o4270",base=8)2232>>>int("0x8b8",base=16)2232>>>int('0b100010111000',base=2)22322.4基本數(shù)據(jù)類型2.4.2浮點型數(shù)據(jù)十進制小數(shù)形式:由數(shù)字和小數(shù)點組成(必須有小數(shù)點),例如:2.454、0.、-19.11201等。指數(shù)形式:科學計數(shù)法表示,用字母e(或E)表示以10為底的指數(shù),e之前為數(shù)字部分,之后為指數(shù)部分。在指數(shù)形式表示浮點數(shù)時,e(或E)前面必須有數(shù)字,后面必須是整數(shù)。例如:e-5、1.2E-3.5、1e都是錯誤的2.4基本數(shù)據(jù)類型浮點數(shù)和整數(shù)在計算機內(nèi)部存儲的方式是不同的,整數(shù)運算永遠是精確的,然而浮點數(shù)的運算則可能會有四舍五入的誤差。2.4基本數(shù)據(jù)類型2.4.3復數(shù)型數(shù)據(jù)Python語言中,虛部通過后綴‘J’或‘j’來表示,因此復數(shù)的表示形式為:實部+虛部j或

實部+虛部J。例如:3+5j,-5.6+7.8J等。對于復數(shù)a,可以用a.real獲取其實部,a.imag獲取其虛部,a.conjugate()獲取其共軛復數(shù),其它數(shù)值類型與復數(shù)進行運算,結(jié)果是復數(shù)。complex()函數(shù)用于創(chuàng)建一個復數(shù)或者將一個數(shù)或字符串轉(zhuǎn)換為復數(shù)形式2.4基本數(shù)據(jù)類型2.4.4布爾型數(shù)據(jù)Python語言的布爾類型有兩個值:True和False,分別表示邏輯真和邏輯假。Python規(guī)定:任何數(shù)值類型的0(比如0、0.0、0e0等)、空字符串''、None,空元組()、空列表[]、空字典{}都被當作False,其他數(shù)值或非空字符串為True。注意,True和False的第一個字符是大寫。2.4基本數(shù)據(jù)類型空值是Python語言的一個特殊的值,表示一個空對象,用None表示。空值不是0空值常用于沒有返回值的函數(shù)結(jié)果二進制數(shù)據(jù)通常用于網(wǎng)絡數(shù)據(jù)傳輸、二進制圖片由bytes類型表示,以字節(jié)為單位進行處理。創(chuàng)建bytes類型數(shù)據(jù)需在常規(guī)的str類型前加個b以示區(qū)分和文件的保存等2.4基本數(shù)據(jù)類型>>>c=b"">>>type(c)<class'bytes'>>>>s=bytes()#創(chuàng)建空的字節(jié)型數(shù)據(jù)>>>type(s)<class'bytes'>>>>s="袁連海">>>t=s.encode(encoding='utf-8')>>>s=t.decode()>>>s'袁連海'2.4基本數(shù)據(jù)類型type()函數(shù)是Pyhton語言的一個內(nèi)置函數(shù),可以判斷變量的類型,適用于任何類型。isinstance()函數(shù)可以判斷一個對象是否是一個已知的類型。isinstance(a,type)其中a表示待判斷的對象,type可以是類、基本類型或由它們組成的元組。如果a的類型和type相同或是其中一個,則返回True,否則返回False。2.4基本數(shù)據(jù)類型三種基本的數(shù)值數(shù)據(jù)類型存在一種逐漸擴展關(guān)系:整數(shù)->浮點數(shù)->復數(shù)(整數(shù)是浮點數(shù)特例,浮點數(shù)是復數(shù)特例)當自動類型轉(zhuǎn)換達不到轉(zhuǎn)換需求時,可以使用類型轉(zhuǎn)換函數(shù),將數(shù)據(jù)從一種類型強制(或稱為顯式)轉(zhuǎn)換成另一種類型2.4基本數(shù)據(jù)類型運算符描

述int(x,base=10)將字符串x轉(zhuǎn)換為整數(shù),默認為10進制,int(123.45)結(jié)果為123float(x)將x轉(zhuǎn)換為浮點數(shù)float("241324.23")結(jié)果為241324.23complex(x)將x轉(zhuǎn)換為復數(shù),其中實部為x,虛部為0complex(x,

y)將x、y轉(zhuǎn)換為復數(shù),其中實部為x,虛部為y,如complex(1,4)的結(jié)果為(1+4j)str(x)將x轉(zhuǎn)換為字符串str(1234)的結(jié)果為'1234'chr(x)將一個整數(shù)轉(zhuǎn)換為一個字符,整數(shù)為字符的ASCII編碼chr(65)為'A'ord(x)將一個字符轉(zhuǎn)換為它的ASCII編碼的整數(shù)值ord("A")為65hex(x)將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串hex(255)的結(jié)果為'0xff'oct(x)將一個整數(shù)轉(zhuǎn)換為一個八進制字符串oct(255)的結(jié)果為'0o377'eval(x)將字符串x當作有效表達式求值,并返回計算結(jié)果eval("1+3+4")結(jié)果為8abs(x)絕對值,x的絕對值abs(-9.78)結(jié)果為9.78divmod(x,y)商余,(x//y,x%y),返回商和余數(shù)的元組,divmod(20,3)結(jié)果為元組(6,2)pow(x,y[,z])冪余,(x**y)%z,pow(3,8)結(jié)果為6561,pow(3,8,100)結(jié)果為61round(x[,d])四舍五入,d是保留小數(shù)位數(shù),默認值為0,round(-123.456,2)結(jié)果為-123.46max(x1,x2,…,xn)最大值,返回x1,x2,…,xn中的最大值,n不限max(3,10,4,4,83)結(jié)果為10min(x1,x2,…,xn)最小值,返回x1,x2,…,xn中的最小值,n不限min(0,9,5,4,3)結(jié)果為0float(x)將x變成浮點數(shù),增加小數(shù)部分float(12)結(jié)果為12.0;float(“1.23”)結(jié)果為1.23complex(x)將x變成復數(shù),增加虛數(shù)部分complex(4)結(jié)果為4+0j常用類型轉(zhuǎn)換函數(shù)和數(shù)值內(nèi)置函數(shù)2.4基本數(shù)據(jù)類型字符串是一個由單引號、雙引號或者三引號包裹的、有序的字符序列,字符串是不可變數(shù)據(jù)類型,將在后面章節(jié)詳細介紹字符串。下列是字符串的幾種表示:使用單引號:'Iamaboy.'使用雙引號:"dsf232*asfkwe" 使用三引號:'''adfklkaldfk23((23432''或者”””adfkdasfdkaowekakds28384”””'2.5運算符和表達式Python語言的運算符不僅類型豐富,而且使用方法靈活。根據(jù)操作數(shù)的不同,運算符可以分為:(1)算術(shù)運算符(+、–、*、/、**、//、%)(2)關(guān)系運算符(>、<、>=、<=、==、!=)(3)邏輯運算符(and、or、not)(4)位運算符(<<、>>、~、|、^、&)(5)賦值運算符(=、復合賦值運算符)(6)成員運算符(in、notin)(7)同一運算符(is、isnot)(8)下標運算符([])(9)其他(如函數(shù)調(diào)用運算符())2.5運算符和表達式表達式是將運算符、操作數(shù)和括號按一定規(guī)則連接起來的符合Python規(guī)則的式子。操作數(shù)可以是常量、變量或函數(shù)。表達式的類型就是表達式計算結(jié)果的類型。表達式中不同類型的常量及變量,均應變換為同一類型的量。2.5運算符和表達式2.5.1算術(shù)運算符和算術(shù)表達式算術(shù)運算符包括加法+、減法-、乘法*、除法/、整除//、冪運算**、取模%。其中*、/、//、**、%的優(yōu)先級高于+和-運算;**運算符表示乘方(冪)運算,其優(yōu)先級高于*和/'='表示賦值運算符,語法格式為:變量=表達式功能:把'='右邊表達式的值賦給'='左邊的變量,注意,復制運算符左邊必須是變量,不能是表達式。2.5運算符和表達式運算符與“=”結(jié)合在一起就是復合賦值運算符例如+=、-=、?=、/=。a+=b相當于a=a+b復合賦值運算符經(jīng)常用在自加、自減上,例如i+=1。這個同C語言的復合運算符一樣。賦值運算符'='與7種算術(shù)運算符(+、-、*、/、//、**、%)和5種位運算符(>>、<<、&、^、|)結(jié)合構(gòu)成12種復合賦值運算符。Python3.8中新增了一個賦值運算符——海象運算符“:=”,該運算符用于在表達式內(nèi)部為變量賦值,因形似海象的眼睛和長牙而得此命名。num_one=1#使用海象運算符為num_two賦值result=num_one+(num_two:=2)print(result)2.5運算符和表達式x+=1 等價于

x=x+1x*=x+1等價于 x=x*(x+1)x%=5等價于 x=x%5將同一個值賦給多個變量的賦值方式稱為鏈式賦值,語法格式為:變量名1=變量名2=…=變量名n=表達式同時給多個變量賦不同的值,稱為多變量同步賦值語法格式為:變量1,變量2,…,變量n=表達式1,表達式2,…,表達式n過程為:首先計算表達式右邊n個表達式的值,然后同時將表達式的值賦給左邊的n個變量。運算符

意義

實例

運算結(jié)果+

加 2+3 5-

減 4-6 -2? 乘 5*2 10?? 乘方 3**2 9

除法 7/3 2.3333333333333335// 整除(向下取整) 11//5 2%

求余數(shù) 20%6 2abs(x)

求x的絕對值 Abs(-20) 20divmod(x,y) 返回元組(x//y,x%y) divmod(11,5) (2,1)power(x,y) x的y次方 power(2,3) 8+= 加賦值 x+=y x=x+y2.5運算符和表達式2.5.2關(guān)系運算符和關(guān)系表達式關(guān)系運算符也叫比較運算符,用來判斷兩個操作數(shù)的大小。如果關(guān)系成立,結(jié)果為True,否則為False。假設(shè)x=2,y=32.5運算符和表達式2.5.3邏輯運算符和邏輯表達式Python中分別使用“or”,“and”,“not”這三個關(guān)鍵字作為邏輯運算符,其中or與and為雙目運算符,not為單目運算符。以x=10,y=20為例,具體如下:2.6.4邏輯運算符2.5運算符和表達式2.5.4位運算符與表達式位運算只能作用于整數(shù)類型,按位運算包括:按位與(&)、按位或(|)、

按位取反(~)、按位異或(^)、左移(<<)和右移(>>)

等等。位運算符用于按二進制位進行邏輯運算,操作數(shù)必須為整數(shù)。下面介紹位運算符的功能,并以a=2,b=3為例進行演示,具體如下:按位左移(<<)是指將二進制形式操作數(shù)的所有位全部左移n位,高位丟棄,低位補0。以十進制9為例,9<<4的結(jié)果為144,9轉(zhuǎn)為二進制后是00001001,將轉(zhuǎn)換后的二進制數(shù)左移4位。11144按位右移(>>)是指將二進制形式操作數(shù)的所有位全部右移n位,低位丟棄,高位補0。以十進制8為例,8轉(zhuǎn)換為二進制后是00001000,將轉(zhuǎn)換后的二進制數(shù)右移2位。8>>2的結(jié)果為2按位與(&)是指將參與運算的兩個操作數(shù)對應的二進制位進行“與”操作。當對應的兩個二進制位均為1時,結(jié)果位就為1,否則為0。以十進制9和3為例,9和3轉(zhuǎn)換為二進制后分別是00001001和00000011。按位或(|)是指將參與運算的兩個操作數(shù)對應的二進制位進行“或”操作。若對應的兩個二進制位有一個為1時,結(jié)果位就為1。若參與運算的數(shù)值為負數(shù),參與運算的兩個數(shù)均以補碼出現(xiàn)。以十進制8和3為例,8和3轉(zhuǎn)換為二進制后分別是00001000和00000011。按位異或(^)是指將參與運算的兩個操作數(shù)對應的二進制位進行“異或”操作。當對應的兩個二進制位中有一個為1,另一個為0時,結(jié)果位為1,否則結(jié)果位為0,也就是對應的兩個二進制位相同時為0,不同時為1.以十進制8和4為例,8和4轉(zhuǎn)換為二進制后分別是00001000和00000100。2.5運算符和表達式原碼、反碼、補碼是計算機中對數(shù)字的二進制表示方法,它們主要用于表示有符號整數(shù)。原碼是最直觀的二進制表示法,用來模擬人類的正負數(shù)概念。最高位(第一位)是符號位(0代表正,1代表負),其余位代表數(shù)值的大小,例如(以8位二進制為例):+5的原碼:00000101-5的原碼:100001012.5運算符和表達式反碼是對原碼的一種變換方式,用于簡化負數(shù)的表示。正數(shù)的反碼與其原碼相同,負數(shù)的反碼是在其原碼的基礎(chǔ)上,符號位不變,其余各位按位取反(即0變1,1變0),例如(以8位二進制為例):+5的反碼:00000101(與原碼相同)-5的反碼:11111010(-5的原碼10000101的除符號位外各位取反)2.5運算符和表達式補碼是對反碼的一種變換方式,是目前計算機系統(tǒng)中最普遍的方式來表示有符號整數(shù)。正數(shù)的補碼與其原碼相同,負數(shù)的補碼是在其反碼的基礎(chǔ)上加1。+5的補碼:00000101(與原碼、反碼相同)-5的補碼:11111011(-5的反碼11111010加1)2.5運算符和表達式2.5.5成員運算符和成員表達式成員運算符in和notin用于測試給定數(shù)據(jù)是否存在于序列(如列表、字符串)中,關(guān)于它們的介紹如下:2.6.5成員運算符in:如果指定元素在序列中返回True,否則返回False。notin:如果指定元素不在序列中返回True,否則返回False。2.5運算符和表達式is用來檢查兩個變量是否引用同一對象,如果相同返回True,不相同則返回False。2.3Python常量和變量2.5.6變量的比較在Python語言中,比較兩個變量方法包括:比較變量的值,比較變量引用的對象中的數(shù)據(jù)是否相同;比較標識,判斷兩個變量是否引用的是同一對象,指向的內(nèi)存地址是否相同;類型比較,比較兩個變量的類型是否相同。2.3Python常量和變量當且僅僅比較的兩個變量指向同一個對象時is才返回True,而==是說明指向同一個對象的兩個變量的值是相等的。當is返回為True時,==一定返回的是True,但是==返回的值為True,is不一定返回的是True小整數(shù)的范圍在[-5,257),對于小整數(shù)來說,id(number)是相同的,因為都是引用的同一塊內(nèi)存,大于等于257的整數(shù)引用的不是同一塊內(nèi)存。2.6字符串思考:什么是字符串?2.6字符串字符串是由字母、符號或者數(shù)字組成的字符序列。2.6字符串字符串是由字母、符號或者數(shù)字組成的字符序列字符串是Python中最常用的數(shù)據(jù)類型。可以使用引號(英文的單引號、雙引號或者三引號)來創(chuàng)建字符串>>>c1='Hello'#單引號>>>c2="Python"#雙引號>>>c3='''12345'''#三引號>>>c4='''Isaid:"HelloWorld!"''''helloword'使用單引號使用雙引號"helloword"使用三引號"""mynameisjackmynameisjack"""Python支持使用單引號、雙引號和三引號定義字符串,其中單引號和雙引號通常用于定義單行字符串,三引號通常用于定義多行字符串。2.6字符串2.6.1字符串創(chuàng)建字符串(str)是Python內(nèi)置的數(shù)據(jù)類型,用于存儲一系列字符(包括字母、數(shù)字、標點符號等)字符串也屬于序列,序列的基本操作有創(chuàng)建、索引、切片、連接以及屬于該對象的方法。在Python中可以用單引號('')、雙引號("")和三引號(""""""/'''''')創(chuàng)建字符串。2.6字符串Python使用反斜杠“\”對字符串里面的字符進行轉(zhuǎn)義,把一個字符前加反斜杠叫做轉(zhuǎn)義字符。例如,在字符串中的字符單引號(‘)前添加反斜杠“\’”,Python解釋器會將“\’”之后的單引號解釋為普通字符,而非字符串的定界符,以下代碼顯示轉(zhuǎn)義字符的含義。>>>print('let\'sgotoschool.')let'sgotoschool.2.6字符串表2-3轉(zhuǎn)義字符表轉(zhuǎn)義字符含義ASCII碼(16/10進制)\o空字符(NULL)00H/0\n換行符(LF)0AH/10\r回車符(CR)0DH/13\t水平制表符(HT)09H/9\v垂直制表(VT)0B/11\a響鈴(BEL)07/7\b退格符(BS)08H/8\f換頁符(FF)0CH/12\’單引號27H/39\”雙引號22H/34\\反斜杠5CH/92\問號字符

3F/63\ddd任意字符

三位八進制\xhh任意字符

二位十六進制2.6字符串在一段字符串中如果包含多個轉(zhuǎn)義字符,但又不希望轉(zhuǎn)義字符產(chǎn)生作用,此時可以使用原始字符串。原始字符串即在字符串開始的引號之前添加r或R,使它成為原始字符串。2.6字符串2.6.2字符串連接和重復運算符“+”和“*”用在兩個數(shù)值型對象之間時,表示對兩個數(shù)求和以及求積,那么,兩個字符串用“+”進行運算表示什么意思呢?運算符+用在兩個字符串之間是兩個字符串進行連接。運算符*用在字符串和一個整數(shù)之間表示字符串重復操作。2.6字符串>>>123+123#運算符+用在兩個數(shù)值之間,表示兩個數(shù)求和246>>>"123"+"123"#運算符+用在兩個字符串之間,表示兩個字符串連接'123123'>>>"123"+5#運算符+用在字符串和數(shù)值之間,類型出錯Traceback(mostrecentcalllast):File"<pyshell#3>",line1,in<module>"123"+5TypeError:Can'tconvert'int'objecttostrimplicitly>>>"123"*5#運算符*用在字符串和整數(shù)之間,字符串重復'123123123123123'>>>123*5#123是數(shù)值,”123”是字符串615>>>"123"*5.5#運算符+用在字符串和浮點數(shù)之間,類型出錯Traceback(mostrecentcalllast):File"<pyshell#5>",line1,in<module>"123"*5.5TypeError:can'tmultiplysequencebynon-intoftype'float'>>>2.6字符串2.6.3內(nèi)置函數(shù)和字符串對象的方法表2-4操作字符串的內(nèi)置函數(shù)函數(shù)名功能說明all(x)測試x是否所有元素都是Truex是組合類型或可迭代對象等any(x)測試變量x中是否含有True元素同上len(x)返回字符串x的長度(字符數(shù))同上max(x[,key])返回變量x中最大元素同上min(x[,key])返回變量x中最小元素同上zip(x[,y,…])返回zip對象,其元素是將參數(shù)對應位置的元素組合成的元組x、y等組合類型或可迭代對象等,且可以是不同類型enumerate(x)枚舉x中的元素,返回枚舉對象同上sorted(x[,key[,revers]])對參數(shù)x的所有元素進行排序同上Python中提供了實現(xiàn)字符串查找操作的find()方法,該方法可查找字符串中是否包含子串,若包含則返回子串首次出現(xiàn)的位置,否則返回-1。str.find(sub[,start[,end]])格式sub:指定要查找的子串。start:開始索引,默認為0。end:結(jié)束索引,默認為字符串的長度。word='t'string='Python'result=string.find(word)print(result)示例2結(jié)果字符串常用方法Python中提供了實現(xiàn)字符串替換操作的replace()方法,該方法可將當前字符串中的指定子串替換成新的子串,并返回替換后的新字符串。str.replace(old,new[,count])格式old:被替換的舊子串。new:替換舊子串的新子串。count:表示替換舊字符串的次數(shù)。string='Hesaid,"youhavetogoforward,'\'Thenturnleft,Thengoforward,andThenturnright."'#指定替換兩次new_string=string.replace("Then","then",2)print(new_string)示例Hesaid,"youhavetogoforward,thenturnleft,thengoforward,andThenturnright."結(jié)果字符串常用方法split()方法可以按照指定分隔符對字符串進行分割,該方法會返回由分割后的子串組成的列表。str.split(sep=None,maxsplit=-1)格式sep:分隔符,默認為空字符。maxsplit:分割次數(shù),默認值為-1,

表示不限制分割次數(shù)。string="Hello,mynameisWangHong"#以空格作為分割符,并分割2次print(string.split('',2))示例['Hello,','my','nameisWangHong']結(jié)果字符串常用方法join()方法使用指定的字符連接字符串并生成一個新的字符串。join()方法的語法格式如下。str.join(iterable)格式iterable:表示連接字符串的字符。symbol='*'world='Python'print(symbol.join(world))示例P*y*t*h*o*n結(jié)果字符串常用方法字符串中可能會包含一些無用的字符(如空格),在處理字符串之前往往需要先刪除這些無用的字符。Python中的strip()、lstrip()和rstrip()方法可以刪除字符串中的指定字符。字符串常用方法在特定情況下會對英文單詞的大小寫形式進行要求,表示特殊簡稱時全字母大寫,如CBA;表示月份、周日、節(jié)假日時每個單詞首字母大寫,如Monday。Python中支持字母大小寫轉(zhuǎn)換的方法有upper()、lower()、capitalize()和title()。字符串常用方法在使用Word處理文檔時可能需要對文檔的格式進行調(diào)整,如標題居中顯示、左對齊、右對齊等。Python提供了center()、ljust()、rjust()這3個方法來設(shè)置字符串的對齊方式。字符串常用方法2.6字符串上機練習字符串的方法2.7基本輸入輸出2.7.1input和print函數(shù)input()函數(shù)獲得用戶從鍵盤輸入的數(shù)據(jù)。無論用戶在鍵盤輸入什么內(nèi)容,input()函數(shù)返回結(jié)果都是字符串類型語法格式如下:

變量名=input([提示性文字])2.7基本輸入輸出【例2-1】

用戶從鍵盤輸入出生年份(4位數(shù)字,如1972),計算該用戶年齡,程序中使用input()函數(shù)輸入年份,使用datetime模塊獲取當前年份,然后用系統(tǒng)當年的年份減去輸入的年份,就是用戶的年齡。importdatetime#導入datetime模塊

input_data=input("請輸入您的出生年份:")#接受從鍵盤輸入的數(shù)據(jù),注意是字符串。birth_year=int(input_data)#由于輸入的是字符串,需要轉(zhuǎn)換成整數(shù)now_year=datetime.datetime.now().yearage=now_year-birth_yearprint("您的年齡為:"+str(age)+"歲")程序運行結(jié)果為:請輸入您的出生年份:1970您的年齡為:54歲>>>2.7基本輸入輸出print()函數(shù)用于輸出信息到控制臺(通常是命令提示符或終端窗口)。它可以將任何可打印的對象(如字符串、數(shù)字、列表、元組、字典等)轉(zhuǎn)換為字符串并顯示出來,用于調(diào)試、顯示信息或與用戶進行交互。print(*objects,sep='',end='\n',file=sys.stdout,flush=False)2.7基本輸入輸出*objects:是一個不定長參數(shù),可以傳入任意數(shù)量的對象作為參數(shù),它們將被轉(zhuǎn)換為字符串并輸出。例如,print("Hello","world")會輸出"Helloworld"。可選的關(guān)鍵字參數(shù):sep參數(shù)是對象之間的分隔符,默認為空格。如果想要改變對象之間的分隔符,可以傳入一個字符串作為該參數(shù)的值。例如,print(1,2,3,sep=',')會輸出"1,2,3"。end參數(shù)是輸出結(jié)束后的字符或字符串,默認為換行符(\n)。可以傳入一個字符串來改變默認行為。例如,print("Hello",end="")會輸出"Hello"(后面跟著一個空格而不是換行)。file是輸出的目標對象,默認為sys.stdout,即標準輸出流。可以傳入一個文件對象或其他具有寫屬性的對象,以將輸出重定向到該對象。flush:這是一個布爾值,決定是否立即將輸出語句輸出到目標對象。默認為False,表示輸出首先會被寫入緩存;如果設(shè)置為True,則會立即輸出。2.7基本輸入輸出2.7.2eval和exec函數(shù)eval()和exec()是Python的內(nèi)置函數(shù),它們允許執(zhí)行動態(tài)生成的代碼。eval()函數(shù)用于執(zhí)行一個字符串表達式,并返回表達式的計算結(jié)果>>>a=4>>>b=5>>>c=eval("a+b")>>>c9>>>a="12">>>b="34">>>c=eval(a+b)>>>c1234>>>注意在使用eval()函數(shù)時要特別小心,因為它會執(zhí)行傳入的任何代碼。2.7基本輸入輸出exec()函數(shù)用于執(zhí)行存儲在字符串或?qū)ο蟠a中的Python語句。與eval()不同,exec()用于執(zhí)行更復雜的代碼塊,如循環(huán)、條件語句、函數(shù)定義等。exec(object[,globals[,locals]])object參數(shù)是必需的,表示要執(zhí)行的代碼塊。可以是字符串、代碼對象或可迭代對象(包含字符串或代碼對象的列表)。globals(可選):與eval()相同。locals(可選):與eval()相同。2.7基本輸入輸出exec和eval兩個函數(shù)都用于執(zhí)行動態(tài)生成的代碼,并且在Python3中的函數(shù)聲明基本相同(都接受globals和locals參數(shù))。不同的是兩個函數(shù)的第一個輸入?yún)?shù):eval()只能用來計算單獨一個Python表達式的值,并返回結(jié)果;而exec()用來執(zhí)行Python語句,無返回值(始終返回None)。eval()主要用于簡單的數(shù)學計算或表達式求值;而exec()用于執(zhí)行更復雜的代碼塊,如函數(shù)定義、循環(huán)等。2.7基本輸入輸出2.7.3格式化輸出Python程序的print函數(shù)可以將數(shù)據(jù)輸出到顯示器上。格式化輸出包括三種方法:在字符串開頭的引號前添加f或F(Python3.6以上版本才支持))舊式字符串格式化方法,%運算符(求余符)也可用于字符串格式化。字符串format()方法2.7基本輸入輸出第一是使用格式化字符串字面值,要在字符串開頭的引號前添加f或F。在這種字符串中,可以在{和}字符之間輸入引用的變量,或字面值的Python表達式。注意,這種方式3.5版本不支持。>>>year=24>>>name=“tom”>>>f'"{name}is{year}yearsold."tomis24yearsold.第二種格式化輸出是%運算符與字符串和格式化參數(shù)一起使用,%符號通常用于字符串格式化,字符串具有一種特殊的內(nèi)置操作,它可以使用%進行格式化。format%values格式字符串真實數(shù)據(jù)format表示一個字符串,該字符串中包含單個或多個為真實數(shù)據(jù)占位的格式符;values表示單個或多個真實數(shù)據(jù);%代表執(zhí)行格式化操作,即將format中的格式符替換為values。不同的格式符為不同類型的數(shù)據(jù)預留位置,常見的格式符如下所示。2.7基本輸入輸出例如:>>>print("Hello,%s!"%"world")Hello,world!>>>year=24>>>name="tom">>>print("%sis%dyearsold."%

溫馨提示

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

評論

0/150

提交評論