Python條件與循環

博文結構
Python的if語句
Python的for循環

瞭解Python安裝及操作

一.Python條件判斷

條件語句是指根據條件表達式的不同計算結果,使程序流轉到不同的代碼塊。Python語句是if語句和if else 語句。

  • if條件語句

if語句用於判斷某個條件是否成立,如果成立,則執行語句內的程序,否則跳過if語句執行後面的內容,語法格式如下:
if (條件) :
語句塊

案例如下:
點擊新建腳本,然後運行

money=100                   \\定義一個變量
if(money > 90):              \\如果大於90則輸出:結尾
      print "aaa"
      print "bbb"                \\默認自動縮進4個空格

\\輸出結果
aaa
bbb
>>> 

案例:

print '請輸入學生考試成績'     
score = input()
print score >=60
if score >=60 :              \\冒號結尾,省略圓括號,如果大於60則輸出合格
      print '合格'                

\\輸出結果如下
請輸入學生考試成績
80
True
合格
>>> 
  • 條件表達式與關係運算符

語法如下:

                            操作數  關係運算符  操作數

Python條件與循環

運算結果
>>> print 10==9
False
>>> print 10!=9
True
>>> print 10>9
True
>>> print 10<9
False
>>> print 10<=9
False
>>> 
  • if- -else條件語句

if語句還可以加上else關鍵字,根據條件判斷,決定執行不同的語句塊,當條件爲True時,執行語句塊1,當條件爲False時,執行語句塊2.語法如下:

if (條件) :
語句塊1
else:
語句塊2

案例:

print '請輸入學生考試成績'
score=input()
if score >= 60 :             \\大於等於60則輸出合格
      print '合格'
else:
      print '加油'               \\除了大於等於60,都是加油

\\輸出結果如下

>>> 
請輸入學生考試成績
80                                                \\執行第一次輸入80
合格

請輸入學生考試成績
50                                                \\執行第二次輸入50
加油
>>> 
  • 多重if語句

使用if-else通過條件判斷使程序能夠有2條執行路徑,但有時還需要更多條路徑進行處理,這時可以加入elif關鍵字處理。語法如下:

if(條件1):
                語句塊1
elif(條件2) :
                語句塊2
elif (條件3) :
                語句塊3
else:
                語句塊
當條件1成立時,執行條件1對應的語句塊1,當條件2. 3成立時,分別執行對應的語句塊,當前面的條件都不成功時,執行else 對應的語句塊。

案例:

print '請輸入學生成績'
score=input()
if score >= 90:
      print  ‘優秀’
elif score >= 70 :
      print '良好'
elif score >=60 :
      print '合格'
else:
      print '努力'

\輸出結果如下

請輸入學生考試成績
80
合格

>>> 
請輸入學生考試成績
50
加油

>>> 
請輸入學生成績
100
優秀

>>> 
請輸入學生成績
80
良好

>>> 
請輸入學生成績
50
努力

>>> 
請輸入學生成績
60
合格
>>> 
  • if語句的常見問題

(1)使用if-elif-else語句時,容易出現邏輯錯誤,因爲條件是由上向下判斷,如果條件成立,下面的條件判斷將不再執行。
(2)if語句中語句塊沒有縮進也是容易犯的錯誤
(3) 對於使用其他語言轉爲Python的程序員,由於習慣經常會忘記表達式後面的冒號,需要多練習熟悉語法。

二.Python的循環

編寫程序時經常有代碼需要重複運行,Python 提供了while和for進行循環操作。

  • while循環
    while循環可以根據條件進行判斷,決定是否要循環執行語句塊,語法如下:
while循環條件:
            while循環條件:

案例如下:

i=1                                           \\初始化循環計算器i
sum=0                                      \\初始化總成績變量sum
while i <=5 :                              \\循環條件  重複5次接收考試成績
      print '請輸入%d門課程的考試成績' %i
      sum = sum +input()             \\循環操作
      i = i+1
avg = sum /(i -1)
print '5門課程的平均成績是%d' %avg    \\請輸入的%d門課程的考試成績 %i

\\輸出結果如下:

請輸入1門課程的考試成績
77
請輸入2門課程的考試成績
55
請輸入3門課程的考試成績
22
請輸入4門課程的考試成績
55
請輸入5門課程的考試成績
33
5門課程的平均成績是48
>>> 

Python條件與循環

  • 嵌套使用
j=1
prompt = '請輸入學生姓名:'
while j <= 2 :
      sum=0
      i=1
      name=raw_input(prompt)
      while i <=5:
            print '請輸入第%d門課程的考試成績' %i
            sum=sum+input()
            i=i+1
      avg=sum / ( i - 1 )
      print '%s的5門課程的平均成績是:%d' %(name,avg)
      j=j+1
print '學生成績輸入完成'

\\輸出結果如下

請輸入學生姓名:aaa
請輸入第1門課程的考試成績
50
請輸入第2門課程的考試成績
20
請輸入第3門課程的考試成績
20
請輸入第4門課程的考試成績
30
請輸入第5門課程的考試成績
40
aaa的5門課程的平均成績是:32
請輸入學生姓名:bbb
請輸入第1門課程的考試成績
20
請輸入第2門課程的考試成績
20
請輸入第3門課程的考試成績
30
請輸入第4門課程的考試成績
30
請輸入第5門課程的考試成績
40
bbb的5門課程的平均成績是:28
學生成績輸入完成
>>> 
  • for循環
    for循環是另一種用於控制循環的方式,while 是使用條件判斷執行循環,而for是使用遍歷元素的方式進行循環。

1.for循環的幾種方式
語法結構如下:

for  變量  in  集合:
                語句塊

(1)for循環可以對字符串進行遍歷,逐個獲得字符串的每個字符

for letter in 'python':      \\輸出結果按照這個詞語的字母挨個輸出
      print 'current letter:%s' %letter

\\輸出結果如下

current letter:p
current letter:y
current letter:t
current letter:h
current letter:o
current letter:n
>>> 

(2)for循環可以對列表和元組進行遍歷

fruits = ["西瓜","蘋果","葡萄"]
for fruit in fruits:
      print fruit

\\輸出結果如下

西瓜
蘋果
葡萄
>>> 

(3)(3)需要循環操作相同的內容時,可以用for循環和range()函數結合使用.先看看range()函數的作用

print range(0,5)
print range(0,5,2)

\\輸出結果如下

[0, 1, 2, 3, 4]
[0, 2, 4]
>>> 

Range(0.5)輸出的是- -個列表,由第一個參數0開始, 默認每次加1,當大於等於第二個參數時結束,所以列表中不包括第二個參數值。Range(0.5,2)多 了第三個參數2.作用是每次加2.最後的列表值是[0,2,4]。 所以range()函數的作用是創建一個數字列表 ,取值範圍是從起始數字開始到結束數字之前的內容。for 循環可以對列表進行遍歷.所以可以對range()函數的結果進行遍歷。

for i in range(0,5):
      print '北京歡迎你'

\\輸出結果如下

北京歡迎你
北京歡迎你
北京歡迎你
北京歡迎你
北京歡迎你
>>> 

Range(0, 5)是由0~4組成的列表,循環共執行了5遍,輸出語句執行了5遍,變量i的值就是每次遍歷列表的元素值。

2.for循環示例

subjects = ('python','mysql','linux')
sum=0
for i in subjects:
      print '請輸入%s考試成績:' %i
      score=input()
      sum+=score
avg = sum / len(subjects)
print '張三的平均成績是%d' %avg

\\輸出結果如下

請輸入python考試成績:
44
請輸入mysql考試成績:
55
請輸入linux考試成績:
66
張三的平均成績是55
>>> 

3.邏輯運算符

任何語言中都有邏輯表達式,它是用邏輯運算符和變量連接起來的表達式,邏輯運算符如圖:

Python條件與循環

使用方法如下:

>>> print (not True)
False
>>> print (True and False)
False
>>> print (True or False)
True
>>> 

4.for循環嵌套

同while循環一樣,for 循環也可以使用嵌套的方式,

案例如下:

students = ['張三','李四']
subjects = ( 'python','mysql','linux' )
for student in students:
      sum = 0
      for subject in subjects:
            print '請輸入 %s 的 %s考試成績:' %(student,subject)
            score = input()
            sum += score
      avg = sum / len(subjects)
      print ' %s 的平均成績是 %d ' %(student,avg)

\\輸出結果如下

請輸入 張三 的 python考試成績:
20
請輸入 張三 的 mysql考試成績:
20
請輸入 張三 的 linux考試成績:
20
 張三 的平均成績是 20 
請輸入 李四 的 python考試成績:
30
請輸入 李四 的 mysql考試成績:
30
請輸入 李四 的 linux考試成績:
30
 李四 的平均成績是 30 
>>> 
  • 循環控制

當使用while和for做循環操作時,有可能需要改變循環的正常執行順序,這時就需要用循環控制語句實現,循環控制語句有break和continue.

1.break
在循環的語句塊中使用break語句,可以跳出整個循環。下面對輸出平均成績的代碼進行修改,當成績無效時,使用break退出循環,示例代碼如下:

students = ['張三','小五']
subjects = ('python','mysql','linux')
for student in students:                   \\第一層循環
      sum=0
      for subject in subjects:               \\第二層循環
            print '請輸入 %s 的 %s 考試成績:' %(student,subject)
            score = input()
            if (score<0 or score>100):
                  print '輸入的成績需要大於0或小於100,循環退出'
                  break;
            sum +=score
      avg = sum / len(subjects)
      print '%s的平均成績是%d' %(student,avg)

\\輸出結果如下:

>>> 
請輸入 張三 的 python 考試成績:
150
輸入的成績需要大於0或小於100,循環退出

2.continue
continue的作用和break不同,它不是結束整個循環,而是跳過當前一輪循環體的剩餘語句,重新測試循環狀態,準備進入下一輪循環,示例代碼如下:

students = ['張三','小五']
subjects = ('python','mysql','linux')
for student in students:
      sum = 0
      i = 0
      while(i < len(subjects)):
            print '請輸入%s 的  %s 考試成績:' %(student,subjects[i])
            score = input()
            if (score<0 or score>100):
                  print '輸入的成績需要大於0或小於100,重新輸入'
                  continue;
            sum +=score
            i = i+1
      avg = sum /len(subjects)
      print ' %s的平均成績是 %d ' %(student,avg)

\\輸出結果如下

請輸入張三 的  python 考試成績:
20
請輸入張三 的  mysql 考試成績:
400
輸入的成績需要大於0或小於100,重新輸入  \\可以看到大於100必須重新輸入
請輸入張三 的  mysql 考試成績:
60
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章