測試題:
0. 下面的循環會打印多少次”I love FishC”?
for i in range(0,10, 2):
print('I LoveFishC')
答:for I in range(0,10,2)打印的I 的值爲:0,2,4,6,8
所以打印5次I love FishC
1. 下面的循環會打印多少次”I love FishC”?
for i in 5:
print('I Love FishC')
答:0次,會報錯
2. 回顧一下break和continue在循環中起到的作用?
答:break是跳出整個循環,continue是跳出本次循環。
3. 請談一下你對列表的理解?
答:
(1).列表是最常用的Python數據類型,它可以作爲一個方括號內的逗號分隔值出現。
(2).列表的數據項不需要具有相同的類型。
(3).創建一個列表,只要把逗號分隔的不同的數據項使用方括號括起來即可。
4. 請問range(10)生產那些數?
答:會生產0,1,2,3,4,5,6,7,8,9 list(range(0,10))
5. 目測以下程序會打印什麼?
while True:
while True:
break
print(1)
print(2)
break
print(3)
答:2和3
6. 什麼情況下我們要使循環永遠爲真?
答:同樣用於遊戲實現,因爲遊戲只要運行着,就要時刻接受用戶輸入,因此使用永遠爲真確保遊戲在線。
7. 你覺得以下代碼效率怎樣?有沒有辦法可以大幅改進(扔然使用while)?
i = 0
string ='abc.com'
while i <len(string):
print(i)
i += 1
答:
#!/usr/bin/envpython
i = 0
string ='abc.com'
for i in range(i,len(string)):
print(i)
動動手:
0. 設計一個用戶驗證密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內容包含*則不計算在內?
#!/usr/local/bin/python3
#_*_coding:utf-8_*_
bingo= 'abk.com'
i = 1
a ="*"
answer= input('請輸入密碼:')
whileTrue:
if answer == bingo:
print("密碼正確,進入程序。。。。")
break
elif ( a in answer ):
answer = input("密碼中不能含有'*'號!您還有三次機會!請重新輸入密碼:")
continue
while True:
if i < 3:
answer = input("密碼輸入錯誤!您還有 %s 次機會!請重新輸入密碼:" %(3 - i) )
if answer != bingo:
i += 1
continue
else:
print("密碼正確,進入程序。。。。")
else:
print("三次輸入錯誤,退出程序。")
break
break
1. 編寫一個程序,求100到999之間的所有水仙花數。
(如果一個3位數等於其各位數字的立方和,則稱這個數爲水仙花數。例如:153=1^3+5^3+3^3,因此153就是一個水仙花數)
答:
#!/usr/local/bin/python3
#_*_coding:utf-8_*_
for iin 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個球,編程計算摸出球的各種顏色搭配。
答:
print('red\tyellow\tgreen')
forred 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)