me:5次python
標準答案:5 次,由於從 0 開始,到 10 結束,步進爲 2。數組
1. 下面的循環會打印多少次"I Love FishC"?服務器
me:錯誤,循環應該使用的是一個數組,好比range()函數
標準答案:會報錯,上節課的課後習題咱們提到了 in 是「成員資格運算符」,而不是像 C 語言那樣去使用 for 語法。Python 的 for 更像腳本語言的 foreach。測試
2.回顧一下 break 和 continue 在循環中起到的做用?操作系統
me:break:終止循環,跳出循環3d
continue:跳出本輪循環,進入進入下一輪循環blog
標準答案:break語句的做用是終止當前循環,跳出循環體。
continue語句的做用是終止本輪循環並開始下一輪循環(這裏要注意的是:在開始下一輪循環以前,會先測試循環條件)。遊戲
3.字符串
4. 請問 range(10) 生成哪些數?
me:生成0-9之間的整數
標準答案:會生成 range(0, 10),list(range(0, 10)) 轉換成列表是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],注意不包含 10 哦。
5.目測如下程序會打印什麼?
me:2和3
標準答案:
6.什麼狀況下咱們要使循環永遠爲真?
標準答案:while Ture:
循環體
一樣用於遊戲實現,由於遊戲只要運行着,就須要時刻接收用戶輸入,所以使用永遠爲真確保遊戲「在線」。操做系統也是一樣的道理,時刻待命,操做系統永遠爲真的這個循環叫作消息循環。另外,許多通信服務器的客戶端/服務器系統也是經過這樣的原理來工做的。
因此永遠爲「真」雖然是「死循環」,但不必定是壞事,再說了,咱們能夠隨時用 break 來跳出循環!
7.【學會提升代碼的效率】你的以爲如下代碼效率方面怎樣?有沒有辦法能夠大幅度改進(仍然使用while)?
me:
i=0 string="ILoveFishC.com" len_str=len(string) while i < len_str: print(i) i += 1
標準答案:這段代碼之因此「效率比較低」是由於每次循環都須要調用一次 len() 函數(咱們尚未學到函數的概念,小甲魚這裏爲零基礎的朋友形象的解釋下:就像你打遊戲打得正HIGH的時候,老媽讓你去買鹽......你有兩種選擇,一次買一包,一天去買五次,或者一次性買五包回來,老媽要就直接給她。)
i = 0 string = 'ILoveFishC.com' length = len(string) while i < length: print(i) i += 1
動動手
0.
me:
i=1 password=input("請輸入密碼:") while i < 3: if password.find("*") != -1: password=input("密碼中不能含有「*」號!您還有 " + str(3-i+1) +" 次機會!請您輸入密碼:") if password == "FishC.com": print("密碼正確,進入程序......") break elif password == "FishC.com": print("密碼正確,進入程序......") break else: password=input("密碼輸入錯誤!您還有 " + str(3-i) + " 次機會!請您輸入密碼:") if password == "FishC.com": print("密碼正確,進入程序......") break i += 1
標準答案:
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.
me:
for i in range(100,999): stri=str(i) if i == int(stri[0])**3 + int(stri[1])**3 + int(stri[2])**3: print(i,end=(","))
標準答案:
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.
me:
標準答案:
print('red\tyellow\tgreen') for red in range(0, 4): for yellow in range(0, 4): for green in range(2, 7): if red + yellow + green == 8: # 注意,下邊不是字符串拼接,所以不用「+」哦~ print(red, '\t', yellow, '\t', green)
註釋:range(2, 7) 是產生 [2, 3, 4, 5, 6] 這 5 個數,綠球不能是 1 個,由於若是綠球是 1 個的話,紅球 + 黃球須要有 7 個才能符合題意,而紅球和黃球每種只有 3 個,所以是 range(2, 7)