小甲魚Python第八講課后習題


0. 下面的循環會打印多少次"I Love FishC"?
for i in range(0, 10, 2):  
   print('I Love FishC') 
打印5次,range(start,stop,間隔)
 
1. 下面的循環會打印多少次"I Love FishC"?
for i in 5:  
  print('I Love FishC') 
出錯,無效語法,5是整型,不能作為迭代數值
 
2.回顧一下 break 和 continue 在循環中起到的作用?
答:break 為條件成立時終止循環,結束程序。continue為條件成立時終止循環回到循環體開始位置,如果條件為假時候執行continue下面的語句。
 
3.請問 range(10) 生成哪些數?
答:0,1,2,3,4,5,6,7,8,9 
 
4.什么情況下我們要使循環永遠為真?
while Ture:  
  循環體
 
同樣用於游戲實現,因為游戲只要運行着,就需要時刻接收用戶輸入,因此使用永遠為真確保游戲“在線”。操作系統也是同樣的道理,時刻待命,操作系統永遠為真的這個循環叫做消息循環。另外,許多通訊服務器的客戶端/服務器系統也是通過這樣的原理來工作的。
     
所以永遠為“真”雖然是“死循環”,但不一定是壞事,再說了,我們可以隨時用 break 來跳出循環!
 
5.【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?

i = 0  

string = 'ILoveFishC.com'  

while i < len(string)):  

  print(i)   

  i += 1

 

答:

i =0

string = 'ILoveFishC.com'  

length =len(string)

while i< length:

  print(i)

  i +=1

 

動手:

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

自己寫的 ci==0時,有問題,沒有解決

mima='123aaa'
ci=3
temp =input('shurumima:')
while ci:
if temp==mima:
print('zhengque')
break
elif '*' in temp:
temp=input('buenngbaoh *,cishu%s,chongxinshuru'%ci)
elif ci ==0:
print('zhanghaoshuoding,qing10fenzhonghou')
else:
ci -=1
temp=input('cishushaoleyici,%s,chongxinshuru'%ci)

小甲魚代碼:
count = 3
password = 'FishC.com'

while count:
    passwd = input('請輸入密碼:')
    if passwd == password:
        print('密碼正確,進入程序......')
        break
    elif '*' in passwd:
        print('密碼中不能含有"*"號!您還有', count, '次機會!', end=' ')
        continue
    else:
        print('密碼輸入錯誤!您還有', count-1, '次機會!', end=' ')    
    count -= 1
 1.編寫一個程序,求 100~999 之間的所有水仙花數。
如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數。 
for a in range(100,1000):
i=a
i==(i//100)**3+((i//10)%10)**3+(i%10)**3
if i==a:
print(i)
else:
print(' ')

小甲魚代碼:
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         # 注意這里要使用地板除哦~
    if sum == i:
        print(i)

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

print('red\tyellow\tblue')
for red in range(0, 4):
for yellow in range(0, 4):
for blue in range(2, 7):
if red + yellow + blue == 8:
print(red, '\t', yellow, '\t', blue)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM