編程時常常須要檢查一系列條件,並根據此決定採起什麼措施。html
在python中,if語句讓你可以檢查程序的當前狀態,並根據此採起相應的措施。python
------------------------------編程
一個快速簡單的示例學習
# 目標結果:打印出歌手GAI,貓和老鼠的Tom和外國美女rose。測試
persons=["jack","tom","jerry","gai","ROSE"]
for person in persons:
if person == "gai":
print(person.upper())
elif person == "tom":
print(person.title())
elif person == "ROSE":
print(person.lower())
else:
continue
輸出結果:
Tom
GAI
rose
-----------------------------
零基礎的能夠仔細研究一下這段代碼,並結合下圖的代碼流程圖進一步更深的理解:
代碼流程圖調試的網址:https://pythontutor.com/visualize.html
------------------------------
如今進入條件測試的學習
①檢查是否相等
>>>person1="ROSE"
>>>person2="Rose"
person1 == person2--->False
>>>person1="ROSE"
>>>person3="rose"
person1 == person3.upper()--->True
②比較數字
>>>age=20
age>20--->False
>>>age=18
age<=18--->True
③使用or和and檢查多個條件
>>>age_1=20
>>>age_2=22
age_1>10 and age_2<23--->True
>>>age_3=18
>>>age_4=24
age_3>20 or age<23---->False
④使用特定值檢查是否包含在列表中
>>>list_1=["a","b","c"]
"a" in list_1--->True
"w" in lisr_1--->False
實際上,這些都是布爾表達式,它是條件測試的別名。
網站
布爾表達式的結果要麼爲True,要麼爲False。spa
------------------------------調試
認識辣個男人:if/elif/.../elif/else代碼塊orm
if:只判斷一件事情或一個條件htm
↓
if/else:當條件測試經過了執行一個操做,條件測試未經過時執行另一個操做。
↓
if/elif/else:能夠測試三個條件。
↓
if/elif/.../elif/else:極爲強大的測試代碼塊,幾乎能涵蓋全部的測試條件,直到遇到了經過了的測試,Python就跳過餘下的測試。
下面我將結合一個題目來說一下辣個男人:
設置變量age的值,再編寫一個if-elif-else結構,根據age的值判斷處於人生的哪一個階段。
•若是此人小於2歲,請打印一條信息,說明此人是嬰兒。
•若是此人至少2歲但小於4歲,請打印一條信息,說明此人是一名幼兒。
•若是此人至少4歲但小於13歲,請打印一條信息,說明此人是一名兒童。
•若是此人至少13歲但不小於20歲,請打印一條信息,說明此人是一個青少年。
•若是此人至少20歲但小於65歲,請打印一條信息,說明此人是一名成年人。
•若是該人年滿65歲,請打印一條信息,說明該人是老年人。
age=20
if age<2:
who="嬰兒"
elif age<4:
who="幼兒"
elif age<13:
who="兒童"
elif age<20:
who="青少年"
elif age<65:
who="成年人"
else:
who="老年人"
print("此人是:",who)
輸出結果:
此人是: 成年人
我相信你們的代碼寫的確定不跟我同樣,要知道的是:
這不表明你寫錯了,我只是把最簡潔的寫法放出來,讓大家感覺到Python語法的優美簡潔。
事實上,能夠不須要else,把else:那一行改爲elif age>=65:是不影響結果的。
else是一條一應俱全的語句,只要不知足任何if或elif中的條件測試,其中的代碼就會執行,
這可能會引入無效甚至惡意的數據,好比人爲加入一些黑客的命令。
若是肯定知道最終要測試的條件,應考慮使用一個elif代碼塊來代替else代碼塊。
------------------------------
用if語句對列表作一些羞羞的事
假如你是《他是歌王》歌唱節目的總導演紅桃,你在查看第二期的演唱歌手列表:
["韓黃","GAI","孫北","張紹","周杰沒有倫"]
這時候朋友圈刷爆了「作頭髮」,這次事件的男主角是嘻哈圈的著名歌手,卻遭到了廣電局的封殺,從而影響了嘻哈歌手。
因而本期這場的GAI歌手受到連累,不能上場,這個時候你須要在邀請函上打印相關的信息。
singer_list=["韓黃","GAI","孫北","張紹","周杰沒有倫"]
for singer in singer_list:
if singer == "GAI":
print("向各位抱歉,GAI歌手本次因突發事件不能上場競演。")
else:
print(singer+"歌手期待你前來收聽")
輸出結果:
韓黃歌手期待你前來收聽
向各位抱歉,GAI歌手本次因突發事件不能上場競演。
孫北歌手期待你前來收聽
張紹歌手期待你前來收聽
周杰沒有倫歌手期待你前來收聽
但願你們能夠好好理解這段代碼的實現方法,我將佈置一個做業,答案在下篇博客公佈:
執行如下操做以建立一個程序,該程序模擬網站如何確保每一個人都有惟一的用戶名。
•列出包含五個或更多用戶名的列表current_users;再列出包含五個新用戶名的列表new_users,
確保一個或兩個新用戶名也在當前用戶列表中。
•循環瀏覽新用戶列表,查看每一個新用戶名是否已被使用。若是有,請打印一條消息,說明此人須要輸入新的用戶名。
若是沒有使用用戶名,請打印一條消息,說明用戶名可用。
•確保你的比較不區分大小寫。若是使用了「john」,則不該接受「JOHN」。
-----------------------------