博文結構
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
合格
>>>
- 條件表達式與關係運算符
語法如下:
操作數 關係運算符 操作數
運算結果
>>> 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
>>>
- 嵌套使用
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.邏輯運算符
任何語言中都有邏輯表達式,它是用邏輯運算符和變量連接起來的表達式,邏輯運算符如圖:
使用方法如下:
>>> 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