《零基礎學習python》全套課后題_第1頁
《零基礎學習python》全套課后題_第2頁
《零基礎學習python》全套課后題_第3頁
《零基礎學習python》全套課后題_第4頁
《零基礎學習python》全套課后題_第5頁
已閱讀5頁,還剩282頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

------------------------------------------------------------------------《零基礎學習python》全套課后題第一節(jié)課0.Python是什么類型的語言?

Python是腳本語言

腳本語言(Scriptinglanguage)是電腦編程語言,因此也能讓開發(fā)者藉以編寫出讓電腦聽命行事的程序。以簡單的方式快速完成某些復雜的事情通常是創(chuàng)造腳本語言的重要原則,基于這項原則,使得腳本語言通常比C語言、C++語言或Java之類的系統(tǒng)編程語言要簡單容易。

也讓腳本語言另有一些屬于腳本語言的特性:

語法和結(jié)構(gòu)通常比較簡單學習和使用通常比較簡單通常以容易修改程序的“解釋”作為運行方式,而不需要“編譯”程序的開發(fā)產(chǎn)能優(yōu)于運行性能

一個腳本可以使得本來要用鍵盤進行的相互式操作自動化。一個Shell腳本主要由原本需要在命令行輸入的命令組成,或在一個文本編輯器中,用戶可以使用腳本來把一些常用的操作組合成一組串行。主要用來書寫這種腳本的語言叫做腳本語言。很多腳本語言實際上已經(jīng)超過簡單的用戶命令串行的指令,還可以編寫更復雜的程序。

1.IDLE是什么?

IDLE是一個PythonShell,shell的意思就是“外殼”,基本上來說,就是一個通過鍵入文本與程序交互的途徑!像我們Windows那個cmd窗口,像Linux那個黑乎乎的命令窗口,他們都是shell,利用他們,我們就可以給操作系統(tǒng)下達命令。同樣的,我們可以利用IDLE這個shell與Python進行互動。

2.print()的作用是什么?

print()會在輸出窗口中顯示一些文本(在這一講中,輸出窗口就是IDLEshell窗口)。

3.Python中表示乘法的符號是什么?

Python中的乘號是*(星號)。

4.為什么>>>print('Ilove'*5)可以正常執(zhí)行,但>>>print('Ilove'+5)卻報錯?

在Python中不能把兩個完全不同的東西加在一起,比如說數(shù)字和文本,正是這個原因,>>>print('Ilove'+5)才會報錯。這就像是在說“五只小甲魚加上蒼井空會是多少?”一樣沒有多大意義,結(jié)果可能是五,可能是六,也可能是八!不過乘以一個整數(shù)來翻倍就具有一定的意義了,前邊的例子就是將"Ilove"這個字符串打印五次。

5.如果我需要在一個字符串中嵌入一個雙引號,正確的做法是?

你有兩個選擇:可以利用反斜杠(\)對雙引號轉(zhuǎn)義:\",或者用單引號引起這個字符串。例如:'Il"o"ve'。

6.為什么我們要使用Python3?Python2到底有什么問題?看起來很多程序員依然都在使用Python2?

確實還有相當多的程序員在使用Python2,不過Python3才是Python發(fā)展的未來,就像XP和WIN7一樣。在《零基礎入門學習Python》的系列教程準備中,小甲魚發(fā)覺Python3中的新特性確實很妙,很值得進行深入學習!你也不用擔心,如果你了解了Python3,Python2的代碼閱讀對于你來說根本不成問題!第二節(jié)課0.什么是BIF?

BIF就是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的功能描述。哦,答案應該是68個,不信你自己數(shù)數(shù)看,你們肯定沒有自己完成作業(yè)就來看答案!哼~T_T

2.在Python看來:'FishC'和'fishc'一樣嗎?

不一樣,因為Python是一個“敏感的小女孩”,所以不要試圖欺騙她,對Python來說,fishc和FishC是完全不同的兩個名字,所以編程的時候一定要當心。不過Python會幫助解決可能因此出現(xiàn)的問題,例如只有當標識符已經(jīng)賦值后(還記得嗎,小甲魚在課堂中說過Python的變量是不用先聲明的)才能在代碼中使用,未賦值的標識符直接使用會導致運行時錯誤,所以你很快就可以根據(jù)經(jīng)驗發(fā)現(xiàn)此問題。

3.在小甲魚看來,Python中什么是最重要的?你贊同嗎?

縮進!在小甲魚看來,縮進是Python的靈魂,縮進的嚴格要求使得Python的代碼顯得非常精簡并且有層次(小甲魚閱讀過很多大牛的代碼,那個亂......C語言不是有國際亂碼大賽嘛......)。

所以在Python里對待縮進代碼要十分小心,如果沒有正確地縮進,代碼所做的事情可能和你的期望相去甚遠(就像C語言里邊括號打錯了位置)。

如果在正確的位置輸入冒號“:”,IDLE會自動將下一行縮進!

4.這節(jié)課的例子中出現(xiàn)了“=”和“==”,他們表示不同的含義,你在編程的過程中會不小心把“==”誤寫成“=”嗎?有沒有好的辦法可以解決這個問題呢?

C語言的話,如果if(c==1)寫成if(c=1),程序就完全不按程序員原本的目的去執(zhí)行,但在Python這里,不好意思,行不通,語法錯誤!Python不允許if條件中賦值,所以ifc=1:會報錯!

小甲魚覺得這種做法可以非常有效的防止程序員因為打炮、熬夜等問題導致粗心的BUG,并且這類BUG殺傷力都巨大!

5.你聽說過“拼接”這個詞嗎?

在一些編程語言,我們可以將兩個字符串“相加”在一起,如:'I'+'Love'+'FishC'會得到'ILoveFishC',在Python里,這種做法叫做拼接字符串。0.編寫程序:hello.py,要求用戶輸入姓名并打印“你好,姓名!”

name=input("請輸入您的姓名:")print('你好,'+name+'!')復制代碼

1.編寫程序:calc.py要求用戶輸入1到100之間數(shù)字并判斷,輸入符合要求打印“你妹好漂亮”,不符合要求則打印“你大爺好丑”

temp=input("請輸入1到100之間的數(shù)字:")num=int(temp)if1<=num<=100:

print('你妹好漂亮^_^')else:

print('你大爺好丑T_T')復制代碼第三課5.如果非要在原始字符串結(jié)尾輸入反斜杠,可以如何靈活處理?

>>>str=r'C:\ProgramFiles\FishC\Good''\\'復制代碼第四課測試題:

0.請問以下代碼會打印多少次“我愛魚C!”while'C':

print('我愛魚C!')復制代碼

1.請問以下代碼會打印多少次“我愛魚C!”i=10whilei:

print('我愛魚C!')

i=i-1復制代碼

2.請寫出與10<cost<50等價的表達式

3.Python3中,一行可以書寫多個語句嗎?

4.Python3中,一個語句可以分成多行書寫嗎?

5.請問Python的and操作符和C語言的&&操作符有何不同?【該題針對有C或C++基礎的朋友】

6.聽說過“短路邏輯(short-circuitlogic)”嗎?

動動手:

0.完善第二個改進要求(為用戶提供三次機會嘗試,機會用完或者用戶猜中答案均退出循環(huán))并改進視頻中小甲魚的代碼。

1.嘗試寫代碼實現(xiàn)以下截圖功能:第五課

測試題:

0.在Python中,int表示整型,那你還記得bool、float和str分別表示什么嗎?

1.你知道為什么布爾類型(bool)的True和False分別用1和0來代替嗎?

2.使用int()將小數(shù)轉(zhuǎn)換為整數(shù),結(jié)果是向上取整還是向下取整呢?

3.我們?nèi)祟愃季S是習慣于“四舍五入”法,你有什么辦法使得int()按照“四舍五入”的方式取整嗎?

4.取得一個變量的類型,視頻中介紹可以使用type()和isinstance(),你更傾向于使用哪個?

5.Python3可以給變量命名中文名,知道為什么嗎?

6.【該題針對零基礎的魚油】你覺得這個系列教學有難度嗎?

動動手:

0.針對視頻中小甲魚提到的小漏洞,再次改進我們的小游戲:當用戶輸入錯誤類型的時候,及時提醒用戶重新輸入,防止程序崩潰。

如果你嘗試過以下做法,請舉下小手:temp=input("不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:")#這種想法是因為type(1)會返回<class'int'>,如果type(temp)返回結(jié)果一致說明輸入是整數(shù)。whiletype(temp)!=type(1):

print("抱歉,輸入不合法,",end='')

temp=input("請輸入一個整數(shù):")復制代碼或者可能這樣:temp=input("不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:")#not操作符的作用是將布爾類型的結(jié)果翻轉(zhuǎn):即取反的意思,notTrue==Flasewhilenotisinstance(temp,int):

print("抱歉,輸入不合法,",end='')

temp=input("請輸入一個整數(shù):")復制代碼以上方法的思路是正確的,不過似乎忽略了一點兒:就是input()的返回值始終是字符串,所以type(temp)永遠是<class'str'>!

其實有蠻多的做法可以實現(xiàn)的,不過就目前我們學習過的內(nèi)容來看,還不足夠。

所以,在讓大家動手完成這道題之前,小甲魚介紹一點新東西給大家!

s為字符串

s.isalnum()

所有字符都是數(shù)字或者字母,為真返回Ture,否則返回False。

s.isalpha()

所有字符都是字母,為真返回Ture,否則返回False。

s.isdigit()

所有字符都是數(shù)字,為真返回Ture,否則返回False。

s.islower()

所有字符都是小寫,為真返回Ture,否則返回False。

s.isupper()

所有字符都是大寫,為真返回Ture,否則返回False。

s.istitle()

所有單詞都是首字母大寫,為真返回Ture,否則返回False。

s.isspace()

所有字符都是空白字符,為真返回Ture,否則返回False。

例如:

>>>s='ILOVEFISHC'

>>>s.isupper()

>>>True

好了,文字教程就到這里,大家趕緊趁熱打鐵,改造我們的小游戲吧!

1.寫一個程序,判斷給定年份是否為閏年。(注意:請使用已學過的BIF進行靈活運用)

這樣定義閏年的:能被4整除但不能被100整除,或者能被400整除都是閏年。

2.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

測試題答案:

本帖隱藏的內(nèi)容0.在Python中,int表示整型,那你還記得bool、float和str分別表示什么嗎?

bool表示布爾類型

float表示浮點型

str表示字符串

1.你知道為什么布爾類型(bool)的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ù)取整會采用比較暴力的截斷方式,即向下取整。(注:5.5向上取整為6,向下取整為5)

3.我們?nèi)祟愃季S是習慣于“四舍五入”法,你有什么辦法使得int()按照“四舍五入”的方式取整嗎?

int()固然沒那么“聰明”,但機器是死的,魚油是活的!

5.4“四舍五入”結(jié)果為:5,int(5.4+0.5)==5

5.6“四舍五入”結(jié)果為:6,int(5.6+0.5)==6

大家看明白了嗎?

4.取得一個變量的類型,視頻中介紹可以使用type()和isinstance(),你更傾向于使用哪個?

建議使用isinstance(),因為它的返回結(jié)果比較直接,另外type()其實并沒有你想象的那么簡單,我們后邊會講到。

5.Python3可以給變量命名中文名,知道為什么嗎?

Pyhton3源碼文件默認使用utf-8編碼(支持中文),這就使得以下代碼是合法的:

>>>小甲魚='我愛你'

>>>print(小甲魚)

>>>我愛你

6.【該題針對零基礎的魚油】你覺得這個系列教學有難度嗎?

如果有不懂的問題,請在此處提問:/forum-173-1.html

另外需要小甲魚在視頻講解的方面做哪方面改進請回帖告之!

動動手答案:

本帖隱藏的內(nèi)容0.針對視頻中小甲魚提到的小漏洞,再次改進我們的小游戲:當用戶輸入錯誤類型的時候,及時提醒用戶重新輸入,防止程序崩潰。

需要注意的地方在代碼中已經(jīng)注釋!importrandomtimes=3secret=random.randint(1,10)print('------------------我愛魚C工作室------------------')guess=0print("不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:",end="")while(guess!=secret)and(times>0):

temp=input()

whilenottemp.isdigit():

temp=input("抱歉,您的輸入有誤,請輸入一個整數(shù):")

guess=int(temp)

times=times-1#用戶每輸入一次,可用機會就-1

ifguess==secret:

print("我草,你是小甲魚心里的蛔蟲嗎?!")

print("哼,猜中了也沒有獎勵!")

else:

ifguess>secret:

print("哥,大了大了~~~")

else:

print("嘿,小了,小了~~~")

iftimes>0:

print("再試一次吧:",end="")

else:

print("機會用光咯T_T")print("游戲結(jié)束,不玩啦^_^")復制代碼

1.寫一個程序,判斷給定年份是否為閏年。temp=input('請輸入一個年份:')whilenottemp.isdigit():

temp=input("抱歉,您的輸入有誤,請輸入一個整數(shù):")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+'不是閏年!')復制代碼

2.嘗試寫代碼實現(xiàn)以下截圖功能:

3.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.請問以下代碼會打印多少次“我愛魚C!”

死循環(huán),會一直打印“我愛魚C!”(嗯,這也算是永遠支持魚C的方法之一),直到崩潰或者用戶按下快捷鍵CTRL+C(強制結(jié)束)

造成死循環(huán)的原因是while后邊的條件永遠為真(True),在Python看來,只有以下內(nèi)容會被看作假(注意冒號括號里邊啥都沒有,連空格都不要有?。篎alseNone0""''()[]{}

其他一切都被解釋為真!

不妨試試:while'':

print('進入循環(huán)')print('退出循環(huán)')復制代碼

或者whileFlase:

print('進入循環(huán)')print('退出循環(huán)')復制代碼

或者while0:

print('進入循環(huán)')print('退出循環(huán)')

復制代碼

1.請問以下代碼會打印多少次“我愛魚C!”

會打印10次。

2.請寫出與10<cost<50等價的表達式

(10<cost)and(cost<50)

3.Python3中,一行可以書寫多個語句嗎?

可以,語句之間用分號隔開即可,不妨試試:

>>>print('Ilovefishc');print('verymuch!')

4.Python3中,一個語句可以分成多行書寫嗎?

可以,一行過長的語句可以使用反斜杠或者括號分解成幾行,不妨試試:>>>3>4and\

1<2復制代碼或者>>>(3>4and

1<2)復制代碼

5.【該題針對有C或C++基礎的朋友】請問Python的and操作符和C語言的&&操作符有何不同?

有圖有真相(C\C++VSPython):

VS

6.聽說過“短路邏輯(short-circuitlogic)”嗎?

邏輯操作符有個有趣的特性:在不需要求值的時候不進行操作。這么說可能比較“高深”,舉個例子,表達式xandy,需要x和y兩個變量同時為真(True)的時候,結(jié)果才為真。因此,如果當x變量得知是假(False)的時候,表達式就會立刻返回False,而不用去管y變量的值。

這種行為被稱為短路邏輯(short-circuitlogic)或者惰性求值(lazyevaluation),這種行為同樣也應用與or操作符,這個后邊的課程小甲魚會講到,不急。

實際上,Python的做法是如果x為假,表達式會返回x的值(0),否則它就會返回y的值(例子參考樓上那題)。

動動手答案:本帖隱藏的內(nèi)容0.完善第二個改進要求(為用戶提供三次機會嘗試,機會用完或者用戶猜中答案均退出循環(huán))并改進視頻中小甲魚的代碼。

需要注意的地方在代碼中已經(jīng)注釋!

importrandomtimes=3secret=random.randint(1,10)print('------------------我愛魚C工作室------------------')#這里先給guess賦值(賦一個絕對不等于secret的值)guess=0#print()默認是打印完字符串會自動添加一個換行符,end=""參數(shù)告訴print()用空格代替換行#嗯,小甲魚覺得富有創(chuàng)意的你應該會嘗試用end="JJ"?print("不妨猜一下小甲魚現(xiàn)在心里想的是哪個數(shù)字:",end="")while(guess!=secret)and(times>0):

temp=input()

guess=int(temp)

times=times-1#用戶每輸入一次,可用機會就-1

ifguess==secret:

print("我草,你是小甲魚心里的蛔蟲嗎?!")

print("哼,猜中了也沒有獎勵!")

else:

ifguess>secret:

print("哥,大了大了~~~")

else:

print("嘿,小了,小了~~~")

iftimes>0:

print("再試一次吧:",end="")

else:

print("機會用光咯T_T")print("游戲結(jié)束,不玩啦^_^")復制代碼

1.嘗試寫代碼實現(xiàn)以下截圖功能:

temp=input('請輸入一個整數(shù):')number=int(temp)i=1whilenumber:

print(i)

i=i+1

number=number-1復制代碼

2.嘗試寫代碼實現(xiàn)以下截圖功能:

temp=input('請輸入一個整數(shù):')number=int(temp)whilenumber:

i=number-1

whilei:

print('',end='')

i=i-1

j=number

whilej:

print('*',end='')

j=j-1

print()

number=number-1復制代碼第六課測試題:

0.Python的floor除法現(xiàn)在使用“//”實現(xiàn),那3.0//2.0您目測會顯示什么內(nèi)容呢?

1.a<b<c事實上是等于?

2.不使用IDLE,你可以輕松說出5**-2的值嗎?

3.如何簡單判斷一個數(shù)是奇數(shù)還是偶數(shù)?

4.請用最快速度說出答案:not1or0and1or3and4or5and6or7and8and9

5.還記得我們上節(jié)課那個求閏年的作業(yè)嗎?如果還沒有學到“求余”操作,還記得用什么方法可以“委曲求全”代替“%”的功能呢?

動動手:

0.請寫一個程序打印出0~100所有的奇數(shù)。

1.我們說過現(xiàn)在的Python可以計算很大很大的數(shù)據(jù),但是......真正的大數(shù)據(jù)計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰?

2.

愛因斯坦曾出過這樣一道有趣的數(shù)學題:有一個長階梯,若每步上2階,最后剩1階;若每步上3階,最后剩2階;若每步上5階,最后剩4階;若每步上6階,最后剩5階;只有每步上7階,最后剛好一階也不剩。

(小甲魚溫馨提示:步子太大真的容易扯著蛋~~~)

題目:請編程求解該階梯至少有多少階?

3.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.Python的floor除法現(xiàn)在使用“//”實現(xiàn),那3.0//2.0您目測會顯示什么內(nèi)容呢?

如果回答是1.5那么很遺憾,您受到C語言的影響比較大,Python這里會義無反顧地執(zhí)行floor除法原則,答案是:1.0

1.a<b<c事實上是等于?

(a<b)and(b<c)

2.不使用IDLE,你可以輕松說出5**-2的值嗎?

0.04,也就是1/25

冪運算操作符比其左側(cè)的一元操作符優(yōu)先級高,比其右側(cè)的一元操作符優(yōu)先級低。

3.如何簡單判斷一個數(shù)是奇數(shù)還是偶數(shù)?

使用求余可以簡單得到答案:能被2整除為偶數(shù),所以x%2==0,否則為奇數(shù)。

4.請用最快速度說出答案:not1or0and1or3and4or5and6or7and8and9

如果你的回答是0,那么小甲魚很開心你中招了!

答案是:4

notorand的優(yōu)先級是不同的:not>and>or

我們按照優(yōu)先級給它們加上括號:(not1)or(0and1)or(3and4)or(5and6)or(7and8and9)

==0or0or4or6or9

==4

為啥是4?

大家還記得第四講作業(yè)提到的“短路邏輯”嗎?3and4==4,而3or4==3。

所以答案是:4

溫馨提示:為了更好的表達你的程序,小甲魚再次呼吁有些括號還是不能省下的,畢竟不是所有程序員都跟你一樣都將優(yōu)先級爛透于心的。

5.還記得我們上節(jié)課那個求閏年的作業(yè)嗎?如果還沒有學到“求余”操作,還記得用什么方法可以“委曲求全”代替“%”的功能呢?

因為上節(jié)課我們還沒有教大家“求余”的操作,所以小甲魚使用了“ifyear/400==int(year/400)”這樣的方式來“委曲求全”。

動動手答案:

本帖隱藏的內(nèi)容0.請寫一個程序打印出0~100所有的奇數(shù)。i=0whilei<=100:

ifi%2!=0:

print(i,end='')

i+=1

else:

i+=1復制代碼

1.我們說過現(xiàn)在的Python可以計算很大很大的數(shù)據(jù),但是......真正的大數(shù)據(jù)計算可是要靠剛剛的硬件滴,不妨寫一個小代碼,讓你的計算機為之崩潰?

print(2**2**32)

#一般很多機子都會在一會兒之后:MemoryOverflow,內(nèi)存不夠用。

#設計到冪操作,結(jié)果都是驚人滴。

2.題目:請編程求解該階梯至少有多少階?x=7i=1flag=0whilei<=100:

if(x%2==1)and(x%3==2)and(x%5==4)and(x%6==5):

flag=1

else:

x=7*(i+1)#根據(jù)題意,x一定是7的整數(shù)倍,所以每次乘以7

i+=1ifflag==1:

print('階梯數(shù)是:',x)else:

print('在程序限定的范圍內(nèi)找不到答案!')復制代碼第八課0.ifnot(money<100):上邊這行代碼相當于?

1.assert的作用是什么?

2.假設有x=1,y=2,z=3,請問如何快速將三個變量的值互相交換?

3.猜猜(x<yand[x]or[y])[0]實現(xiàn)什么樣的功能?

4.你聽說過成員資格運算符嗎?

動動手:

0.視頻中小甲魚使用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語言一樣搞出國際亂碼大賽,蛋疼的復雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復雜的問題反而迎刃而解。

請將以下代碼修改為三元操作符實現(xiàn):x,y,z=6,5,4ifx<y:

small=x

ifz<small:

small=zelify<z:

small=yelse:

small=z復制代碼

2.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.

ifnot(money<100):

這行代碼相當于?

ifmoney>=100:

1.assert的作用是什么?

assert這個關鍵字我們稱之為“斷言”,當這個關鍵字后邊的條件為假的時候,程序自動崩潰并拋出AssertionError的異常。

什么情況下我們會需要這樣的代碼呢?當我們在測試程序的時候就很好用,因為與其讓錯誤的條件導致程序今后莫名其妙地崩潰,不如在錯誤條件出現(xiàn)的那一瞬間我們實現(xiàn)“自爆”。

一般來說我們可以用Ta再程序中置入檢查點,當需要確保程序中的某個條件一定為真才能讓程序正常工作的話,assert關鍵字就非常有用了。

2.假設有x=1,y=2,z=3,請問如何快速將三個變量的值互相交換?

x,y,z=z,y,x

3.猜猜(x<yand[x]or[y])[0]實現(xiàn)什么樣的功能?

這其實是Python的作者還沒有為Python加入三元操作符之前,Python社區(qū)的小伙伴們靈活的使用and和or

搭配來實現(xiàn)三元操作符的功能,這里邊有涉及到列表和切片的知識,這部分知識很快就會講解,迫不及待的朋友可以先稍微預習下。

4.你聽說過成員資格運算符嗎?

Python有一個成員資格運算符:in,用于檢查一個值是否在序列中,如果在序列中返回True,否則返回False。

例如:>>>name='小甲魚'>>>'魚'innameTrue>>>'肥魚'innameFalse復制代碼當下節(jié)課我們講解for語句的時候,你看到in會不會就有了更深入的理解?!

動動手答案:

本帖隱藏的內(nèi)容0.視頻中小甲魚使用ifelifelse在大多數(shù)情況下效率要比全部使用if要高,但根據(jù)一般的統(tǒng)計規(guī)律,一個班的成績一般服從正態(tài)分布,也就是說平均成績一般集中在70~80分之間,因此根據(jù)統(tǒng)計規(guī)律,我們還可以改進下程序以提高效率。score=int(input('請輸入一個分數(shù):'))if80>score>=60:

print('C')elif90>score>=80:

print('B')elif60>score>=0:

print('D')elif100>=score>=90:

print('A')else:

print('輸入錯誤!')復制代碼

1.Python的作者在很長一段時間不肯加入三元操作符就是怕跟C語言一樣搞出國際亂碼大賽,蛋疼的復雜度讓初學者望而生畏,不過,如果你一旦搞清楚了三元操作符的使用技巧,或許一些比較復雜的問題反而迎刃而解。small=xif(x<yandx<z)else(yify<zelsez)復制代碼第九課0.下面的循環(huán)會打印多少次"ILoveFishC"?foriinrange(0,10,2):

print('ILoveFishC')復制代碼

1.下面的循環(huán)會打印多少次"ILoveFishC"?foriin5:

print('ILoveFishC')復制代碼

2.回顧一下break和continue在循環(huán)中起到的作用?

3.請談下你對列表的理解?

4.請問range(10)生成哪些數(shù)?

5.目測以下程序會打印什么?whileTrue:

whileTrue:

break

print(1)

print(2)

breakprint(3)復制代碼

6.什么情況下我們要使循環(huán)永遠為真?

7.【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?i=0string='ILoveFishC.com'whilei<len(string)):

print(i)

i+=1復制代碼

動動手:

細節(jié)決定成敗,看答案前記得自己先敲代碼!

0.設計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內(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)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.下面的循環(huán)會打印多少次"ILoveFishC"?foriinrange(0,10,2):

print('ILoveFishC')復制代碼5次,因為從0開始,到10結(jié)束,步進為2。

1.下面的循環(huán)會打印多少次"ILoveFishC"?foriin5:

print('ILoveFishC')復制代碼會報錯,上節(jié)課的課后習題我們提到了in是“成員資格運算符”,而不是像C語言那樣去使用for語法。Python的for更像腳本語言的foreach。

2.回顧一下break和continue在循環(huán)中起到的作用

break語句的作用是終止當前循環(huán),跳出循環(huán)體。

continue語句的作用是終止本輪循環(huán)并開始下一輪循環(huán)(這里要注意的是:在開始下一輪循環(huán)之前,會先測試循環(huán)條件)。

3.請談下你對列表的理解

嗯,有些知識點需要自己總結(jié)才能加固,下節(jié)課小甲魚將跟大家暢談一個打了激素的數(shù)組:列表,不容錯過哦^_^

4.請問range(10)生成哪些數(shù)?

會生成range(0,10),list(range(0,10))轉(zhuǎn)換成列表是:[0,1,2,3,4,5,6,7,8,9],注意不包含10哦。

5.目測以下程序會打印什么?whileTrue:

whileTrue:

break

print(1)

print(2)

breakprint(3)復制代碼會打?。?/p>

2

3

因為break只能跳出一層循環(huán),記住咯!

6.什么情況下我們要使循環(huán)永遠為真?

whileTure:

循環(huán)體

同樣用于游戲?qū)崿F(xiàn),因為游戲只要運行著,就需要時刻接收用戶輸入,因此使用永遠為真確保游戲“在線”。操作系統(tǒng)也是同樣的道理,時刻待命,操作系統(tǒng)永遠為真的這個循環(huán)叫做消息循環(huán)。另外,許多通訊服務器的客戶端/服務器系統(tǒng)也是通過這樣的原理來工作的。

所以永遠為“真”雖然是“死循環(huán)”,但不一定是壞事,再說了,我們可以隨時用break來跳出循環(huán)!

7.【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?i=0string='ILoveFishC.com'whilei<len(string)):

print(i)

i+=1復制代碼

這段代碼之所以“效率比較低”是因為每次循環(huán)都需要調(diào)用一次len()函數(shù)(我們還沒有學到函數(shù)的概念,小甲魚這里為零基礎的朋友形象的解釋下:就像你打游戲打得正HIGH的時候,老媽讓你去買鹽......你有兩種選擇,一次買一包,一天去買五次,或者一次性買五包回來,老媽要就直接給她。)i=0string='ILoveFishC.com'length=len(string)whilei<length:

print(i)

i+=1

復制代碼

小甲魚希望學習咱的課程的朋友不是只為了可以把程序?qū)懗鰜?,而是追求把代碼寫好,寫漂亮,做一個有理想、有追求的程序猿!

動動手答案:

本帖隱藏的內(nèi)容0.

設計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內(nèi)容中包含"*"則不計算在內(nèi)。count=3password='FishC.com'whilecount:

passwd=input('請輸入密碼:')

ifpasswd==password:

print('密碼正確,進入程序......')

break

elif'*'inpasswd:

print('密碼中不能含有"*"號!您還有',count,'次機會!',end='')

continue

else:

print('密碼輸入錯誤!您還有',count-1,'次機會!',end='')

count-=1復制代碼

1.編寫一個程序,求100~999之間的所有水仙花數(shù)。如果一個3位數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。例如:153=1^3+5^3+3^3,因此153就是一個水仙花數(shù)foriinrange(100,1000):

sum=0

temp=i

whiletemp:

sum=sum+(temp%10)**3

temp//=10

#注意這里要使用地板除哦~

ifsum==i:

print(i)復制代碼

2.三色球問題有紅、黃、藍三種顏色的求,其中紅球3個,黃球3個,綠球6個。先將這12個球混合放在一個盒子中,從中任意摸出8個球,編程計算摸出球的各種顏色搭配。print('red\tyellow\tblue')forredinrange(0,4):

foryellowinrange(0,4):

forgreeninrange(2,7):

ifred+yellow+green==8:

#注意,下邊不是字符串拼接,因此不用“+”哦~

print(red,'\t',yellow,'\t',green)復制代碼注釋:range(2,7)是產(chǎn)生[2,3,4,5,6]5個數(shù),綠球不能是1個,因為如果綠球是1個的話,紅球+黃球需要有7個才能符合題意,而紅球和黃球每種只有3個,因此是range(2,7)第十課測試題:

0.列表都可以存放一些什么東西?

1.向列表增加元素有哪些方法?

2.append()方法和extend()方法都是向列表的末尾增加元素,請問他們有什么區(qū)別?

3.member.append(['竹林小溪','Crazy迷戀'])和member.extend(['竹林小溪','Crazy迷戀'])實現(xiàn)的效果一樣嗎?

4.有列表name=['F','i','h','C'],如果小甲魚想要在元素'i'和'h'之間插入元素's',應該使用什么方法來插入?

動動手:

0.自己動手試試看,并分析在這種情況下,向列表添加數(shù)據(jù)應當采用哪種方法比較好?

假設給定以下列表:

member=['小甲魚','黑夜','迷途','怡靜','秋舞斜陽']

要求將列表修改為:

member=['小甲魚',88,'黑夜',90,'迷途',85,'怡靜',90,'秋舞斜陽',88]

方法一:使用insert()和append()方法修改列表。

方法二:重新創(chuàng)建一個同名字的列表覆蓋。

1.利用for循環(huán)打印上邊member列表中的每個內(nèi)容,如圖:

2.上一題打印的樣式不是很好,能不能修改一下代碼打印成下圖的樣式呢?【請至少使用兩種方法實現(xiàn)】

3.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.

列表都可以存放一些什么東西?

我們說Python的列表是一個打了激素的數(shù)組,如果把數(shù)組比喻成集裝箱,那么Python的列表就是一個大倉庫,Ta可以存放我們已經(jīng)學習過的任何數(shù)據(jù)類型。

>>>mix=[1,‘小甲魚’,3.14,[1,2,3]]

1.向列表增加元素有哪些方法?

這節(jié)課我們教過大家三種方法想列表增加元素,分別是:append()、extend()和insert()。

2.append()方法和extend()方法都是向列表的末尾增加元素,請問他們有什么區(qū)別?

append()方法是將參數(shù)作為一個元素增加到列表的末尾。

extend()方法則是將參數(shù)作為一個列表去擴展列表的末尾。

請看以下示例:>>>name=['F','i','s','h']>>>name.append('C')>>>name['F','i','s','h','C']>>>name.extend(['.','c'])>>>name['F','i','s','h','C','.','c']>>>name.append(['o','m'])>>>name['F','i','s','h','C','.','c',['o','m']]復制代碼

3.member.append(['竹林小溪','Crazy迷戀'])和member.extend(['竹林小溪','Crazy迷戀'])實現(xiàn)的效果一樣嗎?

不一樣,因為怕大家沒有仔細看上一題的示例,所以不懂的請看上一題解釋。

4.有列表name=['F','i','h','C'],如果小甲魚想要在元素'i'和'h'之間插入元素's',應該使用什么方法來插入?

name.insert(2,'s')

動動手答案:

本帖隱藏的內(nèi)容0.自己動手試試看,并分析在這種情況下,向列表添加數(shù)據(jù)應當采用哪種方法比較好?

假設給定以下列表:

member=['小甲魚','黑夜','迷途','怡靜','秋舞斜陽']

要求將列表修改為:

member=['小甲魚',88,'黑夜',90,'迷途',85,'怡靜',90,'秋舞斜陽',88]

方法一:使用insert()和append()方法修改列表。

方法二:重新創(chuàng)建一個同名字的列表覆蓋。

解答:

方法一:member.insert(1,88)member.insert(3,90)member.insert(5,85)member.insert(7,90)member.append(88)復制代碼方法二:member=['小甲魚',88,'黑夜',90,'迷途',85,'怡靜',90,'秋舞斜陽',88]復制代碼對于這種情況,明顯是第二種方法看起來要好一些嘛。

不過對于大型的列表,第一種方法可能更合適,所以我們說永遠沒有最好的,只有最合適的。

1.利用for循環(huán)打印上邊member列表中的每個內(nèi)容member=['小甲魚',88,'黑夜',90,'迷途',85,'怡靜',90,'秋舞斜陽',88]foreachinmember:

print(each)復制代碼

2.上一題打印的樣式不是很好,能不能修改一下代碼打印成下圖的樣式呢?【請至少使用兩種方法實現(xiàn)】方法一:count=0length=len(member)whilecount<length:

print(member[count],member[count+1])

count+=2方法二:

foreachinrange(len(member)):

ifeach%2==0:

print(member[each],member[each+1])復制代碼0.注意,這道題跟上節(jié)課的那道題有點兒不同,回答完請上機實驗或參考答案。>>>old=[1,2,3,4,5]>>>new=old>>>old=[6]>>>print(new)復制代碼如果不上機操作,你覺得會打印什么內(nèi)容?

第十二課

1.請問如何將下邊這個列表的'小甲魚'修改為'小魷魚'?list1=[1,[1,2,['小甲魚']],3,5,8,13,18]復制代碼

2.要對一個列表進行順序排序,請問使用什么方法?

3.要對一個列表進行逆序排序,請問使用什么方法?

4.列表還有兩個內(nèi)置方法沒給大家介紹,不過聰明的你應該可以自己摸索使用的門道吧:copy()和clear()

5.你有聽說過列表推導式或列表解析嗎?

沒聽過?!沒關系,我們現(xiàn)場來學習一下吧,看表達式:>>>[i*iforiinrange(10)]復制代碼你覺得會打印什么內(nèi)容?>>>[i*iforiinrange(10)][0,1,4,9,16,25,36,49,64,81]復制代碼居然分別打印了0到9各個數(shù)的平方,然后還放在列表里邊了有木有?!

列表推導式(Listcomprehensions)也叫列表解析,靈感取自函數(shù)式編程語言Haskell。Ta是一個非常有用和靈活的工具,可以用來動態(tài)的創(chuàng)建列表,語法如:

[有關A的表達式forAinB]

例如>>>list1=[x**2forxinrange(10)]>>>list1[0,1,4,9,16,25,36,49,64,81]復制代碼相當于list1=[]forxinrange(10):

list1.append(x**2)復制代碼

問題:請先在IDLE中獲得下邊列表的結(jié)果,并按照上方例子把列表推導式還原出來。>>>list1=[(x,y)forxinrange(10)foryinrange(10)ifx%2==0ify%2!=0]復制代碼

6.活學活用:請使用列表推導式補充被小甲魚不小心涂掉的部分

7.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.注意,這道題跟上節(jié)課的那道題有點兒不同,回答完請上機實驗或參考答案。>>>old=[1,2,3,4,5]>>>new=old>>>old=[6]>>>print(new)復制代碼

會打?。篬1,2,3,4,5]

如有不理解的朋友請看上一講課后作業(yè)的詳細答案。

1.請問如何將下邊這個列表的'小甲魚'修改為'小魷魚'?list1=[1,[1,2,['小甲魚']],3,5,8,13,18]list1[1][2][0]='小魷魚'復制代碼

2.要對一個列表進行順序排序,請問使用什么方法?>>>列表名.sort()復制代碼

3.要對一個列表進行逆序排序,請問使用什么方法?>>>列表名.sort()>>>列表名.reverse()復制代碼或者>>>列表名.sort(reverse=True)復制代碼

4.列表還有兩個內(nèi)置方法沒給大家介紹,不過聰明的你應該可以自己摸索使用的門道吧:copy()和clear()

copy()方法跟使用切片拷貝是一樣的:>>>list2=list1.copy()>>>list2[1,[1,2,['小甲魚']],3,5,8,13,18]復制代碼

clear()方法用于清空列表的元素,但要注意,清空完后列表仍然還在哦,只是變成一個空列表。>>>list2.clear()>>>list2[]復制代碼

5.問題:請先在IDLE中獲得下邊列表的結(jié)果,并按照上方例子把列表推導式還原出來。>>>list1=[(x,y)forxinrange(10)foryinrange(10)ifx%2==0ify%2!=0]復制代碼list1=[]forxinragne(10):

foryinrange(10):

ifx%2==0:

ify%2!=0:

list1.append((x,y))復制代碼

6.活學活用:請使用列表推導式補充被小甲魚不小心涂掉的部分

>>>list3=[name+':'+slogan[2:]forsloganinlist1fornameinlist2ifslogan[0]==name[0]]復制代碼第十三課測試題:

0.請用一句話描述什么是列表?再用一句話描述什么是元組?

1.什么情況下你需要使用元組而不是列表?

2.當元組和列表掉下水,你會救誰?

3.請將下圖左邊列表的內(nèi)置方法與右邊的注釋連線,并圈出元組可以使用的方法。

4.創(chuàng)建一個元組,什么情況下逗號和小括號必須同時存在,缺一不可?

5.x,y,z=1,2,3請問x,y,z是元組嗎?

6.請寫出以下情景中應該使用列表還是元組來保存數(shù)據(jù):

1)游戲中角色的屬性:

2)你的身份證信息:

3)論壇的會員:

4)團隊合作開發(fā)程序,傳遞給一個你并不了解具體實現(xiàn)的函數(shù)的參數(shù):

5)航天火箭各個組件的具體配置參數(shù):

6)NASA系統(tǒng)中記錄已經(jīng)發(fā)現(xiàn)的行星數(shù)據(jù):

7.上節(jié)課我們通過課后作業(yè)的形式學習到了“列表推導式”,那請問如果我把中括號改為小括號,會不會得到“元組推導式”呢?

8.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.請用一句話描述什么是列表?再用一句話描述什么是元組?

列表:一個大倉庫,你可以隨時往里邊添加和刪除任何東西。

元組:封閉的列表,一旦定義,就不可改變(不能添加、刪除或修改)。

1.什么情況下你需要使用元組而不是列表?

當我們希望內(nèi)容不被輕易改寫的時候,我們使用元組(把權(quán)力關進牢籠)。

當我們需要頻繁修改數(shù)據(jù),我們使用列表。

2.當元組和列表掉下水,你會救誰?

如果是我,我會救列表,因為列表提供了比元組更豐富的內(nèi)置方法,這相當大的提高了編程的靈活性。

回頭來看下元組,元組固然安全,但元組一定創(chuàng)建就無法修改(除非通過新建一個元組來間接修改,但這就帶來了消耗),而我們?nèi)耸墙?jīng)常搖擺不定的,所以元組只有在特殊的情況才用到,平時還是列表用的多。

綜上所述,小甲魚會救列表(列表是美眉)。

3.請將左邊列表的內(nèi)置方法與右邊的注釋連線,并圈出元組可以使用的方法。

看吧,元組果然比較悲劇吧,僅有兩個方法元組可以使用,其他方法都不行,不信你試試?

4.創(chuàng)建一個元組,什么情況下逗號和小括號必須同時存在,缺一不可?

在拼接只有一個元素的元組的時候,例如我們課上舉的例題:>>>temp=(‘小甲魚’,‘黑夜’,‘迷途’,‘小布丁’)#如果我想在“黑夜”和“迷途”之間插入“怡靜”,我們應該:>>>temp=temp[:2]+(‘怡靜’,)+temp[2:]復制代碼

5.x,y,z=1,2,3請問x,y,z是元組嗎?

所有的多對象的、逗號分隔的、沒有明確用符號定義的這些集合默認的類型都是元組,自己在IDLE中鍵入以下代碼,并體會一下:>>>x,y,z=1,2,3>>>type(x)>>>h=x,y,z>>>type(h)復制代碼

6.請寫出以下情景中應該使用列表還是元組來保存數(shù)據(jù):

1)游戲中角色的屬性:列表

2)你的身份證信息:元組

3)論壇的會員:列表

4)團隊合作開發(fā)程序,傳遞給一個你并不了解具體實現(xiàn)的函數(shù)的參數(shù):元組

5)航天火箭各個組件的具體配置參數(shù):元組

6)NASA系統(tǒng)中記錄已經(jīng)發(fā)現(xiàn)的行星數(shù)據(jù):列表

7.上節(jié)課我們通過課后作業(yè)的形式學習到了“列表推導式”,那請問如果我把中括號改為小括號,會不會得到“元組推導式”呢?自己動手試試看再看答案哦^_^

Python3木有“元組推導式”,為嘛?沒必要丫,有了“列表推導式”已經(jīng)足夠了。

那為什么“>>>tuple1=(x**2forxinrange(10))”不會報錯?

因為你誤打誤撞得到了一個生成器:>>>type(tuple1)<class'generator'>復制代碼關于生成器的概念小甲魚今后會細講,你可以嘗試這么去訪問我們剛剛的生成器:

#注意,Python3開始next()方法改為__next__()哦~>>>tuple1.__next__()0>>>tuple1.__next__()1>>>tuple1.__next__()4>>>tuple1.__next__()9>>>tuple1.__next__()16>>>tuple1.__next__()25>>>tuple1.__next__()36復制代碼第14課

測試題:

0.還記得如何定義一個跨越多行的字符串嗎(請至少寫出兩種實現(xiàn)的方法)?

1.三引號字符串通常我們用于做什么使用?

2.file1=open('C:\windows\temp\readme.txt','r')表示以只讀方式打開“C:\windows\temp\readme.txt”這個文本文件,但事實上這個語句會報錯,知道為什么嗎?你會如何修改?

3.有字符串:str1='<ahref="/dvd"target="_blank">魚C資源打包</a>',請問如何提取出子字符串:''

4.如果使用負數(shù)作為索引值進行分片操作,按照第三題的要求你能夠正確目測出結(jié)果嗎?

5.還是第三題那個字符串,請問下邊語句會顯示什么內(nèi)容?>>>str1[20:-36]復制代碼

6.據(jù)說只有智商高于150的魚油才能解開這個字符串(還原為有意義的字符串):str1='i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'

動動手:

0.請寫一個密碼安全性檢查的腳本代碼:check.py

#密碼安全性檢查代碼

#

#低級密碼要求:

#

1.密碼由單純的數(shù)字或字母組成

#

2.密碼長度小于等于8位

#

#中級密碼要求:

#

1.密碼必須由數(shù)字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合

#

2.密碼長度不能低于8位

#

#高級密碼要求:

#

1.密碼必須由數(shù)字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三種組合

#

2.密碼只能由字母開頭

#

3.密碼長度不能低于16位

程序演示:

1.請寫下這一節(jié)課你學習到的內(nèi)容:格式不限,回憶并復述是加強記憶的好方式!

回復您的答案即可查看參考答案!

測試題答案:

本帖隱藏的內(nèi)容0.還記得如何定義一個跨越多行的字符串嗎(請至少寫出兩種實現(xiàn)的方法)?

方法一:

>>>str1='''待我長發(fā)及腰,將軍歸來可好?

此身君子意逍遙,怎料山河蕭蕭。

天光乍破遇,暮雪白頭老。

寒劍默聽奔雷,長槍獨守空壕。

醉臥沙場君莫笑,一夜吹徹畫角。

江南晚來客,紅繩結(jié)發(fā)梢。'''

方法二:

>>>str2='待卿長發(fā)及腰,我必凱旋回朝。\

昔日縱馬任逍遙,俱是少年英豪。\

東都霞色好,西湖煙波渺。\

執(zhí)槍血戰(zhàn)八方,誓守山河多嬌。\

應有得勝歸來日,與卿共度良宵。\

盼攜手終老,愿與子同袍。'

方法三:

>>>str3=('待卿長發(fā)及腰,我必凱旋回朝。'

'昔日縱馬任逍遙,俱是少年英豪。'

'東都霞色好,西湖煙波渺。'

'執(zhí)槍血戰(zhàn)八方,誓守山河多嬌。'

'應有得勝歸來日,與卿共度良宵。'

'盼攜手終老,愿與子同袍。')

1.三引號字符串通常我們用于做什么使用?

三引號字符串不賦值的情況下,通常當作跨行注釋使用,例如:'''這是一個三引號字符串用于注釋的例子,例子雖然只是簡簡單單的一句話,卻毫無遮掩地體現(xiàn)了作者用情至深,所謂愛至深處情至簡!'''print("IloveFishC.com!")復制代碼

2.file1=open('C:\windows\temp\readme.txt','r')表示以只讀方式打開“C:\windows\temp\readme.txt”這個文本文件,但事實上這個語句會報錯,知道為什么嗎?你會如何修改?

會報錯是因為在字符串中,我們約定“\t”和“\r”分別表示“橫向制表符(TAB)”和“回車符”(詳見:/thread-39140-1-1.html),因此并不會按照我們計劃的路徑去打開文件。

Python為我們鋪好了解決的道路,只需要使用原始字符串操作符(R或r)即可:>>>file1=open(r'C:\windows\temp\readme.txt','r')復制代碼

3.有字符串:str1='<ahref="/dvd"target="_blank">魚C資源打包</a>',請問如何提取出子字符串:''>>>str1[16:29]復制代碼

4.如果使用負數(shù)作為索引值進行分片操作,按照第三題的要求你能夠正確目測出結(jié)果嗎?>>>str1[-45:-32]復制代碼

5.還是第三題那個字符串,請問下邊語句會顯示什么內(nèi)容?>>>str1[20:-36]復制代碼'fishc',加入了負數(shù)索引,問題變得有些復雜,不過自己多嘗試幾次就可以熟練掌握了。

6.據(jù)說只有智商高于150的魚油才能解開這個字符串(還原為有意義的字符串):str1='i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'>>>str1[::3]復制代碼

動動手答案:

本帖隱藏的內(nèi)容0.請寫一個密碼安全性檢查的腳本代碼:check.py#密碼安全性檢查代碼##低級密碼要求:#

1.密碼由單純的數(shù)字或字母組成#

2.密碼長度小于等于8位##中級密碼要求:#

1.密碼必須由數(shù)字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合#

2.密碼長度不能低于8位##高級密碼要求:#

1.密碼必須由數(shù)字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三種組合#

2.密碼只能由字母開頭#

3.密碼長度不能低于16位symbols=r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'nums='0123456789'passwd=input('請輸入需要檢查的密碼組合:')#判斷長度length=len(passwd)while(passwd.isspace()orlength==0):

passwd=input("您輸入的密碼為空(或空格),請重新輸入:")iflength<=8:

flag_len=1elif8<length<16:

flag_len=2else:

flag_len=3flag_con=0#判斷是否包含特殊字符foreachinpasswd:

ifeachinsymbols:

flag_con+=1

break

#判斷是否包含字母foreachinpasswd:

ifeachinchars:

flag_con+=1

break#判斷是否包含數(shù)字foreachinpasswd:

ifeachinnums:

flag_con+=1

break

#打印結(jié)果while1:

print("您的密碼安全級別評定為:",end='')

ifflag_len==1orflag_con==1:

print("低")

elifflag_len==2orflag_con==2:

print("中")

else:

print("高")

print("請繼續(xù)保持")

break

print("請按以下方式提升您的密碼安全級別:\n\

\t1.密碼必須由數(shù)字、字母及特殊字符三種組合\n\

\t2.密碼只能由字母開頭\n\

\t3.密碼長度不能低于16位'")

break復制代碼

0.根據(jù)說明填寫相應的字符串格式化符號

%

格式化字符及其ASCII碼

%

格式化字符串

%

格式化整數(shù)

%

格式化無符號八進制數(shù)

%

格式化無符號十六進制數(shù)

%

格式化無符號十六進制數(shù)(大寫)

%

格式化定點數(shù),可指定小數(shù)

溫馨提示

  • 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

提交評論