版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
■■FishC工作室零基礎(chǔ)學丄 ■?■?+Inc.今―,W■而<JpITLnun±■&WWCompanyDocumentnunibei:WTUT-WT88Y-W8BBGBBWYTT-19998第一節(jié)課o.Python是什么類型的語言Python是腳本語言腳本語言(Scriptinglanguage)是電腦編程語言,因此也能讓開發(fā)者藉以編寫出讓電腦聽命行事的程序。以簡單的方式快速完成某些復(fù)雜的事情通常是創(chuàng)造腳本語言的重要原則,基于這項原則,使得腳本語言通常比C語言、C++語言或Java之類的系統(tǒng)編程語言要簡單容易。也讓腳本語言另有一些屬于腳本語言的特性:?語法和結(jié)構(gòu)通常比較簡單?學習和使用通常比較簡單?通常以容易修改程序的''解釋"作為運行方式,而不需要''編譯"?程序的開發(fā)產(chǎn)能優(yōu)于運行性能—個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組串行。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經(jīng)超過簡單的用戶命令串行的指令,還可以編寫更復(fù)雜的程序。1-IDLE是什么IDLE是一個PythonShell,shell的意思就是''外殼"基本上來說,就是一個通過鍵入文本與程序交互的途徑!像我們Windows那個cmd窗口,像Linux那個黑乎乎的命令窗口,他們都是shell,利用他們,我們就可以給操作系統(tǒng)下達命令。同樣的,我們可以利用IDLE這個shell與Python進行互動。print()的作用是什么print。會在輸出窗口中顯示一些文本(在這一講中,輸出窗口就是IDLEshell窗口)。Python中表示乘法的符號是什么Python中的乘號是*(星號)。4.為什么>>>print('Ilove'*5)可以正常執(zhí)行,但>>>print('Ilove'+5)卻報錯在Python中不能把兩個完全不同的東西加在一起,比如說數(shù)字和文本,正是這個原因,>>>print('Ilove'+5)才會報錯。這就像是在說''五只小甲魚加上蒼井空會是多少”一樣沒有多大意義,結(jié)果可能是五,可能是六,也可能是八!不過乘以一個整數(shù)來翻倍就具有一定的意義了.前邊的例子就是將"Iloven這個字符串打印五次。5.如果我需要在一個字符串中嵌入一個雙引號,正確的做法是
你有兩個選擇:可以利用反斜杠(\)對雙引號轉(zhuǎn)義:V.或者用單引號引起這個字符串。例如:?II'o've*o6.為什么我們要使用Python3Python2到底有什么問題看起來很多程序員依然都在使用Python2確實還有相當多的程序員在使用Python2,不過Python3才是Python發(fā)展的未來,就像XP和WIN7一樣。在《零基礎(chǔ)入門學習Python)的系列教程準備中,小甲魚發(fā)覺Python3中的新特性確實很妙,很值得進行深入學習!你也不用擔心如果你了解了Python3,Python2的代碼閱讀對于你來說根本不成問題!第二節(jié)課0.什么是BIFBIF就是Built-inFunctions,內(nèi)置函數(shù),為了方便程序員快速編寫腳本程序(腳本就是要編程速度快快快?。。。?,Python提供了非常豐富的內(nèi)置函數(shù).我們只需要直接調(diào)用即可.例如print()的功能是''打印到屏幕”,input。的作用是接收用戶輸入(注:Python3用input()取代了Python2的raw_input(),用法如有不懂請看視頻講解)。太多BIF學不過來怎么辦看不懂英文說明怎么辦Python3的資料太少怎么辦沒事’有了小甲魚,媽媽再也不用擔心我的學習了!1.用課堂上小甲魚教的方法數(shù)一數(shù)Python3提供了多少個BIF在Python或IDLE中,輸入dir(_builtins_)可以看到Python提供的內(nèi)置方法列表(注意,builtins前后是兩個下劃線哦)其中小寫的就是BIF。如果想具體查看某個BIF的功能,比如input(),可以在shell中輸入help(input).就會得到這個BIF的功能描述。哦,答案應(yīng)該是68個,不信你自己數(shù)數(shù)看,你們肯定沒有自己完成作業(yè)就來看答案!哼~T_T在Python看來:'FlshC'和'fishc,—樣嗎不一樣,因為Python是一個''敏感的小女孩”,所以不要試圖欺騙她.對Python來說,fishc和FishC是完全不同的兩個名字,所以編程的時候一定要當心。不過Python會幫助解決可能因此出現(xiàn)的問題,例如只有當標識符已經(jīng)賦值后(還記得嗎,小甲魚在課堂中說過Python的變量是不用先聲明的)才能在代碼中使用,未賦值的標識符直接使用會導(dǎo)致運行時錯誤’所以你很快就可以根據(jù)經(jīng)驗發(fā)現(xiàn)此問題。在小甲魚看來,Python中什么是最重要的你贊同嗎縮進!在小甲魚看來,縮進是Python的靈魂.縮進的嚴格要求使得Python的代碼顯得非常精簡并旦有層次(小甲魚閱讀過很多大牛的代碼’那個亂……C語言不是有國際亂碼大賽嘛 )。所以在Python里對待縮進代碼要十分小心,如果沒有正確地縮進,代碼所做的事情可能和你的期望相去甚遠(就像C語言里邊括號打錯了位置)O如果在正確的位置輸入冒號IDLE會自動將下一行縮進!這節(jié)課的例子中出現(xiàn)了,、=”和,、==”,他們表示不同的含義,你在編程的過程中會不小心把””誤寫成嗎有沒有好的辦法可以解決這個問題呢C語言的話,如果if(c==1)寫成if(c=1),程序就完全不按程序員原本的目的去執(zhí)行,但在Python這里,不好意思,行不通,語法錯誤!Python不允許if條件中賦值,所以ifc=1:會報錯!小甲魚覺得這種做法可以非常有效的防止程序員因為打炮、熬夜等問題導(dǎo)致粗心的BUG.并旦這類BUG殺傷力都巨大!你聽說過、、拼接''這個詞嗎在一些編程語言,我們可以將兩個字符串、'相加"在一起,如:T+'Love'+'FishC會得到?iLoveFishC在Python里,這種做法叫做拼接字符串。0.編寫程序:,要求用戶輸入姓名并打印”你好,姓名I"name=input(M^輸入您的姓名:“)print(*你好.1+name+1I*)復(fù)制代碼1.編寫程序:要求用戶輸入1到100之間數(shù)字并判斷,輸入符合要求打印''你妹好漂亮",不符合要求則打印、、你大爺好丑"1-temp=input(“請輸入1到100之間的數(shù)字:")num=int(temp)if1<=num<=100:printC你妹好漂亮)else:printC你大爺好丑T_「)復(fù)制代碼第三課5.如果非要在原始字符串結(jié)尾輸入反斜杠,可以如何靈活處理>>>str=r*C:\ProgramFiles\FishC\Good**\\,復(fù)制代碼第四課測試題:0.請問以下代碼會打印多少次''我愛魚c!”while'C:printC我愛魚C!‘)復(fù)制代碼請問以下代碼會打印多少次''我愛魚c!"i-10whilei:printC我愛魚C!,)i?i-1復(fù)制代碼請寫出與10<costv50等價的表達式Python3中,一行可以書寫多個語句嗎4.Python3中,一個語句可以分成多行書寫嗎請問Python的and操作符和C語言的&&操作符有何不同【該題針對有C或C++基礎(chǔ)的朋友】聽說過''短路邏輯(short-circuitlogic)”嗎動動手:0.完善第二個改進要求(為用戶提供三次機會嘗試,機會用完或者用戶猜中答案均退出循環(huán))并改進視頻中小甲魚的代碼。1-嘗試寫代碼實現(xiàn)以下截圖功能:第五課測試題:0.在Python中,訕表示整型,那你還記得bool、float和str分別表示什么嗎你知道為什么布爾類型(bool)的Tine和False分別用1和0來代替嗎使用mt()將小數(shù)轉(zhuǎn)換為整數(shù),結(jié)果是向上取整還是向下取整呢我們?nèi)祟愃季S是習慣于“四舍五入''法,你有什么辦法使得按照“四舍五入”的方式取整嗎取得一個變量的類型,視頻中介紹可以使用type()和isinstaiice(),你更傾向于使用哪個5.Pytlion3可以給變量命名中文名,知道為什么嗎6.【該題針對零基礎(chǔ)的魚油】你覺得這個系列教學有難度嗎動動手:。.針對視頻中小甲魚提到的小漏洞,再次改進我們的小游戲:當用戶輸入錯誤類型的時候,及時提醒用戶重新輸入,防止程序崩潰。如果你嘗試過以下做法,請舉下小手:temp=input(“不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:")#這種想法是因為type(l)會返回〈classinf>,如果type(temp)返回結(jié)果一致說明輸入是整數(shù)。whiletype(temp)!-type(l):prlnt(-抱歎,輸入不合法,\end-1?)temp=input輸入一個整數(shù):")復(fù)制代碼或者可能這樣:1.temp-input("不妨猜一下小甲魚現(xiàn)在心里想的是郷個數(shù)字:2-#not操作符的作用是將布爾類型的結(jié)果翻轉(zhuǎn):即取反的意思,notTrue==Flasewhilenotisinstance(temp,int):print(-抱歎,輸入不合法,”,end-1,)temp-input(-i§輸入一個整數(shù):_)復(fù)制代碼以上方法的思路是正確的.不過似乎忽略了一點兒:就是mput()的返回值始終是字符串,所以type(temp)永遠是〈classfstrf>!
其實有蠻多的做法可以實現(xiàn)的,不過就目前我們學習過的內(nèi)容來看,還不足夠。所以,在讓大家動手完成這道題之前,小甲魚介紹一點新東西給大家!s為字符串()所有字符都是數(shù)字或者字母.為真返回Tuie,否則返回False。()所有字符都是字母,為真返回Ture,否則返回Falseo()所有字符都是數(shù)字,為真返回Ture,否則返回Falseo()所有字符都是小寫,為真返回Tme否則返回False0()所有字符都是大寫,為真返回Tme,否則返回False□()所有單詞都是首字母大寫,為真返回Ture,否則返回False0()所有字符都是空白字符,為真返回Ture,否則返回False。例如:?>s=1LOVEFISHC?>0?>True好了,文字教程就到這里.大家趕緊趁熱打鐵.改造我們的小游戲吧!寫一個程序,判斷給定年份是否為閏年。(注意:請使用已學過的BIF進行靈活運用)這樣定義閏年的:能被4整除但不能被100整除,或者能被400整除都是閏年。清寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式I測試題答案:本帖隱藏的內(nèi)容。.在Python中,int表示整型,那你還記得bool、float和str分別表示什么嗎bool表示布爾類型float表示浮點型str表示字符串1.你知道為什么布爾類型伽。1)的True和False分別用1和0來代替嗎你可能聽說過計算機是很“笨”的,究其根本是因為它只認識二進制數(shù),所以所有的編程語言最終都會轉(zhuǎn)換成簡單的二進制序列給CPU按照一定的規(guī)則解析。由于二進制只有兩個數(shù):0和1,因此用0和1來表示False和True再適合不過了,因為不用浪費資源在轉(zhuǎn)換的過程上!2.使用int()將小數(shù)轉(zhuǎn)換為整數(shù),結(jié)果是向上取整還是向下取整呢我們可愛的小甲魚說了,小數(shù)取整會采用比較暴力的截斷方式’即向下取整。(注:向上取整為6,向下取整為5)3-我們?nèi)祟愃季S是習慣于“四舍五入”法,你有什么辦法使得int()按照“四舍五入"的方式取整嗎邸0固然沒那么“聰明'',但機器是死的,魚油是活的!“四舍五入”結(jié)果為:5,int+=5“四舍五入”結(jié)果為:6.int+=6大家看明白了嗎取得一個變量的類型,視頻中介紹可以使用type。和isinstanceO,你更傾向于使用哪個建議使用ismstaiiceO,因為它的返回結(jié)果比較直接,另外type。其實并沒有你想象的那么簡單,我們后邊會講到。Python3可以給變量命名中文名,知道為什么嗎PvhtonS源碼文件默認使用mf.8編碼(支持中文),這就使得以下代碼是合法的:>?小甲魚='我愛你' ?>pnnt(小甲魚)>?我愛你6.【該題針對零基礎(chǔ)的魚油】你覺得這個系列教學有難度嗎 如果有不懂的問題’請在此處提問:另外需要小甲魚在視頻講解的方面做哪方面改進請回帖告之,動動手答案:本帖隱藏的內(nèi)容0.針對視頻中小甲魚提到的小漏洞,再次改進我們的小游戲:當用戶輸入錯誤類型的時候,及時提醒用戶重新輸入,防止程序崩潰。需要注意的地方在代碼中已經(jīng)注釋!importrandomtimes=3secret-(1,1。)printC 我愛魚C工作室 ')guess=0print不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:end="")while(guess!=secret)and(times>0):temp=input()whilenot():10-temp-input(??抱歉,您的輸入有誤,請輸入一個整數(shù):”)guess=int(temp)times=times?1#用戶每輸入一次,可用機會就-1ifguess==secret:print("我草,你是小甲魚心里的蛔蟲嗎!“)print(-^,猜中了也沒有獎勵!“)else:ifguess>secret:print(”哥.大了大了")else:printer.小了,小了一")iftimes>0:printer試一次吧:'end-M")else:print(M機會用光咯T_T”)printC*游戲結(jié)束,不玩啦J八)復(fù)制代碼L寫一個程序,判斷給定年份是否為閏年。temp?input("it輸入一個年份:*)whilenot():temp-input(?(抱歉,您的輸入有誤.請輸入一個整數(shù):”)4.year=int(temp)ifyear/400==int(year/400):print(temp+,是閏年!’)else:if(year/4==int(year/4))and(year/100!=int(year/100)):print(temp+,是閏年!')else:print(temp+,不是閏年!’)復(fù)制代碼2.嘗試寫代碼實現(xiàn)以下截圖功能3.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容0.請問以下代碼會打印多少次''我愛魚CI"死循環(huán),會一直打印''我愛魚C!”(嗯,這也算是永遠支持魚C的方法之-).直到崩潰或者用戶按下快捷鍵CTRL+C(強制結(jié)束)造成死循環(huán)的原因是while后邊的條件永遠為真(True).在Python看來,只有以下內(nèi)容會被看作假(注意冒號括號里邊啥都沒有.連空格都不要有?。?FalseNone0”””()[]{}其他一切都被解釋為真!不妨試試:while**:printC進入循環(huán)?)3-printC退出循環(huán)?)復(fù)制代碼或者whileFlase:printC進入循環(huán),)printC退出循環(huán)復(fù)制代碼或者while0:printC進入循環(huán)‘)3-printC退出循環(huán),)復(fù)制代碼1.請問以下代碼會打印多少次、、我愛魚C會打印10次。請寫岀與10VcostV50等價的表達式(10<cost)and(cost<50)Python3中,一行可以書寫多個語句嗎可以,語句之間用分號隔開即可,不妨試試:>>>print('Ilovefishc);print('verymuch!1)Python3中,一個語句可以分成多行書寫嗎可以,一行過長的語句可以使用反斜杠或者括號分解成幾行,不妨試試:>>>3>4and\1<2復(fù)制代碼或者>>>(3>4and1<2)復(fù)制代碼【該題針對有C或C++基礎(chǔ)的朋友】請問Python的and操作符和C語言的&&操作符有何不同有圖有真相(C\C++VSPython):vs6.聽說過”短路邏輯(short-circuitlogic)"嗎邏輯操作符有個有趣的特性:在不需要求值的時候不進行操作。這么說可能比較''高深”,舉個例子,表達式xandy;需要x和y兩個變量同時為真(True)的時候,結(jié)果才為真。因此.如果當x變量得知是假(False)的時候,表達式就會立刻返回False,而不用去管y變量的值。這種行為被稱為短路邏輯(short-circuitlogic)或者惰性求值(lazyevaluation),這種行為同樣也應(yīng)用與or操作符,這個后邊的課程小甲魚會講到,不急。實際上,Python的做法是如果x為假,表達式會返回x的值(0).否則它就會返回y的值(例子參考樓上那題)O動動手答案:本帖隱就的內(nèi)容0.完善第二個改進要求(為用戶提供三次機會嘗試,機會用完或者用戶猜中答案均退出循環(huán))并改進視頻中小甲魚的代碼。需要注意的地方在代碼中已經(jīng)注釋!importrandomtimes=3secret=(1^10)printC 我愛魚C工作室 *)#這里先給guess賦值(賦一個絕對不等于secret的值)guess=0#print()默認是打印完字符串會自動添加一個換行符,end=“”參數(shù)吿訴print()用空格代替換行#嗯,小甲魚覺得富有創(chuàng)意的你應(yīng)該會嘗試用end-"33-print(“不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:“,end="")while(guess!=secret)and(times>0):temp=input()guess=int(temp)times=times?1#用戶每輸入一次,可用機會就」
ifguess==secret:print(-我草,你是小甲魚心里的蛔蟲嗎!“)16-print("O?,猜中了也沒有獎勵!“)else:ifguess>secret:print(”哥.大了大了一”)else:21- printer,小了,小了一??)iftimes>0:printer試一次吧:、end-"H)else:printC*機會用光咯T_T”)print(M游戲結(jié)束,不玩啦七人**)復(fù)制代碼嘗試寫代碼實現(xiàn)以下截圖功能:temp=inputCig輸入一個整數(shù):')number=int(temp)i=1whilenumber:prlnt(i)6?i=i+1number=number?1復(fù)制代碼嘗試寫代碼實現(xiàn)以下截圖功能:1-temp-inputC請輸入一個整數(shù):?)number?int(temp)whilenumber:i=number-15.whilei:5.whilei:6?print(**,end=j=numberwhilej:printC*^end=1*)j=j-1print()number=number?1復(fù)制代碼第六課測試題:0.Python的flooi除法現(xiàn)在使用ua<b<c事實上是等于不使用IDLE,你可以輕松說出5**-2的值嗎如何簡單判斷一個數(shù)是奇數(shù)還是偶數(shù)請用最快速度說出答案:not1or0and1013and4or5and6or7and8and9還記得我們上節(jié)課那個求閏年的作業(yè)嗎如果還沒有學到“求余,,操作,還記得用什么方法可以“委曲求全”代替必,啲功能呢動動手:0.請寫一個程序打印出()~100所有的奇數(shù)。我們說過現(xiàn)在的Python可以計算很大很大的數(shù)據(jù),但是真正的大數(shù)據(jù)計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰2.愛因斯坦曾出過這樣一道有趣的數(shù)學題:有一個長階梯,若每步上2階,最后剩1階;若每步上3階,最后剩2階;若每步上5階.最后剩4階,?若每步上6階,最后剩5階;只有每步上7階,最后剛好一階也不剩。(小甲魚溫馨提示:步子太大真的容易扯著蛋)題目:請編程求解該階梯至少有多少階請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式丨回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容0.Python的floor除法現(xiàn)在使用“a<b<c事實上是等于(avb)and(b<c)2.不使用IDLE,你可以輕松說出5**-2的值嗎也就是1/25幕運算操作符比其左側(cè)的一元操作符優(yōu)先級高比其右側(cè)的一元操作符優(yōu)先級低。如何簡單判斷一個數(shù)是奇數(shù)還是偶數(shù)使用求余可以簡單得到答案:能被2整除為偶數(shù),所以x%2=0,否則為奇數(shù)。清用最快速度說出答案:not1or0and1or3and4or5and6or7and8and9如果你的回答是0,那么小甲魚很開心你中招了!答案是:4notorand的優(yōu)先級是不同的:not>and>or我們按照優(yōu)先級給它們加上括號:(not1)or(0and1)or(3and4)or(5and6)or(7and8and9)=0oi0oi4oi6or9=4為啥是4大家還記得第四講作業(yè)提到的“短路邏輯”嗎3and4=4,而3oi4=3。所以答案是:4
溫馨提示:為了更好的表達你的程序.小甲魚再次呼吁有些括號還是不能省下的,畢竟不是所有程序員都跟你一樣都將優(yōu)先級爛透于心的。5.還記得我們上節(jié)課那個求閏年的作業(yè)嗎如果還沒有學到“求余”操作,還記得用什么方法可以“委曲求全”代替“%”的功能呢因為上節(jié)課我們還沒有教大家“求余”的操作,所以小甲魚使用了4*ifyear/400=mt(yeai7400)''這樣的方式來“委曲求全”。動動手答案:本帖隱藏的內(nèi)容0.請寫一個程序打印岀0~100所有的奇數(shù)。i=0ifi%2!=0:printCi,end='i+=1else:ifi%2!=0:printCi,end='i+=1else:i13.4.5?6.7.復(fù)制代碼我們說過現(xiàn)在的Python可以計算很大很大的數(shù)據(jù),但是?真正的大數(shù)據(jù)計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰print(2**2**32)#一般很多機子都會在一會兒之后:MemoryOverflow.內(nèi)存不夠用。#設(shè)計到冨操作,結(jié)果都是驚人滴。題目:請編程求解該階梯至少有多少階x=7i-1flag=04.whilei<-IOC:if(x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):flag-1else:x=7*(i+1)#根據(jù)題意,x一定是7的整數(shù)倍.所以每次乘以7i111.ifflag―1:printer數(shù)是:,,x)else:printC在程序限定的范圍內(nèi)找不到答案!?)復(fù)制代碼第八課o.ifnot(money<100):上邊這行代碼相當于1.assert的作用是什么假設(shè)有x=l,y=2,z=3,請問如何快速將三個變量的值互相交換猜猜(xvyand[x]01[y])[0]實現(xiàn)什么樣的功能4.你聽說過成員資格運算符嗎動動手:().視頻中小甲魚使用ifelifelse在大多數(shù)情況下效率要比全部使用if要高,但根據(jù)一般的統(tǒng)計規(guī)律,一個班的成績一般服從正態(tài)分布,也就是說平均成績一般集中在70?80分之間,因此根據(jù)統(tǒng)計規(guī)律,我們還可以改進下程序以提高效率。題目備忘:按照100分制,90分以上成績?yōu)锳,80到90為B,60到80為C,60以下為D,寫一個程序.當用戶輸入分數(shù).自動轉(zhuǎn)換為ABCD的形式打印。1.Python的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的復(fù)雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復(fù)雜的問題反而迎刃而解。請將以下代碼修改為三元操作符實現(xiàn):x.y>z-6,5?4ifx<y:small=xifz<small:small=zelify<z:small=yelse:small=z復(fù)制代碼清寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式丨回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容O.ifnot(money<100):這行代碼相當于ifmoney>=100:assert的作用是什么assert這個關(guān)鍵字我們稱之為“斷言”當這個關(guān)鍵字后邊的條件為假的時候,程序自動崩潰并拋出AssenioiiEnor的異常。什么情況下我們會需要這樣的代碼呢當我們在測試程序的時候就很好用,因為與其讓錯誤的條件導(dǎo)致程序今后莫名其妙地崩潰,不如在錯誤條件出現(xiàn)的那一瞬間我們實現(xiàn)“自爆氣—般來說我們可以用Ta再程序中置入檢查點’當需要確保程序中的某個條件一定為真才能讓程序正常工作的話,assert關(guān)鍵字就非常有用了。假設(shè)有x=l,y=2,z=3,請問如何快速將三個變量的值互相交換x,y,z=z,y,x3.猜精(x<yand[x]or[y])[0]實現(xiàn)什么樣的功能這其實是Pytlion的作者還沒有為Python加入三元操作符之前,Pytlion社區(qū)的小伙伴們靈活的使用and和01搭配來實現(xiàn)三元操作符的功能,這里邊有涉及到列表和切片的知識,這部分知識很快就會講解.迫不及待的朋友可以先稍微預(yù)習下。4.你聽說過成員資格運算符嗎Python有一個成員資格運算符:in,用于檢查一個值是否在序列中,如果在序列中返回True,否則返回Falseo例如:>>>name=,小甲魚,>>>,魚,innameTrue>>>'肥魚?innameFalse復(fù)制代碼當下節(jié)課我們講解fm語句的時候.你看到m會不會就有了更深入的理解!動動手答案:本帖隱就的內(nèi)容0.視頻中小甲魚使用ifelifelse在大多數(shù)情況下效率要比全部使用if要高,但根據(jù)一般的統(tǒng)計規(guī)律,一個班的成績一般服從正態(tài)分布,也就是說平均成績
一般集中在70~80分之間,因此根據(jù)統(tǒng)計規(guī)律,我們還可以改進下程序以提髙效率。score■int(inputC請輸入一個分數(shù):’))if80>score>=60:printCC*)elif90>score>=80:print(B*)elif60>score>=0:print(De)elif100>?score>?90:prlntCA*)else:printC輸入錯誤!?)復(fù)制代碼1.Python的作者在很長一段時冋不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的復(fù)雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復(fù)雜的問題反而迎刃而解。small=xif(x<yandx<z)else(yify<zelsez)復(fù)制代碼第九課0.下面的循環(huán)會打印多少次”1LoveFishC"foriinrange(0,10j2):print(*ILoveFishC*)復(fù)制代碼1.下面的循環(huán)會打印多少次“ILoveFishC”foriin5:2.printCILoveFishC2.printCILoveFishCe)復(fù)制代碼回顧一下break和continue在循環(huán)中起到的作用請談下你對列表的理解請問range(lO)生成哪些數(shù)目測以下程序會打印什么whileTrue:whileTrue:breakprint(l)print(2)breakprint(3)復(fù)制代碼什么情況下我們要使循環(huán)永遠為真【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣有沒有辦法可以大幅度改進(仍然使用while)i-0string=**whilei<len(string)):print(i)i+=1復(fù)制代碼動動手:細節(jié)決定成敗,看答案前記得自己先敲代碼!0.設(shè)計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內(nèi)容中包含”*”則不計算在內(nèi)。程序演示如圖:1.編寫一個程序,求100-999之間的所有水仙花數(shù)。如果一個3位數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。例如:153=1八3+5八3+3八3,因此153就是一個水仙花數(shù)。2.三色球問題有紅、黃、藍三種顏色的求,其中紅球3個,黃球3個,綠球6個。先將這12個球混合放在一個盒子中,從中任意摸出8個球,編程計算摸岀球的各種顏色搭配。3-請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式丨回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容0.下面的循環(huán)會打印多少次”1LoveFishC"foriinrange(0,10^2):printCILoveFishC*)復(fù)制代碼5次,因為從0開始,到10結(jié)束,步進為2。1.下面的循環(huán)會打印多少次”1LoveFishC"foriin5:printCILoveFishC*)復(fù)制代碼會報錯,上節(jié)課的課后習題我們提到了in是''成員資格運算符",而不是像C語言那樣去使用for語法。Python的for更像腳本語言的foreacho2.回顧一下break和continue在循環(huán)中起到的作用break語句的作用是終止當前循環(huán),跳出循環(huán)體。continue語句的作用是終止本輪循環(huán)并開始下一輪循環(huán)(這里要注意的是:在開始下一輪循環(huán)之前,會先測試循環(huán)條件)03-請談下你對列表的理解嗯,有些知識點需要自己總結(jié)才能加固,下節(jié)課小甲魚將跟大家暢談一個打了激素的數(shù)組:列表.不容錯過哦八—人請問range(lO)生成哪些數(shù)會生成range(Oz10).list(range(0,10))轉(zhuǎn)換成列表是:[0,1,2,3,4,5,6,7,8,9],注意不包含10哦。目測以下程序會打印什么whileTrue:whileTrue:breakprint(l)print(2)
breakprint(3)復(fù)制代碼會打?。?3因為break只能跳出一層循環(huán),記住咯!什么情況下我們要使循環(huán)永遠為真whileTure:循環(huán)體同樣用于游戲?qū)崿F(xiàn)’因為游戲只要運行著’就需要時刻接收用戶輸入,因此使用永遠為真確保游戲''在線"。操作系統(tǒng)也是同樣的道理,時刻待命,操作系統(tǒng)永遠為真的這個循環(huán)叫做消息循環(huán)。另外,許多通訊服務(wù)器的客戶端/服務(wù)器系統(tǒng)也是通過這樣的原理來工作的。所以永遠為''真"雖然是''死循環(huán)”但不一定是壞事,再說了,我們可以隨時用break來跳出循環(huán)!【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣有沒有辦法可以大幅度改進(仍然使用while)i-0string-*?whilei<len(string)):4.print(i)5.復(fù)制代碼這段代碼之所以''效率比較低〃是因為每次循環(huán)都需要調(diào)用一次len()函數(shù)(我們還沒有學到函數(shù)的概念,小甲魚這里為零基礎(chǔ)的朋友形象的解釋下:就像你打游戲打得正HIGH的時候.老媽讓你去買鹽……你有兩種選擇一次買一包,一天去買五次,或者一次性買五包回來,老媽要就直接給她。)i=0string=*,length=len(string)whilei<length:print(i)i+=1復(fù)制代碼小甲魚希望學習咱的課程的朋友不是只為了可以把程序?qū)懗鰜?而是追求把代碼寫好,寫漂亮,做一個有理想、有追求的程序猿!動動手答案:本帖隱藏的內(nèi)容0.設(shè)計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內(nèi)容中包含”*”則不計算在內(nèi)。count?3password=3.whilecount:passwd=input('請輸入密碼:e)
ifpasswd==password:printer碼正確,進入程序 *)breakelif?**inpasswd:printC密碼中不能含有””號!您還有。count,?次機會!'end—?)continueelse:13-printC密碼輸入錯誤!您還有、count-1,?次機會!、end=#,)14.count-?1復(fù)制代碼編寫一個程序,求100-999之間的所有水仙花數(shù)。如果一個3位數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。例如:153=1人3+5八3+3人3,因此153就是一個水仙花數(shù)foriinrange(100,1000):sum-0temp?iwhiletemp:sum=sum+(temp%10) 3temp三色球問題有紅、黃、藍三種顏色的求,其中紅球3個,黃球3個,綠球6個。先將這12個球混合放在一個盒子中,從中任意摸出8個球,編程計算摸岀球的各種顏色搭配。print(*red\tyellow\tblue*)forredinrange(0,4):foryellowinrange(們4):forgreeninrange(2/7):ifred+yellow+green==8:#ifred+yellow+green==8:#注意,下邊不是字符串拼接,因此不用叩'哦~6.7.print(red,*\t*,yellow^*\t*,green)7.復(fù)制代碼注釋:rangeCZ,7)是產(chǎn)生[2,3,4,5,6]5個數(shù),綠球不能是1個,因為如果綠球是1個的話,紅球+黃球需要有7個才能符合題意,而紅球和黃球每種只有3個,因此是range(2,7)第十課測試題:0.列表都可以存放一些什么東西1-向列表增加元素有哪些方法append()方法和extend。方法都是向列表的末尾增加元素,請問他們有什么區(qū)別(['竹林小溪'Crazy迷戀'])和([啊林小溪/Crazy迷戀'])實現(xiàn)的效果一樣嗎有列表name=[F,T,h,'C'],如果小甲魚想要在元素T和h之間插入元素‘寸應(yīng)該使用什么方法來插入動動手:0.自己動手試試看,并分析在這種情況下,向列表添加數(shù)據(jù)應(yīng)當采用哪種方法比較好假設(shè)給定以下列表:member=['小甲魚,'黑夜','迷途■怡靜/秋舞斜陽']要求將列表修改為:member=['小甲魚,88,'黑夜',90,'迷途,85,,怡靜',90,'秋舞斜陽,88]方法一:使用insert()和append。方法修改列表。方法二:重新創(chuàng)建一個同名字的列表覆蓋。1-利用for循環(huán)打印上邊member列表中的每個內(nèi)容,如圖:上一題打印的樣式不是很好,能不能修改一下代碼打印成下圖的樣式呢【請至少使用兩種方法實現(xiàn)】3-請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式丨回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱就的內(nèi)容0.列表都可以存放一些什么東西我們說Python的列表是一個打了激素的數(shù)組,如果把數(shù)組比喻成集裝箱.那么Python的列表就是一個大倉庫.Ta可以存放我們已經(jīng)學習過的任何數(shù)據(jù)類型。>>>mix=[L'小甲魚,[1,2,3]]向列表增加元素有哪些方法這節(jié)課我們教過大家三種方法想列表増加元素分別是:append。、extend。和insert。。2-append()方法和extend()方法都是向列表的末尾增加元素,請問他們有什么區(qū)別appendQ方法是將參數(shù)作為一個元素增加到列表的末尾。extend()方法則是將參數(shù)作為一個列表去擴展列表的末尾。請看以下示例:1.2.>>>name=[,宀?宀?h?]>>>(C)3?>>>name4.[?FS》5?>>>([,■',w?])6.>>>name7.[?FS》h'..c‘,,f]8.>>>(['o'.,"?,])9.>>>name10.[?r,'I',,h-.c??,c,[o,m]]復(fù)制代碼3.(['竹林小溪〉Xrazy迷戀'])和(['竹林小溪〉^razy迷戀'])實現(xiàn)的效果一樣嗎不一樣,因為怕大家沒有仔細看上一題的示例.所以不懂的請看上一題解釋。.(1,88)4-有列表name=[T;Eh,'C'],如果小甲魚想要在元素T和h之間插入元素’s',應(yīng)該使用什么方法來插入(2,'s*)動動手答案:本帖隱藏的內(nèi)容0?自己動手試試看,并分析在這種情況下,向列表添加數(shù)據(jù)應(yīng)當采用哪種方法比較好假設(shè)給定以下列表:member=['小甲魚/黑夜','迷途/怡靜/秋舞斜陽']要求將列表修改為:member=['小甲魚〉88,'黑夜',90,'迷途85,'怡靜90,'秋舞斜陽',88]方法一:使用insert()和append()方法修改列表。方法二:重新創(chuàng)建一個同名字的列表覆蓋。解答:方法一:2-(3,9。)(5,85)(7,90)(88)復(fù)制代碼方法二:member=[?小甲魚、88,?黑夜?,90,,迷途?,85,?怡靜?,90,?秋舞斜陽\88]復(fù)制代碼對于這種情況,明顯是第二種方法看起來要好一些嘛。不過對于大型的列表,第一種方法可能更合適.所以我們說永遠沒有最好的,只有最合適的。1-利用for循環(huán)打印上邊member列表中的每個內(nèi)容1-member-['小甲魚L88,?黑夜.,90,,迷途?,85,?怡靜?,90,?秋舞斜陽L88]foreachinmember:print(each)復(fù)制代碼上一題打印的樣式不是很好,能不能修改一下代碼打印成下圖的樣式呢【請至少使用兩種方法實現(xiàn)】1-方法一:count?0length=len(member)whilecount<length:print(member[count],member[count+1])count+=28.方法二9.foreachinrange(len(member)):ifeach%2??O:print(member[each]member[each+l])復(fù)制代碼0.注意,這道題跟上節(jié)課的那道題有點兒不同,回答完請上機實驗或參考答案。?>old=[1,2,3,4,5]>>>new=old?>old=[6]>>>print(new)復(fù)制代碼如果不上機操作,你覺得會打印什么內(nèi)容第十二課請問如何將下邊這個列表的'小甲魚修改為'小觥魚’listl-[1,[1,2,[?小甲魚’]],3,5,8,13,18]復(fù)制代碼要對一個列表進行順序排序.請問使用什么方法3-要對一個列表進行逆序排序,請問使用什么方法4.列表還有兩個內(nèi)置方法沒給大家介紹、不過聰明的你應(yīng)該可以自己摸索使用的門道吧:copy。和cleaiQ5.你有聽說過列表推導(dǎo)式或列表解析嗎沒聽過!沒關(guān)系,我們現(xiàn)場來學習一下吧,看表達式:>>>[i*iforiinrange(10)]復(fù)制代碼你覺得會打印什么內(nèi)容>>>[i*iforiinrange(lG)][0,1,4,9,16,25,36,49,64,81]復(fù)制代碼居然分別打印了。到9各個數(shù)的平方,然后還放在列表里邊了有木有!列表推導(dǎo)式(Listcompreliensioiis)也叫列表解析,靈感取自函數(shù)式編程語言Haskell.Ta是一個非常有用和靈活的工具,可以用來動態(tài)的創(chuàng)建列表,語法如:[有關(guān)A的表達式foiAinB]例如?>listl-[x"2forxinrange(10)]>?listl[0,L%9,16,25,36,49,64,81]復(fù)制代碼相當于listl-[]forxinrange(10):復(fù)制代碼問題:請先在IDLE中獲得下邊列表的結(jié)果,并按照上方例子把列表推導(dǎo)式還原出來。>>>listl=[(x,y)forxinrange(10)foryinrange(10)ifx%2==0Ify%2!=0]復(fù)制代碼6.活學活用:請使用列表推導(dǎo)式補充被小甲魚不小心涂掉的部分7.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限.回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容0.注意,這道題跟上節(jié)課的那道題有點兒不同,回答完請上機實驗或參考答案。>?old=[1,2,3,4,5]>>>new=old>>>old?[6]>>>print(new)復(fù)制代碼會打印:[1,2,3,4,5]如有不理解的朋友請看上一講課后作業(yè)的詳細答案。請問如何將下邊這個列表的'小甲魚'修改為'小觥魚'1-listl-[1,[1,2,[.小甲魚?]],3,5,8,13,18]listl[l][2][0]=?小蛻魚.復(fù)制代碼要對一個列表進行順序排序,請問使用什么方法1.>?列表名.sort()復(fù)制代碼
3.要對一個列表進行逆序排序,請問使用什么方法1.?>列表名.sort()2.復(fù)制代碼>>>列表名.reverse?;蛘?.復(fù)制代碼>>>列表.sort(reverse=True)列表還有兩個內(nèi)置方法沒給大家介紹,不過聰明的你應(yīng)該可以自己摸索使用的門道吧:copy()和clear()copy()方法跟使用切片拷貝是一樣的:1.>>>list2=()2.?>list23.復(fù)制代碼[b[1,2,[?小甲魚’]】,3,5,8,13,18]clear。方法用于清空列表的元素,但要注意,清空完后列表仍然還在哦.只是變成一個空列表。1.>?02.?>list23.復(fù)制代碼[]問題:請先在IDLE中獲得下邊列表的結(jié)果,并按照上方例子把列表推導(dǎo)式還原出來。1.>>>listl=[(x,y)forxinrange(10)foryinrange(10)ifx%2==0ify%2!-0]復(fù)制代碼1.listl-[]2.forxinragne(10):3.foryinrange(10):4.ifx%2==0:5.ify%2!=0:6?復(fù)制代碼((X,y))活學活用:請使用列表推導(dǎo)式補充被小甲魚不小心涂掉的部分1.>>>list3=[name+ +slogan[2:]forsloganinlistlfornameinlistlifslogan[G]■■name[0]]復(fù)制代碼第十三課測試題:0.請用一句話描述什么是列表再用一句話描述什么是元組1-什么情況下你需要使用元組而不是列表當元組和列表掉下水,你會救誰請將下圖左邊列表的內(nèi)置方法與右邊的注釋連線.并圈出元組可以使用的方創(chuàng)建一個元組,什么情況下逗號和小括號必須同時存在,缺一不可xzyzz=1,2,3請問x,yzz是元組嗎6.請寫出以下情景中應(yīng)該使用列表還是元組來保存數(shù)據(jù):1)游戲中角色的屬性:2)你的身份證信息:3)論壇的會員:4) 團隊合作開發(fā)程序’傳遞給一個你并不了解具體實現(xiàn)的函數(shù)的參數(shù):5) 航夭火箭各個組件的具體配置參數(shù):6) NASA系統(tǒng)中記錄已經(jīng)發(fā)現(xiàn)的行星數(shù)據(jù):上節(jié)課我們通過課后作業(yè)的形式學習到了''列表推導(dǎo)式”那請問如果我把中括號改為小括號,會不會得到''元組推導(dǎo)式“呢請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容o.請用一句話描述什么是列表再用一句話描述什么是元組列表:一個大倉庫,你可以隨時往里邊添加和刪除任何東西。元組:封閉的列表.一旦定義,就不可改變(不能添加、刪除或修改)。1.什么情況下你需要使用元組而不是列表當我們希望內(nèi)容不被輕易改寫的時候.我們使用元組(把權(quán)力關(guān)進牢籠)O當我們需要頻繁修改數(shù)據(jù)我們使用列表。2.當元組和列表掉下水,你會救誰如果是我.我會救列表,因為列表提供了比元組更豐富的內(nèi)置方法,這相當大的提高了編程的靈活性?;仡^來看下元組,元組固然安全,但元組一定創(chuàng)建就無法修改(除非通過新建一個元組來間接修改,但這就帶來了消耗),而我們?nèi)耸墙?jīng)常搖擺不定的,所以元組只有在特殊的情況才用到,平時還是列表用的多。綜上所述?小甲魚會救列表(列表是美眉)。3-請將左邊列表的內(nèi)置方法與右邊的注釋連線,并圈出元組可以使用的方法??窗?,元組果然比較悲劇吧,僅有兩個方法元組可以使用.其他方法都不行,不信你試試4.創(chuàng)建一個元組,什么情況下逗號和小括號必須同時存在,缺一不可在拼接只有一個元素的元組的時候,例如我們課上舉的例題:?>temp-。小甲魚。'黑夜''迷途七'小布丁')#如果我想在“黑夜”和“迷途”之間插入“怡靜”我們應(yīng)該:>>>temp=temp[:2]+('怡靜+temp[2:]復(fù)制代碼5-x,y,z=1,2,3清問x,y,z是元組嗎所有的多對象的、逗號分隔的、沒有明確用符號定義的這些集合默認的類型都是元組,自己在IDLE中鍵入以下代碼.并體會一下:>>>X,y>z■1,2,32.>?type(x)4.>>>h=x,y,z6.>>>type(h)復(fù)制代碼請寫出以下情景中應(yīng)該使用列表還是元組來保存數(shù)據(jù):游戲中角色的屬性:列表你的身份證信息:元組論壇的會員:列表團隊合作開發(fā)程序,傳遞給一個你并不了解具體實現(xiàn)的函數(shù)的參數(shù):元組航天火箭各個組件的具體配置參數(shù):元組NASA系統(tǒng)中記錄已經(jīng)發(fā)現(xiàn)的行星數(shù)據(jù):列表上節(jié)課我們通過課后作業(yè)的形式學習到了、、列表推導(dǎo)式",那請問如果我把中括號改為小括號,會不會得到”元組推導(dǎo)式"呢自己動手試試看再看答案哦人_八Python3木有''元組推導(dǎo)式〃,為嘛沒必要丫,有了''列表推導(dǎo)式"已經(jīng)足夠了。那為什么'>>>tuplel=(x**2forxinrange(lO))"不會報錯因為你誤打誤撞得到了一個生成器:>>>type(tuplel)<class'generator*>復(fù)制代碼關(guān)于生成器的概念小甲魚今后會細講,你可以嘗試這么去訪問我們剛剛的生成器:#注意,Python3開始next()方法改為一next_()哦~TOC\o"1-5"\h\z?>0\o"CurrentDocument"0?>()1>?()4>?09?>()16>>>()25>?()36復(fù)制代碼第14課測試題:0.還記得如何定義一個跨越多行的字符串嗎(請至少寫出兩種實現(xiàn)的方法)三引號字符串通常我們用于做什么使用filel=open('C:\wmdows\temp\',F)表示以只讀方式打開“C:\windows\temp\”這個文本文件,但事實上這個語句會報錯.知道為什么嗎你會如何修改如果使用負數(shù)作為索引值進行分片操作.按照第三題的要求你能夠正確目測出結(jié)果嗎還是第三題那個字符串,請問下邊語句會顯示什么內(nèi)容1.?>strl[20:-36]復(fù)制代碼據(jù)說只有智商高于150的魚油才能解開這個字符串(還原為有意義的字符串):stil='i2sl54owvb4e3bfeii32s56h.$'動動手:0.請寫一個密碼安全性檢查的腳本代碼:#密碼安全性檢查代碼#低級密碼要求:1.密碼由單純的數(shù)字或字母組成#2.密碼長度小于等于8位##中級密碼要求:#1.密碼必須由數(shù)字、字母或特殊字符(僅限:?!@#$%八&*()_=-/,.<>;:[]{}|\)任意兩種組合#2.密碼長度不能低于8位##高級密碼要求:#1.密碼必須由數(shù)字、字母及特殊字符(僅限:~!@#$%a&*()_=-/,.v>,:[]{}|\)三種組合#2.密碼只能由字母開頭#3.密碼長度不能低于16位程序演示:1.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限.回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱■的內(nèi)容0.還記得如何定義一個跨越多行的字符串嗎(請至少寫岀兩種實現(xiàn)的方法)方法一>?strl=叫寺我長發(fā)及腰,將軍歸來可好此身君子意逍遙,怎料山河蕭蕭。天光乍破遇,暮雪白頭老。寒劍默聽奔雷,長槍獨守空壕,醉臥沙場君莫笑,一夜吹徹畫角。江南晚來客,紅繩結(jié)發(fā)梢。”'方法二:>?su2=,待卿長發(fā)及腰,我必凱旋回朝。'昔日縱馬任逍遙,俱是少年英豪。\東都霞色好,西湖煙波渺。\執(zhí)槍血戰(zhàn)八方,誓守山河多嬌,\應(yīng)有得勝歸來日,與卿共度良宵。\盼攜手終老,愿與子同袍。'方法三:?>su3=(,待卿長發(fā)及腰,我必凱旋回朝。'昔日縱馬任逍遙,倶是少年英豪。''東都霞色好,西湖煙波渺。,'執(zhí)槍血戰(zhàn)八方,誓守山河多嬌。''應(yīng)有得勝歸來日,與卿共度良宵。''盼攜手終老,愿與子同袍。')三引號字符串通常我們用于做什么使用三引號字符串不賦值的情況下,通常當作跨行注釋使用,例如:?..這是一個三引號字符串用于注釋的例子.例子雖然只是簡簡單單的一句話’卻毫無遮掩地體現(xiàn)了作者用情至深,所謂愛至深處情至簡!.5.printC1!love!M)復(fù)制代碼filel=open('C:\windows\temp\','r')表示以只讀方式打開“C:\windows\temp\”這個文本文件,但事實上這個語句會報錯,知道為什么嗎你會如何修改會報錯是因為在字符串中,我們約定“\t”和“"分別表示“橫向制表符(TAB)”和“回車符”(詳見:),因此并不會按照我們計劃的路徑去打開文件。Python為我們鋪好了解決的道路,只需要使用原始字符串操作符(R或r)即可:>>>filel=open(r*C:\windows\temp\1,>*)復(fù)制代碼1.>>>strl[16:29]復(fù)制代碼如果使用負數(shù)作為索引值進行分片操作,按照第三題的要求你能夠正確目測出結(jié)果嗎1.>?strl[-45:-32]復(fù)制代碼還是第三題那個字符串,請問下邊語句會顯示什么內(nèi)容1.?>strl[20:-36]復(fù)制代碼'fishc*加入了員數(shù)索引,問題變得有些復(fù)雜,不過自己多嘗試幾次就可以熟練掌握了。據(jù)說只有智商高于15()的魚油才能解開這個字符串(還原為有意義的字符串):strl='i2sl54ovvvb4e3bferi32s56h;$'1.>>>strl[::3]復(fù)制代碼動動手答案:本帖隱藏的內(nèi)容0.請寫一個密碼安全性檢査的腳本代碼:#後碼安全性檢查代碼##低級密碼要求:#1.密碼由單純的數(shù)字或字母組成#2.密碼長度小于等于8位##中級密碼要求#1.密碼必須由數(shù)字、字母或特殊字符(僅限:~!鈔$於&*()_“/,?。;:[]{}|\)任意兩種組合#2.密碼長度不能低于8位##髙級密碼要求:#1.密碼必須由數(shù)字、字母及特殊字符(僅限:2!鈔$於&*()_“/,.。;:[]{}|\)三種組合#2.密碼只能由字母開頭#3.密碼長度不能低于16位15.symbols=L'一!圓$勢…'chars?"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ118.19.passwd-input(?請輸入需要檢查的密碼組合:')21.#判斷長度length=len(passwd)24.while()orlength==0):passwd=input("您輸入的密碼為空(或空格),清重新輸入:“)27.iflength<=8:flag_len?1elif8<length<16:flag_len=2else:flag_len=334.flagcon=036.#判斷是否包含特殊字符foreachinpasswd:ifeachinsymbols:flag_con+=1break42.#判斷是否包含字母foreachinpasswd:ifeachinchars:flag_con+=?1break48.#判斷是否包含數(shù)字foreachinpasswd:ifeachinnums:flag_con+=1break54.#打印結(jié)果while1:print(-您的密碼安全級別評定為:”,end-1*)ifflaglen==1orflagcon==1:print(-低“)elifflaglen==2orflag^con==2:print(-中“)else:prlnt(*高“)print(-請繼續(xù)保持“)break66.print(Mi§按以下方式提升您的密碼安全級別:\n\\tl.密碼必須由數(shù)字、字母及特殊字符三種組合\n\\t2.密碼只能由宇母開頭\n\\t3.密碼長度不能低于16位,”)break復(fù)制代碼0.根據(jù)說明填寫相應(yīng)的字符串格式化符號符號說明% 格式化字符及其ASCII碼% 格式化字符串% 格式化整數(shù)% 格式化無符號八進制數(shù)% 格式化無符號十六進制數(shù)% 格式化無符號十六進制數(shù)(大寫)% 格式化定點數(shù),可指定小數(shù)點后的精度% 用科學計數(shù)法格式化定點數(shù)% 根據(jù)值的大小決定使用%『或者%e% 根據(jù)值的大小決定使用%「或者%E請問以下這行代碼會打印什么內(nèi)容1-?> format(-不打印”,“打印”)復(fù)制代碼以下代碼中,a,b,c是什么參數(shù)>?"{a}love.{c}".format(a="I“,b-'TishC*',c-McomH)*1love'復(fù)制代碼以下代碼中,{0},{1},{2}是什么參數(shù)>?"{0}love{l}.{2},,.format(,'IM,"FishC","con')Ilove復(fù)制代碼4.如果想要顯示Pi=,format前邊的字符串應(yīng)該怎么填寫呢1?.formatCPi=\復(fù)制代碼動動手:0.編寫一個進制轉(zhuǎn)換程序’程序演示如下(提示,十進制轉(zhuǎn)換二進制可以用bin。這個BIF):1.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限.回憶并復(fù)述是加強記憶的好方式!第十五課測試題答案:本帖隱藏的內(nèi)容0.根據(jù)說明填寫相應(yīng)的字符串格式化符號1.?> format(-1.?> format(-不打印“》”打印“)1-請問以下這行代碼會打印什么內(nèi)容復(fù)制代碼2.'{!}'符號說明%c格式化字符及其Ascn碼%s格式化字符串%d格式化整數(shù)%o格式化無符號八進制數(shù)%x格式化無符號十六進制數(shù)%X格式化無符號十六進制數(shù)(大寫)%f格式化定點數(shù),可指定小數(shù)點后的精度%e用科學計數(shù)法格式化定點數(shù)%E作用同%巳用科學計數(shù)法格式化定點數(shù)%g%G根據(jù)值的大小決定使用%?或者%e作用同%g,根據(jù)值的大小決定使用%「或者%E2.以下代碼中,a,b,c是什么參數(shù)>?M{a}love{b).{c}u.format(a=MIMJb=”FishC”.c=McomM)*1love*復(fù)制代碼關(guān)鍵字參數(shù)3-以下代碼中,{0},{1},{2}是什么參數(shù)>?M{0}love{l}.{2},,.format(HIM>MFishC\McomH)*1love1復(fù)制代碼位置參數(shù)4.如果想要顯示Pi=,format前邊的字符串應(yīng)該怎么填寫呢?> .2f}f.format(?Pi■*Pi-*復(fù)制代碼動動手答案:本帖隱藏的內(nèi)容0.編寫一個進制轉(zhuǎn)換程序q=Truewhileq:num=input(?諸輸入一個整數(shù)(輸入Q結(jié)束程序):’)ifnum!?'Q■:num=int(num)print('十進制->十六進制:%d->0x%x*%(num^num))print('十進制八進制:%d->0o%o'%(num?num))print('十進制?>二進制:%d->*%num,bin(num))9?else:q=False復(fù)制代碼第十六課《零基礎(chǔ)入門學習Python}視頻下載地址:測試題:0.我們根據(jù)列表、元祖和字符串的共同特點,把它們?nèi)y(tǒng)稱為什么1-請問分別使用什么BIF,可以把一個可迭代對象轉(zhuǎn)換為列表、元祖和字符串你還能復(fù)述岀''迭代''的概念嗎你認為調(diào)用max('Ilove')會返回什么值為什么哎呀呀,現(xiàn)在的小屁孩太調(diào)皮了,鄰居家的孩子淘氣,把小甲魚剛寫好的代碼畫了個圖案,麻煩各位魚油恢復(fù)下啊,另外這家伙畫的是神馬嗎怎么那么眼熟?。觿邮郑?.猜想一下min()這個BIF的實現(xiàn)過程1-視頻中我們說sum()這個BIF有個缺陷,就是如果參數(shù)里有字符串類型的話就會報錯,請寫出一個新的實現(xiàn)過程,自動''無視"參數(shù)里的字符串并返回正確的計算結(jié)果請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱藏的內(nèi)容。.我們根據(jù)列表、元祖和字符串的共同特點,把它們?nèi)y(tǒng)稱為什么序列,因為他們有以下共同點:都可以通過索引得到每一個元素默認索引值總是從0開始(當然靈活的Python還支持負數(shù)索引)可以通過分片的方法得到一個范圍內(nèi)的元素的集合有很多共同的操作符(重復(fù)操作符、拼接操作符、成員關(guān)系操作符)請問分別使用什么BIF,可以把一個可迭代對象轉(zhuǎn)換為列表、元祖和字符串list([iterable])把可迭代對象轉(zhuǎn)換為列表tuple([iterable])把可迭代對象轉(zhuǎn)換為元祖str(obj)把對象轉(zhuǎn)換為字符串例如:>>>temp?eIlove!*>>>list(temp)['I,, ,,'V,??,,?v',e*,? 'F',*i',s','h1,C,'c','o',偵,T]復(fù)制代碼你還能復(fù)述出''迭代”的概念嗎所謂迭代,是重復(fù)反饋過程的活動,其目的通常是為了接近并到達所需的目標或結(jié)果。每—次對過程的重復(fù)被稱為一次''迭代”而每一次迭代得到的結(jié)果會被用來作為下一次迭代的初始值。你認為調(diào)用max(-Ilove)會返回什么值為什么會返回:V.因為字符串在計算機中是以ASCII碼的形式存儲(ASCH對照表:),參數(shù)中ASCII碼值最大的是V對應(yīng)的118°哎呀呀,現(xiàn)在的小屁孩太調(diào)皮了,鄰居家的孩子淘氣,把小甲魚剛寫好的代碼畫了個圖案,麻煩各位魚油恢復(fù)下啊,另外這家伙畫的是神馬嗎怎么那么眼熟??!name=input(1請輸入待查找的用戶名:’)score-[[?迷途,,85],['黑夜8。],[,小布丁65],[,福祿娃娃七95],[*怡靜、90]]IsFind?False4.foreachinscore:ifnameineach:print(name+'的得分是:')each[l])IsFind=Truebreak10.ifIsFind“False:printC查找的數(shù)揩不存在!,)復(fù)制代碼動動手答案:本帖隱景的內(nèi)容0.猜想一下min()這個BIF的實現(xiàn)過程defmin(x):least=x[0]3.foreachinx:ifeach<least:least?each7.returnleast9.復(fù)制代碼復(fù)制代碼10.復(fù)制代碼10.復(fù)制代碼注:關(guān)于函數(shù)的定義和使用在下一講的課程中講解目前只需要理解該BIF實現(xiàn)的原理即可C視頻中我們說sumO這個BIF有個缺陷,就是如果參數(shù)里有字符串類型的話就會報錯,請寫出一個新的實現(xiàn)過程,自動”無視〃參數(shù)里的字符串并返回正確的計算結(jié)果defsum(x):result=03.foreachinx:if(type(each)==int)or(type(each)==float):6? result eachelse:continue9.returnresult11.12.print(sum([l,,,'a't'I',True]))復(fù)制代碼請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式I第十七課0.你有聽說過DRY嗎1-都是重復(fù)一段代碼,為什么我要使用函數(shù)(而不使用簡單的拷貝黏貼)呢函數(shù)可以有多個參數(shù)嗎創(chuàng)建函數(shù)使用什么關(guān)鍵字,要注意什么請問這個函數(shù)有多少個參數(shù)defMyFun((x,y),(a,b)):2.returnx*y-a*b2.returnx*y-a*b請問調(diào)用以下這個函數(shù)會打印什么內(nèi)容>>>defhello():print(eHelloWorld!*)returnprint('WelcomeTo!')復(fù)制代碼動動手:o.編寫一個函數(shù)power。模擬內(nèi)建函數(shù)pow(),即power(x,y)為計算并返回x的y次慕的值。編寫一個函數(shù),利用歐幾里得算法()求最大公約數(shù),例如gcd(x,y)返回值為參數(shù)x和參數(shù)y的最大公約數(shù)。編寫一個將十進制轉(zhuǎn)換為二進制的函數(shù),要求采用''除2取余〃()的方式,結(jié)果與調(diào)用bin()—樣返回字符串形式。請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復(fù)述是加強記憶的好方式!回復(fù)您的答案即可查看參考答案!測試題答案:本帖隱我的內(nèi)容0.你有聽說過DRY嗎DRY是程序員們公認的指導(dǎo)原則:Don'tRepeatYourself.快快武裝你的思維吧,拿起函數(shù),不要再去重復(fù)拷貝一段代碼了!都是重復(fù)一段代碼,為什么我要使用函數(shù)(而不使用簡單的拷貝黏貼)呢使用函數(shù):0)可以降低代碼星(調(diào)用西數(shù)只需要一行,而拷貝黏貼需要N倍代碼)可以降低維護成本(函數(shù)只需修改def部分內(nèi)容,而拷貝黏貼則需要每一處出現(xiàn)的地方都作修改)使序更容易閱讀(沒有人會希望看到一個程序重復(fù)一萬love。函數(shù)可以有多個參數(shù)嗎可以的,理論上你想要有多少個就可以有多少個,只不過如果函數(shù)的參數(shù)過多,在調(diào)用的時候出錯的機率就會大大提高,因而寫這個函數(shù)的程序員也會被相應(yīng)的問候祖宗,所以,盡量精簡吧,在Python的世界里,精簡才是王道!創(chuàng)建函數(shù)使用什么關(guān)鍵字,要注意什么使用''def"關(guān)鍵字,要注意函數(shù)名后邊要加上小括號然后小括號后邊是冒號然后縮進部分均屬于函數(shù)體的內(nèi)容,例如:defMyFun():#我是函數(shù)體3- #我也是函數(shù)體#我們都屬于西數(shù)MyFun()5.#噢.我不屬于MyFun()函數(shù)的了復(fù)制代碼請問這個函數(shù)有多少個參數(shù)defMyFun((x,y),(a,b)):returnx*y-a?b復(fù)制代碼如果你回答兩個,那么恭喜你錯啦,答案是0,因為類似于這樣的寫法是錯誤的! 我們分析下,函數(shù)的參數(shù)需要的是變量而這里你試圖用''元祖”的形式來傳遞是不可行的。我想你如果這么寫.你應(yīng)該是要表達這么個意思:>>>defMyFun(x?y):returnx[0]*x[l]?y[0]*y[l]4??>MyFun((3,4),(1,2))5.105.10復(fù)制代碼請問調(diào)用以下這個函數(shù)會打印什么內(nèi)容>>>defhello():print(?HelloWorld!*)3?return4.print('WelcomeTo!')復(fù)制代碼會打印:>?hello()HelloWorld!復(fù)制代碼因為當Python執(zhí)行到return語句的時候,Python認為函數(shù)到此結(jié)束需要返回了(盡管沒有任何返回值)O動動手答案:本帖隱■的內(nèi)容0.編寫一個函數(shù)power()模擬內(nèi)建函數(shù)pow(),即power(x,y)為計算并返回x的y次審的值。defpower(x>y):result=13.foriinrange(y):result?=x6.returnresult8.print(power(2,3))復(fù)制代碼1.編寫一個函數(shù),利用歐幾里得算法()求最大公約數(shù),例如gcd(x,v)返回值為參數(shù)x和參數(shù)y的最大公約數(shù)。1-defgcd(x,y):2.whiley:3?t?x%y4.x=y5.y?t6.7.returnx8.9.print(gcd(4J6))復(fù)制代碼2.編寫一個將十進制轉(zhuǎn)換為二進制的函數(shù),要求采用、、除2取余”()的方式,結(jié)果與調(diào)用bin()一樣返回字符串形式。1.defDec2Bin(dec):2.temp-[
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)供應(yīng)授權(quán)收款協(xié)議
- 2024年食堂承包協(xié)議范文
- 2024企業(yè)勞動合同書樣本
- 合作開發(fā)房產(chǎn)合同文本
- 2024年商場裝修合同的范本
- 建筑項目勞務(wù)分包合同格式
- 投資股權(quán)合同格式模板
- 個人股權(quán)出售合同
- 2024合作伙伴協(xié)議范本
- 2024年消防通風承包合同協(xié)議書范本
- 2024年全國碩士研究生入學統(tǒng)一考試英語(一)真題及答案
- 幼兒園保育教育質(zhì)量評估指南解讀
- 火力發(fā)電廠分散控制系統(tǒng)驗收導(dǎo)則
- 汽車行走的藝術(shù)智慧樹知到期末考試答案章節(jié)答案2024年吉林大學
- 貴州黔南民族師范學院碩士人才引進公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 如何開展好班前班后會(趙正勇)
- 內(nèi)蒙古呼和浩特市回民區(qū)2023-2024學年七年級上學期期中地理試題
- 照明路燈工程 投標文件(技術(shù)方案)
- 2024年斯坦福Agent+AI+論文(英)
- 2024年教師普通話培訓(xùn)心得體會范文3篇
- 統(tǒng)編版五年級上冊語文第六單元《口語交際父母之愛》公開課一等獎創(chuàng)新教學設(shè)計
評論
0/150
提交評論