Python入門——條件與循環:if、while、for

1、 條件if

條件語句格式:python

執行語句……bash

if 判斷條件:app

執行語句……函數

else:工具

當if有多個條件時可以使用括號來區分判斷的前後順序,括號中的判斷優先執行,此外 and 和 or 的優先級低於>(大於)、<(小於)等判斷符號,即大於和小於在沒有括號的狀況下會比與或要優先判斷。ui

因爲 python 並不支持 switch 語句,因此多個條件判斷,只能用 elif 來實現,若是判斷須要多個條件需同時判斷時,可使用 or (或),表示兩個條件有一個成立時判斷條件成功;使用 and (與)時,表示只有兩個條件同時成立的狀況下,判斷條件才成功。spa

if 判斷條件1:code

執行語句1……對象

elif 判斷條件2:字符串

執行語句2……

elif 判斷條件3:

執行語句3……

else:

執行語句4……

In [1]:

num = 5     if num == 3:            # 判斷num的值
    print 'boss'        elif num == 2:
    print 'user'elif num == 1:
    print 'worker'elif num < 0:           # 值小於零時輸出
    print 'error'else:
    print 'roadman'     # 條件均不成立時輸出
roadman
複製代碼

1.1 and、or

對or而言,Python會由左到右求算操做對象,而後返回第一個爲真的操做對象。

Python會在其找到的第一個真值操做數的地方中止,一般叫短路計算。

In [2]:

2 < 3, 3 < 2

Out[2]:

(True, False)

In [3]:

2 or 3, 3 or 2

Out[3]:

(2, 3)
複製代碼

若是左邊的操做數爲假(空對象),Python只會計算右邊的操做數並將其返回

In [4]:

[] or 3

Out[4]:

3

In [5]:

[] or {}

Out[5]:

{}

and 會停在第一個爲假的對象上

In [6]:

2 and 3, 3 and 2

Out[6]:

(3, 2)

In [7]:

[] and {} #空 list 自己等同於 False

Out[7]:

[]

In [ ]:

#因爲一個空 list 自己等同於 False,因此能夠直接:if mylist:
  # Do something with my listelse:
  # The list is empty
複製代碼

1.2 神奇的布爾值

從一個固定大小的集合中選擇非空的對象,只要將其串在一個or表達式便可

In [ ]:

X = A or B or C or None #會把X設爲A、B以及C中第一個非空(爲真)的對象,或者全部對象都爲空就設爲None

In [ ]:

X = A or default # 若是A爲真(或非空)的話將X設置爲A,不然,將X設置爲default

In [ ]:

if f1() or f2():...# 若是f1返回真值(非空),Python將再也不執行f2,若要保證兩個函數都執行,須要在or以前調用他們,如tmp1, tmp2 = f1(), f2()if tmp1 or tmp2:...
複製代碼

2、循環

稍後會介紹更加奇特的迭代工具,如生成器、filter和reduce。如今先從最基礎的學起。

Python提供了for循環和while循環(在Python中沒有do...while循環),for循環通常比while計數器循環運行得更快

break語句,在語句塊執行過程當中終止循環,而且跳出整個循環

continue語句,在語句塊執行過程當中終止當前循環,跳出該次循環,執行下一次循環。

pass語句,是空語句,是爲了保持程序結構的完整性。不作任何事情,通常用作佔位語句。

循環else塊,只有當循環正常離開時纔會執行(也就是沒有碰到break語句)


2.1 while

In [8]:

count = 0while (count < 9):
   print 'The count is:', count
   count = count + 1

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
複製代碼

2.2 for

是一個通用的序列迭代器,能夠遍歷任何有序的序列對象內的元素。可用於字符串、列表、元組、其餘內置可迭代對象等

In [ ]:

for iterating_var in sequence:
   statements(s)

In [10]:

for letter in 'Python':     # 第一個實例
   print '當前字母 :', letterfruits = ['banana', 'apple',  'mango']for fruit in fruits:        # 第二個實例
   print '當前字母 :', fruit

當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : h
當前字母 : o
當前字母 : n
當前字母 : banana
當前字母 : apple
當前字母 : mango

In [11]:

T = [(1,2), (3,4), (5,6)]for (a,b) in T:
    print (a,b)

(1, 2)
(3, 4)
(5, 6)

In [12]:

D = {'a':1,'b':2,'c':3}for key in D:
    print (key,'=>',D[key])

('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)

In [13]:

D.items()

Out[13]:

[('a', 1), ('c', 3), ('b', 2)]

In [14]:

for (key,value) in D.items():
    print (key,'=>',value)

('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)

嵌套的結構能夠自動解包

In [15]:

for ((a,b),c) in [((1,2),3),((4,5),6)]: print (a,b,c)

(1, 2, 3)
(4, 5, 6)

複製代碼

2.3 break

In [16]:

for letter in 'Python':     # First Example
   if letter == 'h':
      break
   print 'Current Letter :', letter

Current Letter : P
Current Letter : y
Current Letter : t
複製代碼

2.4 continue

In [17]:

for letter in 'Python':     # 第一個實例
   if letter == 'h':
      continue
   print '當前字母 :', letter

當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : o
當前字母 : n
複製代碼

2.5 pass

In [18]:

for letter in 'Python':
   if letter == 'h':
      pass
      print '這是 pass 塊'
   print '當前字母 :', letter

當前字母 : P
當前字母 : y
當前字母 : t
這是 pass 塊
當前字母 : h
當前字母 : o
當前字母 : n

In [ ]:
複製代碼

轉載:寬客在線

相關文章
相關標籤/搜索