1. 程式人生 > >學習筆記-小甲魚Python3學習第九講:了不起的分支和循環3

學習筆記-小甲魚Python3學習第九講:了不起的分支和循環3

接收 實現 舉例 默認值 app 立方和 課後作業 bsp swe

while循環:當條件真時,執行循環體

while 條件:

循環體


for循環:

for 目標 in 表達式:

循環體

舉例:

>>> fruits = ['apple','橘子','banana','哈密瓜','pear'] #水果列表frutis

>>> for fruit in fruits:

print(fruit,len(fruit)) #打印水果和水果名字的字符數量


apple 5

橘子 2

banana 6

哈密瓜 3

pear 4


range()函數,python的內置函數,取一定範圍值

語法: range([start,] stop[,step=1])

-共三個參數,中括號裏面是可選參數

-step=1表示第三個參數的值默認值是1,步進值

-作用是生成一個從start參數的值到stop參數的值減1結束的數字序列

舉例:

>>> for i in range(4):

print(i)

0

1

2

3

不設置start值,默認從0開始打印


>>> for i in range(2,6):

print(i)

2

3

4

5


>>> for i in range(2,10,3):

print(i)

2

5

8

設置步進值為3


break和continue

break:終止循環,跳出循環體

舉例:

birth = '1203'

answer = input('請輸入我的生日:')

while True:

if answer == birth:

break

answer = input('不對,請再猜一下我的生日:')

print('厲害了!我的生日你都能猜到!')


continue:終止本輪循環,並開始下一輪循環

舉例:

for i in range(10):

if i%2 != 0:

print(i)

continue

print('aloha',i)

--------------------------分割線,哈哈哈--------------------

二、課後作業:

0. 下面的循環會打印多少次"I Love FishC"?

for i in range(0,10,2):

print('i love fishc')

5次,i從0開始,以每次加2,當i為0,2,4,6,8的時候打印“”中語句


1.下面的循環會打印多少次"I Love FishC"?

for i in 5:

print('i love fishc')

會報錯, in 是“成員資格運算符”,i要在一個序列中尋找值,而不是單個值


2. 回顧一下 break 和 continue 在循環中起到的作用?

break:終止當前循環,跳出循環體

continue:終止本輪循環並開始下一輪循環(這裏要註意的是:在開始下一輪循環之前,會先測試循環條件)。


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

列表是python中常用的數據類型,以[]方括號括起來,並用,逗號隔開

列表中的數據不需要具有相同的類型


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

0,1,2,3,4,5,6,7,8,9 相當於range(0,10)


5.目測以下程序會打印什麽?

while True:

while True:

break

print(1)

print(2)

break

print(3)

會打印

2

3


6.什麽情況下我們要使循環永遠為真?

#########抄的不知道########### 用於遊戲實現,因為遊戲只要運行著,就需要時刻接收用戶輸入,因此使用永遠為真確保遊戲“在線”。操作系統也是同樣的道理,時刻待命,操作系統永遠為真的這個循環叫做消息循環。另外,許多通訊服務器的客戶端/服務器系統也是通過這樣的原理來工作的。所以永遠為“真”雖然是“死循環”,但不一定是壞事,再說了,我們可以隨時用 break 來跳出循環!


7.【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?

i = 0

string = 'I love python.'

while i < len(string)):

print(i)

i+= 1

上面的代碼,效率低下的原因是“每次循環都要調用len()函數”,改為一次性直接調用如下:

i = 0

string = 'I love python'

length = len(string)

while i < length:

print(i)

i += 1


----------------------分割線,哈哈哈-----------------

三、動動手:

0.設計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內容中包含"*"則不計算在內

print('-------密碼驗證程序-----------')

count = 3

password = '11111'

while count:

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

if passwd == password:

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

break

elif '*' in passwd:

print('*不能作為密碼',end=' ')

continue

else:

print('密碼錯誤,你還有',+ count-1,'次機會.',end=' ')

count -= 1


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

for i in range(100,1000):

if i == ((i//100)**3 + (i%100//10)**3 + (i%10)**3):

print(i)


2.三色球問題:

有紅、黃、藍三種顏色的球,其中紅球3個,黃球3個,綠球6個。先將這 12 個球混合放在一個盒子中,從中任意摸出 8 個球,編程計算摸出球的各種顏色搭配。

print('--------三色球問題--------')

for red in range(4):

for yellow in range(4):

for blue in range(7):

if red + yellow + blue == 8:

print('三色球組合:紅球',red,'個','黃球',yellow,'個','籃球',blue,'個')


學習筆記-小甲魚Python3學習第九講:了不起的分支和循環3