1. 程式人生 > 其它 >python 零基礎必知--條件控制與迴圈語句

python 零基礎必知--條件控制與迴圈語句

技術標籤:pythonpython

本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理

本文章來自騰訊雲 作者:somenzz

想要學習Python?有問題得不到第一時間解決?來看看這裡,滿足你的需求,資料都已經上傳至檔案中,可以自行下載!還有海量最新2020python學習資料。
點選檢視

如果沒有 if 語句和迴圈語句,請問你怎麼程式設計?

Python 中的條件控制和迴圈語句都非常簡單,也非常容易理解,與其他程式語言類似。

條件控制

Python 的條件控制是通過一條或多條語句的執行結果(True 或者 False)來決定執行的程式碼塊。條件控制的流程圖如下圖所示:

在這裡插入圖片描述
條件控制流程圖

if 語句的一般形式如下:

if 條件1:
    語句1
elif 條件2:
    語句2
else:
    語句3

解釋:如果條件 1 為真,則執行語句 1,如果條件 1 不為真,條件 2 為真,執行語句 2,如果條件 1、條件 2 都不為真,執行語句 3。其中 elif 和 else 語句不是必須的。

1  def score(num):#定義一個函式,判斷得分屬於哪個分類
2      if num>=90:
3          print(num,'excellent')
4      elif num>=80:
5          print(
num,'fine') 6 elif num>=60: 7 print(num,'pass') 8 else: 9 print(num,'bad') 10 score(99) #呼叫函式,下週 11 score(80) 12 score(70) 13 score(60) 14 score(59)

上述程式碼的輸出結果為:

99 excellent
80 fine
70 pass
60 pass
59 bad

問號表示式

if 語句可以實現 C 語言中的問號表示式的功能,寫起來進學簡潔,語法如下所示:

value1 if 條件1 else
value2

解釋:如果條件 1 為真,那麼表示式的值為 value1,否則為 value2。
如下所示:

>>> a,b = 3,4
>>> c = a if a < b else b   # 如果a<b則c=a,否則c=b
>>> print(c)
3
>>> a,b = 5,4
>>> c = a if a < b else b
>>> print(c)
4

迴圈語句

Python 有兩種方式來實現迴圈,while 語句和 for 語句。

while 語句

while語句的結構如下 :

while 條件判斷:
  執行語句1
else:
  執行語句2

當條件判斷為真為真時,執行語句1,條件判斷為假時執行語句2,其實只要不是死迴圈,語句2一定會被執行,因此while語句的結構也可以如下:

while 條件判斷:
  執行語句1
執行語句2

while語句的流程圖如下圖所示:

在這裡插入圖片描述

while 語句

下面請看一個例子:

#encoding=utf-8
#filename = lx_while.py
flag=True
while flag:
    input_str=input("please input something,'q' for quit.-> ")
    print("your input is %s" % input_str)
    if input_str=='q':
        flag=False
print("You're out of circulation.")

在命令視窗執行 python lx_while.py ,並嘗試輸入一些字元,結果如下所示。

please input something,'q' for quit.-> hello
your input is hello
please input something,'q' for quit.-> python
your input is python
please input something,'q' for quit.-> q
your input is q
You're out of circulation.

for 語句
Python 的 for 迴圈可以遍歷任何可迭代物件,如一個列表或者一個字串。
for迴圈的一般格式如下:

for <variable> in <sequence>:
 <statements>
else:
 <statements>

例如計算1到1000的所有整數的和:

>>> sum=0 #定義求和的結果sum,初始為0
>>> for i in range(1000): #rang(1000)產生一個1到1000的整數列表
...    sum+=i #相當於sum=sum+i進行累加
...
>>> print(sum) #列印結果
499500

關於迴圈的中的 break 語句和 continue 語句:從英文字面意思來理解即可,break 就是中斷,跳出當前的迴圈,不再繼續執行迴圈內的所有語句;continue 的意思是繼續,程式執行至 continue 處時,不在執行continue 後的語句,立即進行下一次迴圈判斷。請看一個例子便知道兩者的區別:
將下面的程式碼儲存至 lx_break_continue.py

# -*- coding: utf-8 -*-
# !/usr/local/bin/python
# Time: 2018/5/23 20:57:36
# Description:
# File Name: lx_break_continue.py

print("break--------------")
count = 0
while count < 5:
    print("aaa", count)
    count += 1
    if count == 2:
        break
    print("bbb", count)

print("continue--------------")
count = 0
while count < 5:
    print("aaa", count)
    count += 1
    if count == 2:
        continue
    print("bbb", count)

在命令列中執行 python lx_break_continue.py 將得到如下結果

break--------------
aaa 0
bbb 1
aaa 1
continue--------------
aaa 0
bbb 1
aaa 1
aaa 2
bbb 3
aaa 3
bbb 4
aaa 4
bbb 5

我們看到 break 直接跳出了迴圈,而 continue 只是跳過了其中的一步(輸出“bbb 2”的那一步)。

小陷阱
猜下下面的程式碼的輸出結果

for i in [0,1,2,3]:
    print(i)
    i = 100

有人會說只打印一次 i 的值,其實輸出的結果是這樣的:

0
1
2
3

這是為什麼呢? python 中的 for 語句在迴圈之後會有個隱藏的賦值操作,即 在 i = 100 之後再下次迴圈之前有個 i = 1 的操作,因此這裡的 for 仍會正常執行,這也是使用 in 關鍵字的原因。

如果沒有 if 語句和迴圈語句,恐怕程式設計會很困難。