版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python程序設(shè)計(jì)與案例教程延時(shí)符
Python基礎(chǔ)項(xiàng)目2延時(shí)符項(xiàng)目概述“九層之臺(tái),起于累土”,再宏偉的建筑都始于堅(jiān)實(shí)的地基。學(xué)習(xí)Python編程也是如此,掌握扎實(shí)的基礎(chǔ)知識(shí)是開(kāi)啟編程之旅的關(guān)鍵一步。在編寫(xiě)出功能強(qiáng)大的Python程序之前,我們需要先理解Python的基礎(chǔ)知識(shí)。本項(xiàng)目將帶你系統(tǒng)學(xué)習(xí)Python的基礎(chǔ)知識(shí),包括基本語(yǔ)法、代碼編寫(xiě)規(guī)范、數(shù)據(jù)類(lèi)型、運(yùn)算符等內(nèi)容。1延時(shí)符任務(wù)1基本語(yǔ)法2任務(wù)1基本語(yǔ)法·知識(shí)準(zhǔn)備
通過(guò)本任務(wù),你將學(xué)習(xí)Python編寫(xiě)規(guī)范、標(biāo)識(shí)符的命名規(guī)范、保留關(guān)鍵字、常量和變量、輸入輸出函數(shù)的使用方法,以及如何避免常見(jiàn)的語(yǔ)法錯(cuò)誤。掌握這些知識(shí)是編寫(xiě)正確、高效代碼的基礎(chǔ),也是進(jìn)一步學(xué)習(xí)Python編程的關(guān)鍵。3學(xué)習(xí)目標(biāo)01掌握Python編寫(xiě)規(guī)范、標(biāo)識(shí)符和保留字的使用規(guī)則,能夠正確命名變量和函數(shù)0203理解變量與常量的概念,能夠在程序中正確聲明和使用變量熟練使用輸入輸出函數(shù),能夠編寫(xiě)簡(jiǎn)單的交互式程序4延時(shí)符目錄
Contents編寫(xiě)規(guī)范01保留文字03輸入輸出函數(shù)05標(biāo)識(shí)符02變量與常量04綜合實(shí)例065任務(wù)1基本語(yǔ)法圖2-1Python
基本語(yǔ)法要素關(guān)系圖6一、編寫(xiě)規(guī)范編寫(xiě)規(guī)范是編程中的“交通規(guī)則”,在Python中,編寫(xiě)規(guī)范是確保代碼清晰、易讀和易維護(hù)的關(guān)鍵。它不僅涉及代碼的功能實(shí)現(xiàn),還包括代碼的呈現(xiàn)方式。從提示符的使用到注釋符的規(guī)范,從語(yǔ)句換行的技巧到縮進(jìn)的一致性,再到空行和空格的合理運(yùn)用,每一個(gè)細(xì)節(jié)都影響著代碼的可讀性和可維護(hù)性。7如同語(yǔ)文課本古詩(shī)詞的注釋?zhuān)琍ython中的注釋是在代碼中添加的標(biāo)注性文字,能夠幫助程序員更好地閱讀和維護(hù)代碼。注釋的內(nèi)容在程序運(yùn)行中會(huì)被Python解釋器完全忽略,不會(huì)影響程序的執(zhí)行結(jié)果。Python支持以下兩種注釋方式:?jiǎn)涡凶⑨尯投嘈凶⑨尅?.注釋一、編寫(xiě)規(guī)范8(1)單行注釋單行注釋以“#”開(kāi)頭,“#”后面的內(nèi)容用于說(shuō)明當(dāng)前行或當(dāng)前行之后代碼的功能。單行注釋既可以單獨(dú)占一行,也可以位于標(biāo)識(shí)的代碼之后,與標(biāo)識(shí)的代碼共占一行。示例如下:#社區(qū)人口基數(shù)字段(數(shù)據(jù)來(lái)自民政部2023年報(bào))town_population=45800sensor_data=36.5#當(dāng)前熱成像儀采集溫度值為了保證注釋的可讀性,Python官方建議“#”后面先添加一個(gè)空格,再添加相應(yīng)的說(shuō)明文字;若單行注釋與代碼共占一行,注釋和代碼之間至少應(yīng)有兩個(gè)空格。一、編寫(xiě)規(guī)范9(2)多行注釋在Python中,使用一對(duì)的3個(gè)連續(xù)的單引號(hào)或雙引號(hào)分別作為注釋的開(kāi)頭和結(jié)尾,可以一次性注釋多行內(nèi)容,引號(hào)內(nèi)的內(nèi)容全部是注釋內(nèi)容。語(yǔ)法格式如下:‘’’第一行注釋內(nèi)容第二行注釋內(nèi)容......‘’’“””第一行注釋內(nèi)容第二行注釋內(nèi)容.......“””一、編寫(xiě)規(guī)范102.縮進(jìn)在Python中,代碼縮進(jìn)是語(yǔ)法規(guī)則的一部分,用于表示代碼塊的層次結(jié)構(gòu)。Python代碼縮進(jìn)可以使用Tab鍵或空格,一個(gè)Tab鍵通常表示一個(gè)縮進(jìn)量,但其寬度取決于編輯器的設(shè)置(可能是2個(gè)、4個(gè)或8個(gè)空格)。為了保持代碼的一致性和可讀性,Python官方推薦使用4個(gè)空格作為縮進(jìn),并配置編輯器將Tab鍵自動(dòng)轉(zhuǎn)換為空格。例如:ifcondition:
print("條件成立")
#縮進(jìn)4個(gè)空格
do_something()
#縮進(jìn)4個(gè)空格else:
print("條件不成立")
#縮進(jìn)4個(gè)空格
注意:
Python
3不允許混合使用
Tab鍵和空格鍵,混合使用會(huì)導(dǎo)致代碼格式不一致,并可能引發(fā)IndentationError,使程序無(wú)法正常運(yùn)行。
一、編寫(xiě)規(guī)范11下面例舉幾種常見(jiàn)的縮進(jìn)錯(cuò)誤:(1)縮進(jìn)不一致ifcondition:
print("條件成立")
#縮進(jìn)4個(gè)空格
print("這里縮進(jìn)不一致")
#縮進(jìn)3個(gè)空格,會(huì)導(dǎo)致IndentationError(2)缺少縮進(jìn)ifcondition:print("缺少縮進(jìn)")
#未縮進(jìn),會(huì)導(dǎo)致IndentationError(3)混用空格和Tabifcondition:
print("使用空格縮進(jìn)")
#縮進(jìn)4個(gè)空格
print("使用Tab縮進(jìn)")
#混用Tab和空格,會(huì)導(dǎo)致IndentationError一、編寫(xiě)規(guī)范123.語(yǔ)句換行Python支持在括號(hào)(圓括號(hào)()、方括號(hào)[]、花括號(hào){})內(nèi)、使用反斜杠(\)換行,以下是常見(jiàn)的3種情況:(1)第二行縮進(jìn)到括號(hào)的起始位置規(guī)則:如果括號(hào)內(nèi)有多個(gè)參數(shù)或元素,第二行可以縮進(jìn)到括號(hào)的起始位置。這種方式適用于函數(shù)調(diào)用、列表、元組、字典等場(chǎng)景,但應(yīng)避免過(guò)度換行導(dǎo)致代碼冗長(zhǎng)。例如:#函數(shù)調(diào)用換行foo=long_function_name(var_one,var_two,
var_three,var_four)#列表?yè)Q行my_list=[
"apple","banana","cherry",
"date","elderberry"]說(shuō)明:第二行與第一行的括號(hào)起始位置對(duì)齊。這種方式使代碼結(jié)構(gòu)清晰,便于閱讀。一、編寫(xiě)規(guī)范13(2)第二行縮進(jìn)4個(gè)空格規(guī)則:如果起始括號(hào)后直接換行,第二行應(yīng)縮進(jìn)4個(gè)空格。這種方式常用于函數(shù)定義、類(lèi)定義等場(chǎng)景。例如:#函數(shù)定義換行def
long_function_name(
var_one,var_two,var_three,
var_four):
print(var_one,var_two,var_three,var_four)#類(lèi)定義換行classMyClass(
BaseClassOne,BaseClassTwo):
pass說(shuō)明:第二行縮進(jìn)4個(gè)空格,與函數(shù)體或類(lèi)體保持一致。這種方式適用于較長(zhǎng)的參數(shù)列表或基類(lèi)列表。
一、編寫(xiě)規(guī)范14(3)使用反斜杠(\)換行規(guī)則:當(dāng)表達(dá)式過(guò)長(zhǎng)時(shí),可以使用反斜杠(\)進(jìn)行換行。這種方式適用于二元運(yùn)算符(如+、.)和長(zhǎng)字符串的換行。例如:#使用反斜杠換行result=var_one+var_two+\
var_three+var_four#長(zhǎng)字符串換行message="Thisisaverylongstringthat"\
"spansmultiplelines."#鏈?zhǔn)椒椒ㄕ{(diào)用換行session.query(MyTable).\
filter_by(id=1).\
one()說(shuō)明:反斜杠(\)用于顯式換行,表示下一行是當(dāng)前行的延續(xù)。二元運(yùn)算符(如+、.)應(yīng)放在行末。反斜杠換行應(yīng)盡量避免,優(yōu)先使用括號(hào)換行。反斜杠換行容易出錯(cuò),且不符合PEP8的推薦。
一、編寫(xiě)規(guī)范15標(biāo)識(shí)符可以簡(jiǎn)單地理解為一個(gè)名字,如每個(gè)人都有自己的名字,它是編程中用于識(shí)別變量、函數(shù)、類(lèi)、模塊和其他對(duì)象的名稱(chēng)。一、編寫(xiě)規(guī)范16在Python中,標(biāo)識(shí)符的命名需要遵循一定的規(guī)則:(1)標(biāo)識(shí)符由字母(英文字母A-Z,a-z)、數(shù)字(0-9)和下劃線“_”組成。(2)標(biāo)識(shí)符必須以字母或下劃線開(kāi)頭,不能以數(shù)字開(kāi)頭。(3)標(biāo)識(shí)符不允許使用Python的保留字,如if、else、for等。(4)標(biāo)識(shí)符不能包含空格、特殊符號(hào)(如@、$、#等)。(5)標(biāo)識(shí)符是嚴(yán)格區(qū)分大小寫(xiě)的,例如,變量名var和Var被視為兩個(gè)不同的變量。二、標(biāo)識(shí)符17合法的標(biāo)識(shí)符示例如下:username:表示用戶(hù)名。age:表示年齡。student_id:表示學(xué)生編號(hào)。course_name:表示課程名稱(chēng)。非法的標(biāo)識(shí)符示例如下:4word:以數(shù)字開(kāi)頭,不合法。try:是Python中的保留字,不合法。$money:包含特殊字符$,不合法。二、標(biāo)識(shí)符18標(biāo)識(shí)符命名時(shí),建議還要遵循以下兩個(gè)原則:(1)“見(jiàn)名思義”的原則:標(biāo)識(shí)符取名應(yīng)有意義,增加程序可讀性。例如使用name表示姓名,使用student表示學(xué)生。(2)PEP8標(biāo)準(zhǔn)的命名規(guī)范:類(lèi)型規(guī)范示例變量/函數(shù)小寫(xiě)+下劃線式student_name類(lèi)名大駝峰式DataParser常量全大寫(xiě)+下劃線式MAX_LENGTH二、標(biāo)識(shí)符19注意:1.雖然Python允許使用漢字作為標(biāo)識(shí)符,但出于可讀性和兼容性的考慮,通常不建議這樣做。例如,“我的座右銘="我命由我不由天"”是一個(gè)合法的標(biāo)識(shí)符,但最好避免使用。2.Python中以下劃線開(kāi)頭的標(biāo)識(shí)符具有特殊意義,一般應(yīng)避免使用相似的標(biāo)識(shí)符。例如:(1)以單下劃線開(kāi)頭的標(biāo)識(shí)符(如_width)表示不能被直接訪問(wèn)的類(lèi)屬性。(2)以雙下劃線開(kāi)頭的標(biāo)識(shí)符(如__add)表示類(lèi)的私有成員。(3)以雙下劃線開(kāi)頭和結(jié)尾的是Python中專(zhuān)用的標(biāo)識(shí),如__init__()表示構(gòu)造函數(shù)。標(biāo)識(shí)符是編程中不可或缺的一部分,它們?yōu)槌绦虻母鱾€(gè)對(duì)象提供了唯一的名稱(chēng)和標(biāo)識(shí),通過(guò)遵循特定的命名規(guī)則和約定,使代碼更加清晰、具有可讀性和一致性,有助于團(tuán)隊(duì)協(xié)作和代碼維護(hù)。二、標(biāo)識(shí)符20Python保留字是一組具有特殊意義的單詞,又稱(chēng)為關(guān)鍵字。是Python語(yǔ)言預(yù)先創(chuàng)建并保留使用,不允許重復(fù)定義使用的標(biāo)識(shí)符。這些保留字全部存儲(chǔ)在keyword模塊的變量kwlist中,通過(guò)變量kwlist可查看Python中所有的保留字。示例代碼如下:importkeywordprint(keyword.kwlist)三、保留字21
FalseawaitelseimportpassNone
breakexceptinraiseTrueclass
finallyisreturnandcontinuefor
lambdatryasdeffromnonlocal
whileassertdelglobalnotwith
asyncelififoryieldPython中所有的關(guān)鍵字如下:三、保留字22每個(gè)保留字的作用,可通過(guò)“help(“保留字”)”查看詳細(xì)信息。示例代碼如下:#查看保留字import的詳細(xì)信息print(help(“import”))請(qǐng)注意,保留字大部分是小寫(xiě)字母,不能用作變量名和函數(shù)名。在Python程序中,如果使用了保留字作為變量名或函數(shù)名,會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤,從而使程序無(wú)法正常運(yùn)行。三、保留字23在Python中,變量是用來(lái)存儲(chǔ)數(shù)據(jù)的容器。變量不需要提前聲明類(lèi)型,可以直接賦值使用,變量的類(lèi)型由所賦的值決定,可以隨時(shí)通過(guò)賦值語(yǔ)句來(lái)創(chuàng)建和修改。變量名就是標(biāo)識(shí)符的一種,命名時(shí)應(yīng)遵循標(biāo)識(shí)符規(guī)則,應(yīng)使用有意義的變量名,具有描述性,能夠清晰地表達(dá)變量的用途,避免使用無(wú)意義的單字母變量名,除非是臨時(shí)變量。四、變量與常量24(1)創(chuàng)建變量定義單個(gè)變量,示例代碼如下:student_age=18#創(chuàng)建變量student_age,賦值為18student_name="Alice"#創(chuàng)建字符串類(lèi)型變量product_price=19.99#創(chuàng)建浮點(diǎn)數(shù)變量is_passed=True#創(chuàng)建布爾類(lèi)型變量Python允許在一行代碼中同時(shí)為多個(gè)變量賦值。示例代碼如下:a,b,c=1,2,3#執(zhí)行后,a的值為1,b的值為2,c的值為3Python還允許直接交換兩個(gè)變量的值,而不需要使用臨時(shí)變量。示例代碼如下:x,y=10,30#同時(shí)定義兩個(gè)變量x,y=y,x#執(zhí)行后,x的值變?yōu)?0,y的值變?yōu)?0四、變量與常量25(2)修改變量通過(guò)重新賦值即可修改變量的值,例如模擬學(xué)生年齡的增長(zhǎng)。示例代碼如下:student_age=16#創(chuàng)建變量student_age,賦值為16student_age=20#修改變量student_age的值為20(3)改變變量的類(lèi)型通過(guò)給變量重新賦值,就可以改變變量的數(shù)據(jù)類(lèi)型。示例代碼如下:student_id=2023001#變量student_id的類(lèi)型是整數(shù)(int類(lèi)型)student_id="李明"#變量student_id的類(lèi)型變?yōu)樽址╯tr類(lèi)型)四、變量與常量26(4)使用變量進(jìn)行計(jì)算示例代碼如下:score1=85score2=90total_score=score1+score2print(f"學(xué)生的總成績(jī)是:{total_score}")運(yùn)行結(jié)果如下:學(xué)生的總成績(jī)是:175四、變量與常量27變量的命名還應(yīng)注意養(yǎng)成良好的編碼習(xí)慣:(1)避免使用小寫(xiě)字母l和大寫(xiě)字母O,因?yàn)槿菀着c數(shù)字1和0混淆,降低代碼的可讀性,給團(tuán)隊(duì)成員在調(diào)試代碼時(shí)造成困難。以下是不良的命名習(xí)慣和良好的命名習(xí)慣,示例代碼如下:#容易混淆的命名height_l=170#l與數(shù)字1混淆width_O=50#O與數(shù)字0混淆#清晰的命名height=170width=50area=height*widthprint(area)四、變量與常量28(2)給變量賦值時(shí),除非字符串中有特別要求輸入全角空格(中文字符空格),否則一定不要使用全角空格,使用全角空格會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤或邏輯錯(cuò)誤。全角空格看起來(lái)和半角空格(英文字符空格)非常相似,不容易發(fā)現(xiàn),會(huì)給代碼調(diào)試增加難度。示例代碼如下:#語(yǔ)法錯(cuò)誤name
="張三"
#使用全角空格,Python解釋器無(wú)法識(shí)別全角空格,會(huì)導(dǎo)致SyntaxError。#邏輯錯(cuò)誤
ifname=="張三":
#如果name中包含全角空格,條件判斷會(huì)失敗
print("匹配成功")四、變量與常量29在Python中,常量是用于存儲(chǔ)固定值的標(biāo)識(shí)符,這些值在程序運(yùn)行過(guò)程中通常不會(huì)改變。Python語(yǔ)言并沒(méi)有真正的常量概念,為了區(qū)分常量和變量,Python社區(qū)約定使用全大寫(xiě)字母和下劃線來(lái)命名常量(例如
MAX_VALUE)。需要注意的是,這種命名方式只是一種約定,Python本身不提供對(duì)常量的強(qiáng)制保護(hù)。并不能真正阻止值的修改,因此在編寫(xiě)代碼時(shí),我們需要自覺(jué)遵守這種規(guī)范,以保證代碼的可讀性和可維護(hù)性。四、變量與常量30(1)創(chuàng)建常量通過(guò)賦值操作創(chuàng)建常量,并使用大寫(xiě)字母命名。示例代碼如下:#創(chuàng)建一個(gè)常量PIPI=3.14159#定義色彩空間標(biāo)準(zhǔn)常量RGB_MAX_VALUE=255#表示RGB顏色最大值#設(shè)置重力加速度常量GRAVITATIONAL_ACCELERATION=9.80665#浮點(diǎn)型物理常量四、變量與常量31(2)使用常量在程序中使用常量時(shí),可以直接引用其名稱(chēng)。示例代碼如下:PI=3.14159radius=5area=PI*radius**2#使用常量PI計(jì)算圓的面積print("圓的面積:",area)運(yùn)行結(jié)果如下:圓的面積:78.53975四、變量與常量32(3)偽常量偽常量是指形式上像常量但實(shí)際上可以被修改的值。示例代碼如下:#定義偽常量PI=3.14159#使用偽常量計(jì)算圓的周長(zhǎng)radius=5circumference=2*PI*radiusprint("圓的周長(zhǎng):",circumference)#偽常量可以被修改(不推薦使用)PI=3.14#不推薦這樣做print("修改后的PI值:",PI)注意:在實(shí)際編程中,應(yīng)盡量避免修改所謂的“常量”,以保持代碼的可讀性和可維護(hù)性。四、變量與常量33變量與常量對(duì)比四、變量與常量34在Python中,程序通常需要與用戶(hù)進(jìn)行交互,即從用戶(hù)那里獲取輸入數(shù)據(jù),并將處理結(jié)果輸出到屏幕上。Python提供了兩個(gè)內(nèi)置函數(shù)來(lái)實(shí)現(xiàn)這一功能:input()函數(shù)用于輸入,print()函數(shù)用于輸出。五、輸入與輸出函數(shù)35STEP011.input()函數(shù)input()函數(shù)用于從鍵盤(pán)接收用戶(hù)輸入的數(shù)據(jù),并返回一個(gè)字符串類(lèi)型的結(jié)果。它的基本語(yǔ)法如下:prompt:可選參數(shù),用于顯示提示信息,告訴用戶(hù)需要輸入什么內(nèi)容,如果不提供,則不會(huì)顯示任何提示信息。input([prompt])語(yǔ)法格式返回值:用戶(hù)輸入的內(nèi)容,始終返回字符串類(lèi)型。五、輸入與輸出函數(shù)36實(shí)例2.1.1——接收用戶(hù)輸入的賬號(hào)和密碼程序代碼如下:#接收用戶(hù)輸入的賬號(hào)和密碼user_name=input("請(qǐng)輸入賬號(hào):")#提示用戶(hù)輸入賬號(hào)password=input("請(qǐng)輸入密碼:")#提示用戶(hù)輸入密碼#輸出登錄成功信息print("登錄成功!")運(yùn)行結(jié)果如下:請(qǐng)輸入賬號(hào):admin請(qǐng)輸入密碼:123456登錄成功!五、輸入與輸出函數(shù)37實(shí)例2.1.2——將用戶(hù)輸入的字符串轉(zhuǎn)換為整數(shù)程序代碼如下:#獲取用戶(hù)輸入age=input("請(qǐng)輸入您的年齡:")#input()函數(shù)返回的是字符串類(lèi)型#將字符串轉(zhuǎn)換為整數(shù)age=int(age)#使用int()函數(shù)將字符串轉(zhuǎn)換為整數(shù)#輸出結(jié)果print("您的年齡是:",age)假設(shè)用戶(hù)輸入18,運(yùn)行結(jié)果如下:請(qǐng)輸入您的年齡:18您的年齡是:18五、輸入與輸出函數(shù)382.print()函數(shù)print()函數(shù)用于將數(shù)據(jù)輸出到控制臺(tái)。它可以輸出任何類(lèi)型的數(shù)據(jù),并且支持格式化輸出。其基本語(yǔ)法如下:*objects:表示輸出的數(shù)據(jù)。輸出多個(gè)數(shù)據(jù)時(shí),數(shù)據(jù)之間需要用逗號(hào)分隔。sep:可選參數(shù),用于設(shè)定數(shù)據(jù)之間使用的分隔符,默認(rèn)值為空格。end:可選參數(shù),用于設(shè)定輸出結(jié)果以什么結(jié)尾,默認(rèn)值為換行符\n。file:可選參數(shù),表示數(shù)據(jù)要寫(xiě)入的文件對(duì)象,默認(rèn)值為sys.stdout,表示標(biāo)準(zhǔn)輸出流,默認(rèn)情況下程序會(huì)將結(jié)果輸出到控制臺(tái)。flush:可選參數(shù),表示是否刷新標(biāo)準(zhǔn)輸出流,默認(rèn)值為False,表示不刷新。print(*objects,
sep='
',
end='\n',
file=None,
flush=False)語(yǔ)法格式五、輸入與輸出函數(shù)39實(shí)例2.1.3——輸出個(gè)人信息程序代碼如下:#輸出個(gè)人信息name="小王"age=18address="福建"print("姓名:",name)#輸出姓名print("年齡:",age)#輸出年齡print("地址:",address)#輸出地址運(yùn)行結(jié)果如下:姓名:小王年齡:18地址:福建五、輸入與輸出函數(shù)40實(shí)例2.1.4——參數(shù)的使用通過(guò)使用sep和end參數(shù),可以自定義輸出的分隔符和結(jié)束符。程序代碼如下:name="小王"age=18address="福建"#使用sep參數(shù)設(shè)置分隔符print("姓名","年齡","地址",sep="|")#使用end參數(shù)設(shè)置結(jié)束符print("Hello",end="")print("World!")#輸出到文件withopen("output.txt","w")asf:print("姓名:小王",file=f)print("信息已保存到output.txt文件中!")五、輸入與輸出函數(shù)41實(shí)例2.1.5——格式化輸出語(yǔ)句name="小王"age=18address="福建"#使用%格式化輸出print("姓名:%s,年齡:%d,地址:%s"%(name,age,address))#使用str.format()格式化輸出print("姓名:{},年齡:{},地址:{}".format(name,age,address))#使用f-string格式化輸出print(f"姓名:{name},年齡:{age},地址:{address}")五、輸入與輸出函數(shù)42實(shí)例2.1.6——用戶(hù)信息錄入與輸出程序代碼如下:print("歡迎使用用戶(hù)信息錄入系統(tǒng)!")#輸入用戶(hù)信息name=input("請(qǐng)輸入您的姓名:")age=int(input("請(qǐng)輸入您的年齡:"))address=input("請(qǐng)輸入您的地址:")#輸出用戶(hù)信息print("\n您輸入的信息如下:")print(f"姓名:{name}")print(f"年齡:{age}")print(f"地址:{address}")#格式化輸出到文件withopen("user_info.txt","w")asf:print(f"姓名:{name}",file=f)print(f"年齡:{age}",file=f)print(f"地址:{address}",file=f)print("信息已保存到user_info.txt文件中!")五、輸入與輸出函數(shù)43實(shí)例2.1.7——輸入圓的半徑,計(jì)算圓的面積,并輸出計(jì)算結(jié)果。程序代碼如下:#定義常量PI=3.14159#輸入半徑radius=float(input("請(qǐng)輸入圓的半徑:"))#使用float()函數(shù)將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)#計(jì)算面積area=PI*radius**2#輸出結(jié)果print(f"圓的面積是:{area:.2f}")五、輸入與輸出函數(shù)44案例1:“中華美德”名言打印與個(gè)性化定制中華傳統(tǒng)美德是中華文化的精髓,體現(xiàn)了中華民族的精神追求。請(qǐng)你編寫(xiě)一個(gè)Python程序,輸出一句中華傳統(tǒng)美德的名言,并允許用戶(hù)輸入自己的名字,將名字嵌入到名言中,形成個(gè)性化的美德證書(shū)打印效果。具體規(guī)則如下:1.編寫(xiě)一個(gè)Python程序,輸出一句中華傳統(tǒng)美德的名言。2.使用Python的input()函數(shù)獲取用戶(hù)的名字。3.將用戶(hù)的名字嵌入到名言中,形成個(gè)性化的美德證書(shū)打印效果。4.程序應(yīng)具備良好的用戶(hù)交互性,提示用戶(hù)輸入并輸出結(jié)果。六、綜合實(shí)例45案例2:“中華傳統(tǒng)手工藝品購(gòu)物小票”打印中華傳統(tǒng)手工藝品是中華文化的重要載體,體現(xiàn)了中華民族的工藝和藝術(shù)特色。請(qǐng)你編寫(xiě)一個(gè)Python程序,模擬購(gòu)買(mǎi)中華傳統(tǒng)手工藝品的過(guò)程,并打印出美觀的購(gòu)物小票。具體規(guī)則如下:1.編寫(xiě)一個(gè)Python程序,模擬購(gòu)買(mǎi)中華傳統(tǒng)手工藝品的過(guò)程。2.使用Python的input()函數(shù)獲取用戶(hù)購(gòu)買(mǎi)的手工藝品及其價(jià)格。3.打印出美觀的購(gòu)物小票,顯示購(gòu)買(mǎi)的產(chǎn)品名稱(chēng)、數(shù)量、單價(jià)和金額。4.程序應(yīng)具備良好的用戶(hù)交互性,提示用戶(hù)輸入并輸出結(jié)果。六、綜合實(shí)例46延時(shí)符任務(wù)2數(shù)據(jù)類(lèi)型47任務(wù)2、數(shù)據(jù)類(lèi)型·知識(shí)準(zhǔn)備在Python中,按照不同的數(shù)據(jù)存儲(chǔ)形式,數(shù)據(jù)類(lèi)型分為數(shù)字類(lèi)型、字符串類(lèi)型、列表類(lèi)型、元組類(lèi)型、集合類(lèi)型、字典類(lèi)型等。本節(jié)主要詳細(xì)介紹數(shù)字類(lèi)型以及簡(jiǎn)單的數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換,其他數(shù)據(jù)類(lèi)型在后面的項(xiàng)目中進(jìn)行介紹。4801掌握Python中的數(shù)字類(lèi)型,能夠正確使用整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)0203能夠進(jìn)行簡(jiǎn)單的數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換,理解類(lèi)型轉(zhuǎn)換的原理和應(yīng)用場(chǎng)景熟練使用eval函數(shù),能夠動(dòng)態(tài)執(zhí)行字符串表達(dá)式并獲取結(jié)果學(xué)習(xí)目標(biāo)49整型:
0
101 -239浮點(diǎn)型:
3.14154.2E-10 -2.334E-9復(fù)數(shù)類(lèi)型:3.12+1.23j
-1.23-93jPython中數(shù)字類(lèi)型用于存儲(chǔ)數(shù)值,是一種不可改變的數(shù)據(jù)類(lèi)型。Python語(yǔ)言支持3種不同的數(shù)字類(lèi)型,包括:整數(shù)類(lèi)型(int)、浮點(diǎn)數(shù)類(lèi)型(float)、復(fù)數(shù)類(lèi)型(complex)。分別對(duì)應(yīng)于數(shù)學(xué)中的整數(shù)、實(shí)數(shù)和復(fù)數(shù)。一、數(shù)字類(lèi)型501.整數(shù)類(lèi)型整數(shù)類(lèi)型簡(jiǎn)稱(chēng)整型(int),用來(lái)表示整數(shù)數(shù)值,即沒(méi)有小數(shù)部分的數(shù)值。它與數(shù)學(xué)中的整數(shù)相對(duì)應(yīng),是一種有符號(hào)整型數(shù)據(jù),可以是正數(shù)、負(fù)數(shù)或零。在Python中,整數(shù)可以使用二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制等多種形式來(lái)表示,各種表示形式如表3-3-1所示。
整數(shù)類(lèi)型的4種進(jìn)制形式進(jìn)制形式描述引導(dǎo)符號(hào)運(yùn)用示例對(duì)應(yīng)的十進(jìn)制數(shù)二進(jìn)制由0和1構(gòu)成0b或0B0b10100040八進(jìn)制由0~7構(gòu)成0o或0O0o7561十進(jìn)制由0~9構(gòu)成無(wú)100100十六進(jìn)制由0~9、a~f或A~F構(gòu)成(字母a~f表示10~15)0x或0X0x3b6950一、數(shù)字類(lèi)型51為了方便用戶(hù)使用不同進(jìn)制的數(shù)據(jù),Python中提供了一些用于轉(zhuǎn)換數(shù)據(jù)進(jìn)制的函數(shù),分別是bin()、oct()、int()、hex(),這些函數(shù)都可以將一種進(jìn)制的整型數(shù)據(jù)轉(zhuǎn)換為其他進(jìn)制的的整型數(shù)據(jù)。運(yùn)算符說(shuō)明bin(x)將x轉(zhuǎn)換為二進(jìn)制數(shù)oct(x)將x轉(zhuǎn)換為八進(jìn)制數(shù)int(x)將x轉(zhuǎn)換為十進(jìn)制數(shù)hex(x)將x轉(zhuǎn)換為十六進(jìn)制數(shù)一、數(shù)字類(lèi)型52各函數(shù)的用法,示例代碼如下:一、數(shù)字類(lèi)型532.浮點(diǎn)數(shù)類(lèi)型浮點(diǎn)數(shù)類(lèi)型簡(jiǎn)稱(chēng)浮點(diǎn)型(float)。浮點(diǎn)數(shù)主要用于處理包括小數(shù)的數(shù)據(jù),對(duì)應(yīng)數(shù)學(xué)中的實(shí)數(shù),實(shí)數(shù)由整數(shù)部分、小數(shù)點(diǎn)和小數(shù)部分組成。例如:1.205
561.8902
3.1415-5.36
-15.856
-300.05一、數(shù)字類(lèi)型54在Python中,浮點(diǎn)數(shù)最常見(jiàn)的表示形式是十進(jìn)制數(shù),也可以采用科學(xué)計(jì)數(shù)法表示,使用字母e或E表示底數(shù)10。例如:-5.16E10
#相當(dāng)于-5.16×1010,結(jié)果為-516000000005.16E-10
#相當(dāng)于5.16×10-10,結(jié)果為0.000000000516浮點(diǎn)型變量分為兩類(lèi),一類(lèi)是單精度型,一類(lèi)是雙精度型,Python中的浮點(diǎn)數(shù)是雙精度型的,每個(gè)浮點(diǎn)型數(shù)據(jù)占64位(8個(gè)字節(jié))的存儲(chǔ)空間,遵循IEEE754標(biāo)準(zhǔn),取值范圍約為
?1.79×10308到
1.79×10308。注意:使用浮點(diǎn)型數(shù)據(jù)進(jìn)行計(jì)算時(shí),有可能會(huì)出現(xiàn)小數(shù)位數(shù)不確定的情況,例如計(jì)算0.1+0.2,得到的計(jì)算結(jié)果是0.30000000000000004,而不是想要的0.3,對(duì)于這種情況,許多編程語(yǔ)言經(jīng)常出現(xiàn)這個(gè)“多了個(gè)尾巴”的問(wèn)題,暫時(shí)忽略多余的小數(shù)位數(shù)即可。一、數(shù)字類(lèi)型553.復(fù)數(shù)類(lèi)型復(fù)數(shù)類(lèi)型對(duì)應(yīng)數(shù)學(xué)中的復(fù)數(shù),由實(shí)部和虛部組成,使用j或J表示虛部單位。復(fù)數(shù)類(lèi)型的一般形式為real+imag
j,其中real為實(shí)部部分,imag
j為虛部部分,這里的real和imag都是實(shí)數(shù)。例如,一個(gè)復(fù)數(shù)實(shí)部為3.5,虛部為2.6j,那么這個(gè)復(fù)數(shù)為3.5+2.6j。在Python中,可以用complex()函數(shù)創(chuàng)建復(fù)數(shù),格式為complex(實(shí)部,虛部)。程序代碼如下:>>>complex(5,2)
(5+2j)
>>>complex(3)
(3+0j)>>>complex(0,5)
5j
說(shuō)明:輸出復(fù)數(shù)的默認(rèn)格式通常會(huì)使用小括號(hào)包裹復(fù)數(shù),以便更好地表示復(fù)數(shù)是實(shí)部和虛部的組合。一、數(shù)字類(lèi)型56Python語(yǔ)言輸出復(fù)數(shù)類(lèi)型數(shù)值的實(shí)數(shù)部分和虛數(shù)部分的數(shù)據(jù)時(shí),輸出值都是浮點(diǎn)數(shù)。程序代碼如下:complex_1=4+3jprint(complex_1.real)
#輸出復(fù)數(shù)的實(shí)部
print(complex_1.imag)
#輸出復(fù)數(shù)的虛部
運(yùn)行結(jié)果如下:4.0
3.0
一、數(shù)字類(lèi)型57Python的復(fù)數(shù)支持四則運(yùn)算(加、減、乘、除),運(yùn)算規(guī)則遵循數(shù)學(xué)中的復(fù)數(shù)運(yùn)算規(guī)則。復(fù)數(shù)的四則運(yùn)算規(guī)則如下表:復(fù)數(shù)四則運(yùn)算表運(yùn)算類(lèi)型運(yùn)算規(guī)則公式加法實(shí)部相加,虛部相加(a+bj)+(c+dj)=(a+c)+(b+d)j減法實(shí)部相減,虛部相減(a+bj)?(c+dj)=(a?c)+(b?d)j乘法按照分配律展開(kāi),并利用j2=?1
化簡(jiǎn)。(a+bj)×(c+dj)=(ac?bd)+(ad+bc)j除法通過(guò)有理化分母,將分母變?yōu)閷?shí)數(shù)。(a+bj)÷(c+dj)=[(ac+bd)÷(c2+d2)]+[(bc-ad)÷(c2+d2)]j一、數(shù)字類(lèi)型584.布爾類(lèi)型布爾類(lèi)型(bool))只有兩個(gè)取值,True(真)和False(假),通常用于邏輯判斷。Python中,任何數(shù)據(jù)都可以進(jìn)行邏輯判斷后得到一個(gè)布爾值,布爾值為False的常見(jiàn)數(shù)據(jù)如下:None;任何值為0的數(shù)字類(lèi)型,如0、0.0、0j;任何空的組合數(shù)據(jù)類(lèi)型,如空字符串、空元組、空列表、空集合、空字典;5.16、8和’love’對(duì)應(yīng)的布爾值是True。一、數(shù)字類(lèi)型59可以用bool()函數(shù)檢測(cè)數(shù)據(jù)的布爾值,示例如下:程序代碼如下:Print(None) #檢測(cè)None的布爾值
Print(0)
#檢測(cè)整型數(shù)據(jù)0的布爾值
Print(0j)
#檢測(cè)復(fù)數(shù)類(lèi)型數(shù)據(jù)0j的布爾值
Print(5.16)
#檢測(cè)浮點(diǎn)型類(lèi)型數(shù)據(jù)5.16的布爾值Print(8) #檢測(cè)整型數(shù)據(jù)8的布爾值Print(‘love’) #檢測(cè)字符類(lèi)型數(shù)據(jù)’love’的布爾值運(yùn)行結(jié)果如下:FalseFalseFalseTrueTrueTrue
一、數(shù)字類(lèi)型60二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換1.數(shù)據(jù)類(lèi)型檢測(cè)在Python中,可以使用type()函數(shù)來(lái)檢測(cè)一個(gè)對(duì)象的類(lèi)型。#整數(shù)類(lèi)型檢測(cè)x=10print(type(x))
#輸出:<class'int'>
#浮點(diǎn)數(shù)類(lèi)型檢測(cè)y=3.14print(type(y))
#輸出:<class'float'>
#復(fù)數(shù)類(lèi)型檢測(cè)z=2+3jprint(type(z))
#輸出:<class'complex'>
#字符串類(lèi)型檢測(cè)a=''Python''print(type(a))
#輸出:<class'str'>612.數(shù)據(jù)類(lèi)型轉(zhuǎn)換在Python中,數(shù)據(jù)類(lèi)型轉(zhuǎn)換是將一個(gè)數(shù)據(jù)從一種類(lèi)型轉(zhuǎn)換為另一種類(lèi)型的過(guò)程。Python提供了多種內(nèi)置函數(shù)來(lái)實(shí)現(xiàn)常見(jiàn)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換。以下介紹常用的數(shù)據(jù)類(lèi)型轉(zhuǎn)換方法。
(1)整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)使用float()函數(shù)可以將整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)。程序代碼如下:x=5y=float(x)print(y)
運(yùn)行結(jié)果如下:5.0二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換62(2)浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)使用int()函數(shù)將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)時(shí),會(huì)直接截?cái)嘈?shù)部分,只保留整數(shù)部分。示例如下:程序代碼如下:x=3.9y=int(x)print(y)
運(yùn)行結(jié)果如下:3二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換63(3)數(shù)值轉(zhuǎn)換為復(fù)數(shù)使用complex()函數(shù)可以將整數(shù)或浮點(diǎn)數(shù)轉(zhuǎn)換為復(fù)數(shù)。如果只傳入一個(gè)參數(shù),虛部默認(rèn)為0。示例如下:#
整數(shù)轉(zhuǎn)換為復(fù)數(shù)x=7z=complex(x)print(z)
#
運(yùn)行結(jié)果如下:(7+0j)
#浮點(diǎn)數(shù)轉(zhuǎn)換為復(fù)數(shù)x=2.5z=complex(x)print(z)#
運(yùn)行結(jié)果如下:(2.5+0j)
#同時(shí)指定實(shí)部和虛部z=complex(3,4)print(z)運(yùn)行結(jié)果如下:
(3+4j)二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換64(4)其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為布爾值使用bool()函數(shù)用于將其他類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為布爾值,()中的參數(shù)可以是任何數(shù)據(jù)類(lèi)型。程序如下:x=str(1.03)print(x)運(yùn)行結(jié)果如下:'1.03'
(5)其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為字符串使用str()函數(shù)用于將數(shù)值轉(zhuǎn)換為字符串,()中的參數(shù)可以是任何數(shù)據(jù)類(lèi)型。程序如下:#非零數(shù)轉(zhuǎn)換為T(mén)rueprint(bool(1))
#輸出:Trueprint(bool(0))
#輸出:False
#非空字符串轉(zhuǎn)換為T(mén)rueprint(bool("hello"))
#輸出:Trueprint(bool(""))
#輸出:False
注意:轉(zhuǎn)換時(shí)需確保數(shù)據(jù)是兼容的,否則會(huì)拋出異常。例如:int("abc")
#拋出ValueError在Python中,通過(guò)靈活使用轉(zhuǎn)換函數(shù),可以在不同數(shù)據(jù)類(lèi)型之間進(jìn)行轉(zhuǎn)換,以滿(mǎn)足程序的需求。二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換653.eval()函數(shù)在Python中,eval()是一個(gè)內(nèi)置函數(shù),它可以將字符串作為Python表達(dá)式進(jìn)行求值并返回計(jì)算結(jié)果。?expression:必選參數(shù),是一個(gè)字符串,該字符串會(huì)被當(dāng)作Python表達(dá)式進(jìn)行求值。?globals:可選參數(shù),是一個(gè)字典,用于指定全局命名空間。如果提供了該參數(shù),它必須是一個(gè)字典。locals:可選參數(shù),也是一個(gè)映射對(duì)象(通常是字典),用于指定局部命名空間。如果只提供了globals參數(shù),locals默認(rèn)和globals相同。eval(expression,globals=None,locals=None)語(yǔ)法格式二、簡(jiǎn)單數(shù)值類(lèi)型檢測(cè)與轉(zhuǎn)換66延時(shí)符任務(wù)3運(yùn)算符67任務(wù)3運(yùn)算符·知識(shí)準(zhǔn)備運(yùn)算符?是編程語(yǔ)言中用于對(duì)操作數(shù)執(zhí)行特定操作或計(jì)算的符號(hào)或符號(hào)組合。在Python中,常用的運(yùn)算符有算術(shù)運(yùn)算符、賦值運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符和身份運(yùn)算符,不同的運(yùn)算符對(duì)應(yīng)不同的運(yùn)算規(guī)則。68學(xué)習(xí)目標(biāo)01掌握Python中的各種運(yùn)算符,能夠正確使用算術(shù)、賦值、關(guān)系、邏輯、位、成員和身份運(yùn)算符0203理解運(yùn)算符的優(yōu)先級(jí),能夠編寫(xiě)符合邏輯的復(fù)雜表達(dá)式能夠根據(jù)實(shí)際需求選擇合適的運(yùn)算符,優(yōu)化代碼性能69一、
算術(shù)運(yùn)算符Python中常用的算術(shù)運(yùn)算符共8個(gè)包括+、-、*、/、//、%、-(負(fù)號(hào))和**,除“-(負(fù)號(hào))”外的運(yùn)算符都是都是雙目運(yùn)算符,能夠?qū)蓚€(gè)操作數(shù)進(jìn)行相應(yīng)的數(shù)學(xué)運(yùn)算。運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果+加法,a+b指a、b之和412.35+1022.35-減法,a-b指a、b之差412.35-102.35*乘法,a*b指a、b之積35*3.618.0/除法,a/b指a、b之商37/23.5//整除,a//b指a、b相除后商的整數(shù)部分37//23%取模,a%b指a、b相除后的余數(shù)37%21-負(fù)號(hào),-a指a的相反數(shù)2-7-7**冪運(yùn)算,a**b指ab17**24970實(shí)例2.3.1——(分跳繩)學(xué)校為了加強(qiáng)體育教育,豐富課間體育活動(dòng),購(gòu)買(mǎi)一批跳繩,平均分給各班,供學(xué)生使用。請(qǐng)根據(jù)班級(jí)的數(shù)量和跳繩的數(shù)量編程計(jì)算每個(gè)班可以分到多少根跳繩?還剩多少根?VSCode程序如下:x=int(input("請(qǐng)輸入跳繩數(shù)量x:"))y=int(input("請(qǐng)輸入班級(jí)數(shù)量y:"))z1=x//yz2=x%yprint("各班可分到的跳繩數(shù)量",z1)print("剩余跳繩數(shù)量",z2)運(yùn)行結(jié)果如下:請(qǐng)輸入跳繩數(shù)量x:7請(qǐng)輸入班級(jí)數(shù)量y:2各班可分到的跳繩數(shù)量3剩余跳繩數(shù)量1一、
算術(shù)運(yùn)算符71
賦值運(yùn)算符用于將一個(gè)具體的值賦給變量。最簡(jiǎn)單的賦值運(yùn)算符是“=”,可以將賦值運(yùn)算符右邊的值直接賦給左邊的變量。運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果=簡(jiǎn)單的賦值運(yùn)算2a=ba=b+=加法賦值1a+=ba=a+b-=減法賦值1a-=ba=a-b*=乘法賦值1a*=ba=a*b/=除法賦值1a/=ba=a/b//=整除賦值1a//=ba=a//b%=取模賦值1a%=ba=a%b**=冪賦值1a**=ba=a**b二、
賦值運(yùn)算符72實(shí)例2.3.2——(硬幣密碼)模擬連續(xù)拋4次硬幣的過(guò)程,將每次拋硬幣的結(jié)果正面記錄為1,反面記錄為0,最終生成一個(gè)由四位0和1組成的“硬幣密碼”。程序代碼如下:x=""x+=input("第1次:")x+=input("第2次:")x+=input("第3次:")x+=input("第4次:")print("硬幣密碼:",x)運(yùn)行結(jié)果如下:第1次:1第2次:0第3次:1第4次:1硬幣密碼:1011二、
賦值運(yùn)算符73
比較運(yùn)算符也叫關(guān)系運(yùn)算符,用于比較兩邊操作數(shù),運(yùn)算結(jié)果是True或False。運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果==等于,a==b指判斷a、b是否相等12==3False!=不等于,a!=b判斷a、b是否不相等12!=3True>大于,a>b判斷a是否大于b12>3False<小于,a<b判斷a是否小于b12<3True>=大于等于,a>=b判斷a是否大于等于b12>=3False<=小于等于,a<=b判斷a是否小于等于b12<=3True說(shuō)明:在Python中,比較運(yùn)算符的優(yōu)先級(jí)相同。當(dāng)多個(gè)比較運(yùn)算符出現(xiàn)在同一個(gè)表達(dá)式中時(shí),Python會(huì)將其視為鏈?zhǔn)奖容^,例如a<b<=c等價(jià)于a<bandb<=c。三、
比較運(yùn)算符74實(shí)例2.3.3——(比較兩數(shù)大小)設(shè)計(jì)一個(gè)程序,輸入兩個(gè)整數(shù),比較兩個(gè)數(shù)的大小,并輸出比較結(jié)果。程序代碼如下:#輸入兩個(gè)整數(shù)x1=int(input("請(qǐng)輸入整數(shù)x1:"))x2=int(input("請(qǐng)輸入整數(shù)x2:"))#比較x1、x2的大小關(guān)系print("x1與x2相等嗎?",x1==x2)print("x1比x2大嗎?",x1>x2)print("x1不大于x2嗎?",x1<=x2)運(yùn)行結(jié)果如下:請(qǐng)輸入整數(shù)x1:23請(qǐng)輸入整數(shù)x2:32x1與x2相等嗎?Falsex1比x2大嗎?Falsex1不大于x2嗎?True三、
比較運(yùn)算符75
邏輯運(yùn)算符也叫布爾運(yùn)算符,是對(duì)真和假兩種布爾值進(jìn)行運(yùn)算,運(yùn)算結(jié)果是True或False,Python中的邏輯運(yùn)算符主要有三個(gè):and(邏輯與)、or(邏輯或)、not(邏輯非)
說(shuō)明:在實(shí)際使用中,邏輯運(yùn)算符常用于條件判斷、循環(huán)控制等場(chǎng)景。使用邏輯運(yùn)算符可以把多個(gè)條件按照邏輯進(jìn)行連接,變成更為復(fù)雜的條件,它們的優(yōu)先級(jí)為not>and>or。運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果not非運(yùn)算,nota得到跟a相反的布爾結(jié)果1not2>3Trueand與運(yùn)算,
只有a、b均為T(mén)rue時(shí),aandb的運(yùn)算結(jié)果為T(mén)rue,否則為False22==3and2<3Falseor或運(yùn)算,只有a、b均為False時(shí),aandb的運(yùn)算結(jié)果為False,否則為T(mén)rue32==3or2<3True四、
邏輯運(yùn)算符76實(shí)例2.3.4——(判段三角形)輸入三邊邊長(zhǎng)x、y、z,判斷是否構(gòu)成三角形。構(gòu)成三角形的條件是任意兩邊之和大于第三邊。程序代碼如下:#輸入三邊邊長(zhǎng)x=int(input("第1條邊:"))y=int(input("第2條邊:"))z=int(input("第3條邊:"))#判斷是否構(gòu)成三角形ifx+y>zandx+z>yandy+z>x:print("可以構(gòu)成三角形")else:print("不能構(gòu)成三角形")測(cè)試示例1運(yùn)行結(jié)果如下:第1條邊:3第2條邊:4第3條邊:5可以構(gòu)成三角形
測(cè)試示例2運(yùn)行結(jié)果如下:第1條邊:1第2條邊:2第3條邊:3不能構(gòu)成三角形
四、
邏輯運(yùn)算符77
位運(yùn)算符用于對(duì)操作數(shù)的二進(jìn)制位進(jìn)行邏輯運(yùn)算,操作數(shù)必須是整數(shù),需要先將要進(jìn)行運(yùn)算的數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制,才能進(jìn)行運(yùn)算。
運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果<<按位左移,a<<b指將a轉(zhuǎn)為二進(jìn)制形式后,向左移動(dòng)b位,移動(dòng)造成的空位補(bǔ)028<<364>>按位右移,a>>b指將a轉(zhuǎn)為二進(jìn)制形式后,向右移動(dòng)b位,移動(dòng)造成的空位補(bǔ)028>>31&按位與運(yùn)算,a&b指將a、b對(duì)應(yīng)的二進(jìn)制位進(jìn)行與運(yùn)算38&30|按位與運(yùn)算,a&b指將a、b對(duì)應(yīng)的二進(jìn)制位進(jìn)行或運(yùn)算48|311^按位異或運(yùn)算,a&b指將a、b對(duì)應(yīng)的二進(jìn)制位進(jìn)行異或運(yùn)算48^311~按位取反,~a的結(jié)果運(yùn)算結(jié)果是-a-11~8-9五、
位運(yùn)算符781.按位左移運(yùn)算符(<<)按位左移是將操作數(shù)的二進(jìn)制位向左移動(dòng)指定的位數(shù),右側(cè)空出的位用0填充。左移后得到的值為該數(shù)乘以2的冪次方(a<<n相當(dāng)于a*(2**n))。#按位左移a=5
#二進(jìn)制:0101result=a<<2
#0101<<2=010100(十進(jìn)制:20)print("左移(<<)結(jié)果:",result)
#輸出:20五、
位運(yùn)算符792.按位右移運(yùn)算符(>>)按位右移是將操作數(shù)的二進(jìn)制位向右移動(dòng)指定的位數(shù),左側(cè)空出的位用符號(hào)位填充(正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1)右移后得到的值為該數(shù)除以2的冪次方(a>>n
相當(dāng)于
a//(2**n))。#按位右移a=20
#二進(jìn)制:010100result=a>>2
#010100>>2=0101(十進(jìn)制:5)print("右移(>>)結(jié)果:",result)
#輸出:5五、
位運(yùn)算符803.按位與運(yùn)算符(&)按位與運(yùn)算是將兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行邏輯與運(yùn)算。只有當(dāng)對(duì)應(yīng)的兩個(gè)二進(jìn)制位均為1時(shí),結(jié)果位才為1,否則為0。#按位與運(yùn)算a=5#二進(jìn)制:0101b=3#二進(jìn)制:0011result=a&b#0101&0011=0001(十進(jìn)制:1)print("按位與(&)結(jié)果:",result)#輸出:1五、
位運(yùn)算符814.按位或運(yùn)算符(|)按位或運(yùn)算是將兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行邏輯或運(yùn)算,或運(yùn)算的運(yùn)算規(guī)則是兩個(gè)二進(jìn)制位均為0時(shí),結(jié)果位為0,否則為1。#按位或運(yùn)算a=5#二進(jìn)制:0101b=3#二進(jìn)制:0011result=a|b#二進(jìn)制:0111(十進(jìn)制:7)print(result)#輸出:7五、
位運(yùn)算符825.按位異或運(yùn)算符(^)按位異或運(yùn)算是將兩個(gè)操作數(shù)對(duì)應(yīng)的二進(jìn)制位進(jìn)行邏輯異或運(yùn)算,異或運(yùn)算的運(yùn)算規(guī)則是兩個(gè)二進(jìn)制位不同時(shí),結(jié)果位為1,否則為0。#按位異或運(yùn)算a=5#二進(jìn)制:0101b=3#二進(jìn)制:0011result=a^b#二進(jìn)制:0110(十進(jìn)制:6)print(result)#輸出:6五、
位運(yùn)算符836.按位取反運(yùn)算符(~)按位取反(~)對(duì)操作數(shù)的每個(gè)二進(jìn)制位取反(0變1,1變0)。在Python中,整數(shù)是以補(bǔ)碼形式存儲(chǔ)的,因此取反操作的結(jié)果為-(a+1)。#按位取反運(yùn)算a=5#二進(jìn)制:0101result=~a#二進(jìn)制:1010(補(bǔ)碼表示,十進(jìn)制:-6)print(result)#輸出:-6說(shuō)明:位運(yùn)算符的優(yōu)先級(jí)依次為“~”、“<<”“>>”、“&”、“|”“^”。五、
位運(yùn)算符84實(shí)例2.3.5——檢測(cè)奇偶編寫(xiě)一個(gè)程序,判斷用戶(hù)輸入的整數(shù)是奇數(shù)還是偶數(shù)(要求使用位運(yùn)算(&)實(shí)現(xiàn))。程序代碼如下:x=int(input("輸入整數(shù)x:"))print(x&1)#x與1進(jìn)行位與運(yùn)算后的結(jié)果若為1,說(shuō)明x是奇數(shù);結(jié)果若為0,說(shuō)明x是偶數(shù)運(yùn)行結(jié)果如下:輸入整數(shù)x:151輸入整數(shù)x:160五、
位運(yùn)算符85成員運(yùn)算符用于檢測(cè)某個(gè)數(shù)據(jù)是否存在于字符串、列表、元組、集合、字典等之中,Python提供了兩個(gè)成員運(yùn)算符:in:如果值存在于序列中,則返回True。notin:如果值不存在于序列中,則返回True.運(yùn)算符功能描述優(yōu)先級(jí)運(yùn)用示例運(yùn)算結(jié)果inainb判斷a是否存在于b中1"p"in"python"Truenotinanotinb判斷a是否不存在于b中1"p"notin"python"False六、
成員運(yùn)算符86成員運(yùn)算符的優(yōu)先級(jí)相同。例如,字符串中的成員檢查,示例代碼如下:#定義一個(gè)字符串text="Hello,world!"#使用in檢查成員print("world在字符串中嗎?","world"intext)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)健康服務(wù)行業(yè)市場(chǎng)發(fā)展數(shù)據(jù)監(jiān)測(cè)及投資策略研究報(bào)告
- 施工工序銜接問(wèn)題解決方案
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)小信號(hào)分立器件行業(yè)市場(chǎng)深度分析及投資規(guī)劃建議報(bào)告
- 橋梁施工質(zhì)量控制方案
- 公共關(guān)系溝通計(jì)劃表資源分配及響應(yīng)方案版
- 如何用AI工具進(jìn)行全球議題
- 山體滑坡土石方治理方案
- 標(biāo)準(zhǔn)化廠房用水用電管理方案
- 消防設(shè)施應(yīng)急響應(yīng)計(jì)劃方案
- 企業(yè)辦公用物品采買(mǎi)采購(gòu)方案模版
- 《降低輸液外滲率》課件
- 治療性低溫技術(shù)臨床應(yīng)用進(jìn)展
- 住院醫(yī)師規(guī)范化培訓(xùn)內(nèi)容與標(biāo)準(zhǔn)(2022年版)-骨科培訓(xùn)細(xì)則
- 2024-2025學(xué)年人教版小升初英語(yǔ)試卷及解答參考
- 2024年版《輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(cè)》
- 質(zhì)量信得過(guò)班組匯報(bào)材料
- 醫(yī)學(xué)倫理學(xué)案例分析
- 新概念英語(yǔ)第一冊(cè)階段測(cè)試題
- 金融科技對(duì)商業(yè)銀行業(yè)務(wù)的影響研究
- 寒假輔導(dǎo)班招生方案
- 打印OCX未正確安裝-解決辦法(新)【范本模板】
評(píng)論
0/150
提交評(píng)論