python流程控制

計算機程序在解決某個具體問題時,包括三種情形,即順序執行所有的語句、選擇執行部分的語句和循環執行部分語句,這正好對應着程序設計中的     三種程序執行結構流程:順序結構、選擇結構和循環結構。

事實證明,任何一個能用計算機解決的問題,只要應用這三種基本結構來寫出的程序都能解決。Python語言當然也具有這三種基本結構

1、IF 選擇結構語句

{

簡單分支語句


if 判斷條件:

執行語句1……

else:

執行語句2……

  此時,條件1成立時執行語句1,;條件2成立時執行語句2

name = 'luren'

if name == 'python':         # 判斷變量否爲'python' | name == 'python' ### 字符串的比較

print 'welcome boss'    # 並輸出歡迎信息

else:

print name              # 條件不成立時輸出變量名稱

   

 多個分支結構:


if 判斷條件:

執行語句1……

elif:

執行語句2……

else:

執行語句3……

此時,條件1成立時執行語句1,;條件2成立時執行語句2;條件1和條件2都不成立時執行語句3


x = int(raw_input("請輸入您的總分:"))

if x >= 90:

   print('優')

elif x>=80:

     print('良')

elif x >= 70:

    print('中')

elif x >= 60:

    print('合格')

else:

      print('不合格')


if語句多個條件

num = 9

if num >= 0 and num <= 10:    # 判斷值是否在0~10之間

print 'hello'

>>> hello # 輸出結果

num = 10

if num < 0 or num > 10:    # 判斷值是否在小於0或大於10

print 'hello'

else:

print 'undefine'

>>> undefine # 輸出結果

num = 8

# 判斷值是否在0~5或者10~15之間

if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    

print 'hello'

else:

print 'undefine'

嵌套條件語句

     if<條件>:

          if<條件>:

               <語句1>

          elif<條件>:

               <語句2>:

     else:

          <語句3>

編寫條件語句時,應該儘量避免使用嵌套語句。嵌套語句不便於閱讀,而且可能會忽略一些可能性。


}


2、while 循環語句

{

在給定的判斷條件爲 true 時執行循環體,否則退出循環體

count = 0

while (count < 9):

print 'The count is:', count

count = count + 1

print "Good bye!"

循環使用 else 語句

count = 0

while count < 5:

print count, " is  less than 5"

count = count + 1

else:

print count, " is not less than 5"

while True:

xxxx


嵌套循環 你可以在while循環體中嵌套for/while循環


while expression:

   while expression:

      statement(s)

   statement(s)



i = 2

while(i < 100):

   j = 2

   while(j <= (i/j)):

      if not(i%j): break

      j = j + 1

   if (j > i/j) : print i, " 是素數"

   i = i + 1


print "Good bye!"

}


3、for 循環語句

{


python 中 for 語句結構是在一個序列上遍歷

words = ['cat', 'windows', 'linux']

for w in words:

print w, len(w)



重複執行語句

fruits = ['banana', 'apple',  'mango']

for index in range(len(fruits)):

   print '當前水果 :', fruits[index]

 

print "Good bye!"


循環使用 else 語句 , else可以用於for循環,當循環自然終止,即沒有被break中止時,會執行else下的語句

for num in range(10,20):  # 迭代 10 到 20 之間的數字

   for i in range(2,num): # 根據因子迭代

    if num%i == 0:      # 確定第一個因子

      j=num/i          # 計算第二個因子

        print '%d 等於 %d * %d' % (num,i,j)

          break            # 跳出當前循環

  else:                  # 循環的 else 部分

      print num, '是一個質數'

}


4、enumrate

{

使用內置 enumerate 函數進行遍歷:

for index, item in enumerate(sequence):

    process(index, item)


>>> sequence = [12, 34, 34, 23, 45, 76, 89]

>>> for i, j in enumerate(sequence):

...     print i,j

... 

0 12

1 34

2 34

3 23

4 45

5 76

6 89



}

5、三元運算符

{ 

if語句可以使用在一個單語句中,實現三元運算符,基本形式:<表達式1> if <條件> else <表達式2>


}

6、循環控制語句


{


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

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

pass 語句 pass是空語句,是爲了保持程序結構的完整性,用於需要一個語句以符合語法,但又什麼都不需要做時, 也可以用於寫一個空函數


>>> for n in range (2,10):

...     for x in range (2,n):

...         if n % x == 0:

...            print n, 'equals', x, '*', n/x

...            break

...     else:

...         print n, 'is a prime number'

... 

2 is a prime number

3 is a prime number

4 equals 2 * 2

5 is a prime number

6 equals 2 * 3

7 is a prime number

8 equals 2 * 4

9 equals 3 * 3

}


break 和 continue 語句,循環時使用else,else可以用於for循環,當循環自然終止,即沒有被break中止時,會執行else下的語句


>>> for n in range (2,10):

...     for x in range (2,n):

...         if n % x == 0:

...            print n, 'equals', x, '*', n/x

...            break

...     else:

...         print n, 'is a prime number'

... 

2 is a prime number

3 is a prime number

4 equals 2 * 2

5 is a prime number

6 equals 2 * 3

7 is a prime number

8 equals 2 * 4

9 equals 3 * 3


 break 和 continue 語句,循環時使用else, else可以用於for循環,當循環自然終止,即沒有被break中止時,會執行else下的語句


>>> for n in range (2,10):

...     for x in range (2,n):

...         if n % x == 0:

...            print n, 'equals', x, '*', n/x

...            break

...     else:

...         print n, 'is a prime number'

... 

2 is a prime number

3 is a prime number

4 equals 2 * 2

5 is a prime number

6 equals 2 * 3

7 is a prime number

8 equals 2 * 4

9 equals 3 * 3





}


7、xrange,range

{

如果需要迭代一個數字序列的話,可以使用range()函數,range()函數可以生成等差級數,

for語句的循環對象可以是列表、元組以及字符串,可以通過range()函數產生一個迭代值,以完成計數循環

>>> range (5) 

[0, 1, 2, 3, 4]

>>> range (2,5)

[2, 3, 4]

>>> range (5,10,1)

[5, 6, 7, 8, 9]

>>> range (5,10,2)

[5, 7, 9]

>>> range (5,10,3)

[5, 8]

xrange生成的不是一個數組,而是一個生成器

>>> xrange(5)

xrange(5)

>>> list(xrange(5))

[0, 1, 2, 3, 4]

>>> xrange(1,5)

xrange(1, 5)

>>> list(xrange(1,5))

[1, 2, 3, 4]

>>> xrange(0,6,2)

xrange(0, 6, 2)

>>> list(xrange(0,6,2))

[0, 2, 4]


for語句使用range()函數可以構建基於已知循環次數的循環程序,也可以以range()生成的數字作爲索引來訪問列表、元組、字符串中的值。

  需要注意的是,range() 函數返回的對象表現爲它是一個列表,但事實上它並不是,range()函數並不是在調用時一次生成整個序列,而是遍歷一次才產生一個值,以減少內存的佔用,其本質是一個迭代器。

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章