條件判斷語句和循環語句都是編寫代碼中經常用到的語句,下面就簡單說下:
條件判斷語句
條件判斷語句的是:
if(判斷內容):
執行內容1
elif(判斷內容):
執行內容2
else:
執行內容3
使用時要注意判斷格式,換行後第二行要縮進四個空格,否則會報錯。
以上述代碼爲例,if 後面的括號內,放入的首次判斷的內容,若正確,執行 執行內容1 ,執行完成後,跳過剩餘判斷語句;若錯誤,則跳過 執行內容1 ,開始執行 elif 括號裏的內容,若正確,執行 執行內容2 ,執行完成後,跳過剩餘判斷語句;若錯誤,則跳過 執行內容2 ,直接開始執行else裏的 執行內容3。示例如下:
設置 a = 20
由於 a = 20 > 10 ,則執行第一個判斷成功後,執行下面的語句print('a大於10'),之後跳過剩餘語句。
有幾點需要注意:
- 一個條件判斷語句中可以有多個 elif 。
- 一個條件判斷語句中最多只能有一個 else ,條件判斷語句可以沒有else。
- 條件判斷語句判斷成功後,執行當前成功判斷裏的代碼,執行完成後,直接跳過剩餘條件判斷語句。
其中,判斷內容 一般是條件判斷語句,例如:2>1 ,或者是 3>5 等,結果是返回 True 或 False 的,示例如下:
判斷內容 處也可放入 變量,只要變量是非零數值、非空字符串、非空list等,都判斷爲 True ,否則判斷爲 False,示例如下:
測試判斷語句的小例子:
通過輸入身高和體重信息,計算BMI值,並給出友善提醒,代碼如下:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
height = input('請輸入您的身高(單位:米):'.decode("utf-8").encode("gbk"))
weight = input('請輸入您的體重(單位:千克):'.decode("utf-8").encode("gbk"))
bmi = weight/(height*height)
print(bmi)
if bmi< 18.5:
print('您的體重過輕,要多吃肉~~'.decode("utf-8").encode("gbk"))
elif bmi>= 18.5 and bmi<=25:
print('您的體重正常,注意保持哈~~'.decode("utf-8").encode("gbk"))
elif bmi>25 and bmi<=28:
print('您的體重過重,要多出門呼吸新鮮空氣吶~~'.decode("utf-8").encode("gbk"))
elif bmi>28 and bmi<=32:
print('您的體重肥胖,要多運動,少吃肉~~'.decode("utf-8").encode("gbk"))
elif bmi>32:
print('您的體重嚴重肥胖,爲了您的健康,及時就醫諮詢減重吶~~'.decode("utf-8").encode("gbk"))
else:
print('請正確輸入您的身高或體重信息'.decode("utf-8").encode("gbk"))
我使用的是Python2.7.15,執行時,發現中文亂碼,在網上找到個例子,如上述代碼所示,在字符串後面添加代碼設置其字符串編碼。先把數據通過decode('utf-8')轉爲字符串編碼爲utf-8的字符,再通過encode('gbk')轉爲cmd可以識別的GBK編碼。這樣就不會出現編碼異常的問題。運行結果如下:
由於上述代碼寫的不完善,測試時請按照指定格式測試,否則會報錯。
在Python3下 不去字符轉碼,但是輸入的身高體重信息需要轉爲相應格式,在Python下,input 默認輸入的是 字符串,需要轉換成對應格式,具體如下:
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
height = input('請輸入您的身高(單位:米):')
weight = input('請輸入您的體重(單位:千克):')
height = float(height)
weight = int(weight)
bmi = weight/(height*height)
print(bmi)
if bmi< 18.5:
print('您的體重過輕,要多吃肉~~')
elif bmi>= 18.5 and bmi<=25:
print('您的體重正常,注意保持哈~~')
elif bmi>25 and bmi<=28:
print('您的體重過重,要多出門呼吸新鮮空氣吶~~')
elif bmi>28 and bmi<=32:
print('您的體重肥胖,要多運動,少吃肉~~')
elif bmi>32:
print('您的體重嚴重肥胖,爲了您的健康,及時就醫諮詢減重吶~~')
else:
print('請正確輸入您的身高或體重信息')
print('您的體重過輕,要多吃肉~~')
elif bmi>= 18.5 and bmi<=25:
print('您的體重正常,注意保持哈~~')
elif bmi>25 and bmi<=28:
print('您的體重過重,要多出門呼吸新鮮空氣吶~~')
elif bmi>28 and bmi<=32:
print('您的體重肥胖,要多運動,少吃肉~~')
elif bmi>32:
print('您的體重嚴重肥胖,爲了您的健康,及時就醫諮詢減重吶~~')
else:
print('請正確輸入您的身高或體重信息')
循環語句
循環是讓計算機做重複任務最有效的方法。
for循環
for循環語句如下:
for 循環內變量名 in list名:
執行任務語句
示例如下:
若想通過代碼得到0到100相加的和,我們需要一個 list,裏面包含 0 到 100 的數字,一個個寫十分麻煩,我們可以使用Python提供的另一個函數:range() 。
range() 函數可以生成一個整數序列,比如,想要得到0-10的整數序列,寫法如下:
range(11)
解釋一下,上述示例是 從 0 開始 ,小於 11 的整數,得到的 就是 0到10 的整數序列。
由於 range() 生成的是整數序列,轉爲 list 型還需要用 list() 轉一下。綜上所述,通過代碼得到0到100整數相加的和的示例如下:
while循環
while循環語句如下:
while 判斷條件 :
執行任務語句
示例如下:
只要條件滿足,它就自動循環,條件不滿足,就跳出循環。
在循環語句中,有時需要提前 退出循環 或 跳過當前循環 ,這就涉及到 break 和 continue 兩個語句。
break
break 是 退出循環,示例如下:
執行循環語句,當循環到 5 的時候,跳出循環。可見, break 的作用是 提前結束循環。
continue
continue 是跳過當前循環,示例如下:
執行循環語句,當循環到 5 的時候,跳過本次循環,進入下一次循環。可見,continue 的作用是 提前結束本輪循環,進入下一輪循環。
當我們寫代碼的時候,有時會碰到死循環,就是會一直循環下去的循環,示例如下:
a = 5
while a<10:
print(a)
這是,編譯器會一直輸出 5 。這時,可以輸入 Ctrl + c 強制中斷進行的程序。
總結一下,判斷語句和循環語句是 編寫程序中經常用到的語句,要掌握好它們。
本篇結束,教材網址:https://www.liaoxuefeng.com, 繼續學習~~