判斷(if)語句
if
語句是最簡單的選擇結(jié)構(gòu)。如果滿足條件就執(zhí)行設(shè)定好的操作遂鹊,不滿足條件就執(zhí)行其他其他操作丽柿。
判斷的定義
004_if語句是一個完整的代碼塊1.png
- 如果 條件滿足崇众,才能做某件事情掂僵,
- 如果 條件不滿足,就做另外一件事情顷歌,或者什么也不做
正是因為有了判斷锰蓬,才使得程序世界豐富多彩,充滿變化眯漩!
判斷語句 又被稱為 “分支語句”芹扭,正是因為有了判斷,才讓程序有了很多的分支
if.png
判斷偶數(shù)
需求
- 輸入一個數(shù)
- 如果這個數(shù)為偶數(shù)就打印
# 1. 輸入一個數(shù)字
num = int(input("請輸入一個數(shù)字"))
# 2. 判斷這個數(shù)是否為偶數(shù)
# if 語句以及縮進部分的代碼是一個完整的代碼塊
if 0 == num % 2:
print("%s這個數(shù)是二的倍數(shù)" % num)
else
思考
在使用 if
判斷時赦抖,只能做到滿足條件時要做的事情舱卡。那如果需要在 不滿足條件的時候,做某些事情队萤,該如何做呢轮锥?
答案
else
,格式如下:
if 要判斷的條件:
條件成立時要尔,要做的事情
……
else:
條件不成立時舍杜,要做的事情
……
注意:
-
if
和else
語句以及各自的縮進部分共同是一個 完整的代碼塊
# 輸入一個數(shù)字
num = int(input("請輸入一個數(shù)字:"))
# elif 語句以及縮進部分的代碼也是一個完整的代碼塊0
if 0 == num % 2:
print("%s這個數(shù)是二的倍數(shù)" % num)
# else 語句以及縮進部分的代碼是一個完整的代碼塊
else:
print("%s可能是其他的數(shù)" % num)
005_ifelse語句是一個完整的代碼塊1.png
if 語句進階
if elif.png
elif
- 在開發(fā)中,使用
if
可以 判斷條件 - 使用
else
可以處理 條件不成立 的情況 - 但是赵辕,如果希望 再增加一些條件既绩,條件不同,需要執(zhí)行的代碼也不同 時还惠,就可以使用
elif
- 語法格式如下:
if 條件1:
條件1滿足執(zhí)行的代碼
……
elif 條件2:
條件2滿足時饲握,執(zhí)行的代碼
……
elif 條件3:
條件3滿足時,執(zhí)行的代碼
……
else:
以上條件都不滿足時蚕键,執(zhí)行的代碼
……
# 輸入一個數(shù)字
num = int(input("請輸入一個數(shù)字:"))
# 判斷這個數(shù)是否為偶數(shù)
# if 語句以及縮進部分的代碼是一個完整的代碼塊
if not num:
print("你輸入的是零或者不是數(shù)字")
# elif 語句以及縮進部分的代碼也是一個完整的代碼塊0
elif 0 == num % 2:
print("%s這個數(shù)是二的倍數(shù)" % num)
elif 0 == num % 3:
print("%s這個數(shù)是三的倍數(shù)" % num)
elif 0 == num % 4:
print("%s這個數(shù)是三的倍數(shù)" % num)
# else 語句以及縮進部分的代碼是一個完整的代碼塊
else:
print("%s可能是其他的數(shù)" % num)
注意
-
elif
和else
都必須和if
聯(lián)合使用救欧,而不能單獨使用 - 可以將
if
、elif
和else
以及各自縮進的代碼锣光,看成一個 完整的代碼塊
elif 的應(yīng)用場景是:同時 判斷 多個條件颜矿,所有的條件是 平級 的
- 在開發(fā)中,使用
if
進行條件判斷嫉晶,如果希望 在條件成立的執(zhí)行語句中 再 增加條件判斷,就可以使用 if 的嵌套 - if 的嵌套 的應(yīng)用場景就是:在之前條件滿足的前提下田篇,再增加額外的判斷
- if 的嵌套 的語法格式替废,除了縮進之外 和之前的沒有區(qū)別
- 語法格式如下:
if 條件 1:
條件 1 滿足執(zhí)行的代碼
……
if 條件 1 基礎(chǔ)上的條件 2:
條件 2 滿足時,執(zhí)行的代碼
……
# 條件 2 不滿足的處理
else:
條件 2 不滿足時泊柬,執(zhí)行的代碼
# 條件 1 不滿足的處理
else:
條件1 不滿足時椎镣,執(zhí)行的代碼
……
if 的嵌套—水仙花素
水仙花數(shù)(Narcissistic number)也被稱為超完全數(shù)字不變數(shù)(pluperfect digital invariant, PPDI)、自戀數(shù)兽赁、自冪數(shù)状答、阿姆斯壯數(shù)或阿姆斯特朗數(shù)(Armstrong number)冷守,水仙花數(shù)是指一個 3 位數(shù),它的每個位上的數(shù)字的 3 次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)惊科。
需求
輸入一個數(shù)拍摇,判斷數(shù)字是否是水仙花數(shù)
- 水仙花素是一個三位數(shù)
- 每個位上的數(shù)字的 3 次冪之和等于它本身
水仙花.png
# 輸入一個數(shù)
num_str = input("請輸入一個三位數(shù):")
num = int(num_str)
# 判斷輸入數(shù)是否正確
if num > 100 and num < 1000:
print("輸入的數(shù)正確,繼續(xù)驗證馆截。充活。。")
num1 = int(num_str[0])
num2 = int(num_str[1])
num3 = int(num_str[2])
num4 = num1**3 + num2**3 + num3**3
# 每個位上的數(shù)字的 3次冪之和等于它本身
if num4 == num:
print("{} 是水仙花數(shù)".format(num))
else:
print("{} 不是水仙花數(shù)".format(num))
else:
print("輸入的數(shù)字不可能是水仙花數(shù)蜡娶,請重新驗證")
總結(jié)
if 的三種形式
- if
if 條件1:
條件1滿足執(zhí)行的代碼
不太建議使用混卵,不滿足條件時沒有任何提示
- if ... else
只有兩種情況下使用
if 條件1:
條件1滿足執(zhí)行的代碼
else:
以上條件都不滿足時,執(zhí)行的代碼
……
- if ... elif ... elif ... else
多條件選擇使用
if 條件1:
條件1滿足執(zhí)行的代碼
……
elif 條件2:
條件2滿足時窖张,執(zhí)行的代碼
……
elif 條件3:
條件3滿足時幕随,執(zhí)行的代碼
……
else:
以上條件都不滿足時,執(zhí)行的代碼
……
if嵌套
if 條件1:
if 條件 1 基礎(chǔ)上的條件 2:
條件 2 滿足時宿接,執(zhí)行的代碼
……
# 條件 2 不滿足的處理
else:
條件 2 不滿足時赘淮,執(zhí)行的代碼
else:
以上條件都不滿足時,執(zhí)行的代碼
……
練習(xí):使用 input
輸入兩個數(shù)澄阳,根據(jù)其大小先后輸出
- 輸入兩個數(shù)
- 判斷大小
- 輸出大的數(shù)字
- 輸出小的數(shù)字
a = input("請輸入a:")
b = input("請輸入b:")
if a > b:
print('a:', a, '大于', "b:", b)
else:
print("b:", b, '大于', 'a:', a)