1. 程式人生 > >【python--循環】

【python--循環】

內容 用戶 生成 插入 range 思路 2個 拼接 con

1、for循環語法:

for 目標 in 表達式:

  循環體

2、range()

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

--這個bif有三個參數,其中用中括號括起來的兩個表示這兩個參數是可選的

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

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

>>> list(range(5))
[0, 1, 2, 3, 4]
>>>

---代碼含義:range(5),是從0開始的數字序列

>>> for i in range(2,9):
print (i)

2
3
4
5
6
7
8

--以上代碼含義:i 在range的2到9之間循環,但是不包含9

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

2
4
6
8
>>>

---代碼含義:range的第三個參數,是第一個參數每次遞增的數字

二、兩個關鍵的語句:break,continue

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

bingo = ‘塵封是個大帥哥!!!‘
answer = input(‘請輸入塵封最想說的一句話:‘)

while True:
if bingo == answer:
break
else:
answer = input(‘抱歉輸錯了,請繼續輸入吧:‘)
print(‘太棒了,回答正確!‘)

---只要是真實的,就退出程序

continue關鍵字:終止本輪循環,開始下一輪循環

for i in range(10):
if i%2 != 0:
print(i)
continue
i +=2
print(i)
================== RESTART: /Users/wufq/Desktop/continue.py ==================
2
1
4
3
6
5
8
7
10
9

---此段代碼的含義:當i%2 余數不等於0的時候執行print(i)循環語句,否則跳出(continue)進入i +=2的循環體

三、練習題:

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

程序設計思路:

a、給三次輸入機會

b、只要輸入*,則需要重新輸入

c、在不包含*的時候,輸入的次數會遞減(錯誤次數用完彈出機會用完,輸入對彈出密碼正確,進入程序。。。)

times = 3
password = ‘123456‘

while times:
passwd = input(‘請輸入密碼:‘)
if passwd == password:
print(‘密碼正確,進入程序。。。。。‘)
break
elif ‘*‘ in passwd:
print(‘密碼中不能含有“*”,您還有‘,times,‘機會‘)
continue
else:
print(‘密碼輸入錯誤,您還有‘, times-1,‘機會‘)
times -=1

2、編寫一個程序,求100~999之間的所有水仙花數

如果一個3位數等於其各位數字的立方和,則稱這個數為水仙花數,例如:153=1^3+5^3+3^3,因此153就是一個水仙花數

(插入知識點:

“/”除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:

   >>> 10/3
   3.3333333333333335

  還有一種除法是"//",稱為地板除,兩個整數的除法仍然是整數:

  >>> 10 //3
  3

  "%",兩個整數相除取余數

  >>> 10%3
  1

  )

程序設計思路:

a、創建一個變量設置100~999的隨機數

for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 註意這裏要使用地板除哦~
if sum == i:
print(i)
3、三色球問題
有紅,黃,藍三種顏色的球,其中紅球3個,黃球3個,綠球6個,先將這12個球混合放在一個盒子中,從中任意摸出8個球,編程計算摸出球的各種顏色搭配

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)
red yellow green
0 2 6
0 3 5
1 1 6
1 2 5
1 3 4
2 0 6
2 1 5
2 2 4
2 3 3
3 0 5
3 1 4
3 2 3
3 3 2
>>>

【python--循環】