2019-07-25_Note_Day4

一肘交、分支結(jié)構(gòu)

python中的分支結(jié)構(gòu)只有if語(yǔ)句

1. if語(yǔ)句

1)結(jié)構(gòu)1:滿(mǎn)足某個(gè)條件才執(zhí)行某段代碼

a.語(yǔ)法:
if 條件語(yǔ)句:
    代碼段
其他語(yǔ)句
b.說(shuō)明:
if:關(guān)鍵字啊胶,固定寫(xiě)法
條件語(yǔ)句:可以是一個(gè)具體的數(shù)據(jù)胧华,也可以是一個(gè)已經(jīng)賦值過(guò)的變量,或者是運(yùn)算表達(dá)式(不能是賦值語(yǔ)句)
冒號(hào):固定結(jié)構(gòu)
代碼段:一條或者多條和if保持一個(gè)縮進(jìn)的語(yǔ)句(任何語(yǔ)句)
c.執(zhí)行過(guò)程:
先判斷條件語(yǔ)句的結(jié)果是否為T(mén)rue(如果條件語(yǔ)句不是布爾值介却,則先轉(zhuǎn)換為布爾值)
如果為T(mén)rue則執(zhí)行代碼段柱搜,然后再執(zhí)行其他語(yǔ)句;如果為False則跳過(guò)代碼段癣蟋,直接執(zhí)行其它語(yǔ)句
d.補(bǔ)充:布爾值的轉(zhuǎn)換
python中所有的數(shù)據(jù)類(lèi)型都能轉(zhuǎn)換為布爾類(lèi)型
所有為0透硝、為空的值都會(huì)轉(zhuǎn)換為False,其他則為T(mén)rue
練習(xí):
# 判斷奇偶性
num = input('請(qǐng)輸入一個(gè)整數(shù):')
if not int(num) & 1:
    print('偶數(shù)疯搅!')
else:
    print('奇數(shù)濒生!')
# 輸入年齡,如果輸入的年齡大于等于18歲幔欧,打印‘可以進(jìn)網(wǎng)吧’
if int(input('請(qǐng)輸入年齡:')) >= 18:
    print('可以進(jìn)網(wǎng)吧')

2)結(jié)構(gòu)2:(if - else)

滿(mǎn)足某個(gè)條件執(zhí)行某段代碼罪治,不滿(mǎn)足條件時(shí)執(zhí)行另外一段代碼
a.語(yǔ)法:
if 條件語(yǔ)句:
    代碼段1
else:
    代碼段2
其他代碼
b.說(shuō)明:
if/else:關(guān)鍵字,固定寫(xiě)法
條件語(yǔ)句:可以是一個(gè)具體的數(shù)據(jù)礁蔗,也可以是一個(gè)已經(jīng)賦值過(guò)的變量觉义,或者是運(yùn)算表達(dá)式(不能是賦值語(yǔ)句)
冒號(hào):固定結(jié)構(gòu)
代碼段1:和if保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句(滿(mǎn)足if后面的條件才會(huì)執(zhí)行)
代碼段2:和else保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句(if后面的條件不成立才會(huì)執(zhí)行)
c.執(zhí)行過(guò)程:
先判斷條件語(yǔ)句是否為T(mén)rue,如果為T(mén)rue執(zhí)行代碼段1浴井,否則執(zhí)行代碼段2

3)結(jié)構(gòu)3:(if - elif - elif... - else)

條件有多個(gè)(有關(guān)聯(lián))的時(shí)候執(zhí)行不同的代碼段
a.語(yǔ)法:
if 條件語(yǔ)句1:
    代碼段1
elif 條件語(yǔ)句2:
    代碼段2
elif 條件語(yǔ)句3:
    代碼段3
...

else:
    代碼段n
其他語(yǔ)句
b.執(zhí)行過(guò)程:
先判斷條件語(yǔ)句1是否為T(mén)rue晒骇,如果為T(mén)rue執(zhí)行代碼段1,然后整個(gè)if結(jié)構(gòu)結(jié)束磺浙,直接執(zhí)行其他語(yǔ)句厉碟;
如果條件語(yǔ)句1為False,則判斷條件語(yǔ)句2是否為T(mén)rue屠缭,為T(mén)rue則執(zhí)行代碼段2箍鼓,然后執(zhí)行其他語(yǔ)句;
如果條件語(yǔ)句2為False呵曹,則判斷條件語(yǔ)句3是否為T(mén)rue款咖,為T(mén)rue則執(zhí)行代碼段3,然后執(zhí)行其他語(yǔ)句奄喂;
以此類(lèi)推
如果所有的條件語(yǔ)句都是False铐殃,則執(zhí)行else后面的代碼段n,然后執(zhí)行其他語(yǔ)句
練習(xí):
# 根據(jù)輸入的年齡,判斷年齡的階段
# 0-3:幼兒跨新,4-12:兒童富腊,13-18:青少年,19-28:青年
# 29-50:壯年域帐,50以上:老年
age = int(input("請(qǐng)輸入年齡:"))

if age < 0 or age > 150:
    print('輸入范圍錯(cuò)誤')
    exit()

if age <= 3:
    print('幼兒')
elif age <= 12:
    print('兒童')
elif age <= 18:
    print('青少年')
elif age <= 28:
    print('青年')
elif age <= 50:
    print('壯年')
else:
    print('老年')

2. if語(yǔ)句嵌套

在if結(jié)構(gòu)中的if赘被、else是整、elif后面的代碼段中,還可以寫(xiě)其他的if語(yǔ)句
練習(xí):
# 練習(xí):輸入一個(gè)數(shù)民假,如果這個(gè)數(shù)是偶數(shù)浮入,打印‘偶數(shù)‘,如果是奇數(shù)羊异,打印‘奇數(shù)‘事秀,如果這個(gè)數(shù)能被4整除,打印‘4的倍數(shù)’

num = int(input('請(qǐng)輸入一個(gè)數(shù):'))
if num & 1:
    print('奇數(shù)')
else:
    print('偶數(shù)')
    if not num % 4:
        print('4的倍數(shù)')

二野舶、循環(huán)語(yǔ)句

python的中的循環(huán)有兩種:for-in循環(huán)和while循環(huán)
如果某段代碼需要重復(fù)執(zhí)行易迹,就使用循環(huán)結(jié)構(gòu)

1. for循環(huán)

1)語(yǔ)法:

for 變量名 in 序列:
    循環(huán)體

2)說(shuō)明:

for:關(guān)鍵字
變量名:要求和聲明變量時(shí)的變量名相同
in:關(guān)鍵字
序列:容器型數(shù)據(jù)類(lèi)型的數(shù)據(jù),例如:字符串平道、列表睹欲、元組、字典巢掺、集合句伶、迭代器劲蜻、生成器陆淀、range
循環(huán)體:和for保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句;循環(huán)體中的代碼解釋需要重復(fù)執(zhí)行的代碼

3)執(zhí)行過(guò)程:

讓變量去序列中一個(gè)一個(gè)地取值,直到取完為止先嬉;每取一個(gè)值執(zhí)行一次循環(huán)體
注意:python中for循環(huán)的循環(huán)次數(shù)轧苫,是通過(guò)in后面序列元素的個(gè)數(shù)來(lái)控制的

2. range()函數(shù)

產(chǎn)生指定范圍內(nèi)的數(shù)字序列

1)range(N):產(chǎn)生0 ~ N - 1的整數(shù)數(shù)列(N個(gè)數(shù)字)

for x in range(11):
    print(x)

# 如果for后面的變量不用,變量名用_
for _ in range(11):
    print('!')

2)range(M, N):產(chǎn)生M ~ N - 1的整數(shù)序列

for x in range(1, 10):
    print(x)

3)range(M, N, step):從M開(kāi)始每次加step產(chǎn)生下一個(gè)數(shù)疫蔓,直到N前一個(gè)為止

# 0-100的偶數(shù)
for x in range(0, 101, 2):
    print(x)
練習(xí)
# 練習(xí)1:使用循環(huán)計(jì)算1 + 2 + ... + 100
sum1 = 0
for num in range(1, 101):
    sum1 += num
print(sum1)  # 5050
# 練習(xí)2:統(tǒng)計(jì)100以?xún)?nèi)能夠被2整除但不能被3整除的數(shù)的個(gè)數(shù)
count1 = 0
for num in range(101):
    if not num & 1 and num % 3:
        count1 += 1
print(count1)  # 34

# 優(yōu)化解
count1 = 0
for num in range(0, 101, 2):
    if num % 3:
        count1 += 1
print(count1)  # 34

2. while循環(huán)

1)語(yǔ)法:

while 條件語(yǔ)句:
    循環(huán)體
其它語(yǔ)句

2)說(shuō)明:

while:關(guān)鍵字
條件語(yǔ)句:只要是有結(jié)果的表達(dá)式都可以(賦值語(yǔ)句除外)
循環(huán)體:和while保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句含懊;(需要重復(fù)執(zhí)行的代碼就放到循環(huán)體中)

3)執(zhí)行過(guò)程:

先判斷條件語(yǔ)句是否為T(mén)rue,如果為T(mén)rue就執(zhí)行循環(huán)體
執(zhí)行完循環(huán)體再判斷條件語(yǔ)句是否為T(mén)rue衅胀,如果為T(mén)rue繼續(xù)執(zhí)行循環(huán)體
以此類(lèi)推
當(dāng)判斷條件語(yǔ)句為False時(shí)岔乔,整個(gè)循環(huán)結(jié)束,執(zhí)行循環(huán)后面的其它語(yǔ)句

4)for和while循環(huán)怎么選滚躯?

如果循環(huán)次數(shù)確定或者需要遍歷操作雏门,采用for循環(huán)
如果循環(huán)次數(shù)不能確定或者需要執(zhí)行死循環(huán),采用while循環(huán)
練習(xí)
# 練習(xí):從鍵盤(pán)輸入數(shù)字掸掏,直到輸入的數(shù)字為0結(jié)束
num2 = 1
while num2:
    num2 = int(input('請(qǐng)輸入數(shù)字:'))
print('完成')

# 密碼錯(cuò)誤重新輸入
pwd = '123456'
while pwd != input('請(qǐng)輸入密碼:'):
    print('密碼錯(cuò)誤茁影!')
print('密碼正確!')

3. continue丧凤、break和else

1)continue

continue是只能出現(xiàn)在循環(huán)體中的關(guān)鍵字
當(dāng)執(zhí)行循環(huán)體時(shí)遇到continue募闲,當(dāng)次循環(huán)直接結(jié)束,直接進(jìn)入到下次循環(huán)的判斷
# 計(jì)算1-99中不能被7整除的數(shù)的和
sum1 = 0
num = 0
while num < 100:
    num += 1
    if not num % 7:
        continue
    sum1 += num
print(sum1)

2)break

只能在循環(huán)體中的關(guān)鍵字
執(zhí)行循環(huán)體時(shí)愿待,如果遇到break浩螺,整個(gè)循環(huán)直接結(jié)束
# 從1 + 2 + 3 + ... + x? sum<100000
# 建議使用while
# 解法1
sum1 = 0
num = 0
while True:
    sum1 += num
    if sum1 >= 100000:
        print(num - 1, sum1 - num)  # 446 99681
        break
    num += 1

# 解法2
sum1 = 0
for num in range(100000):
    sum1 += num
    if sum1 >= 100000:
        print(num - 1, sum1 - num)  # 446 99681
        break

3)else

執(zhí)行過(guò)程:
如果循環(huán)是自然死亡(自然結(jié)束)靴患,else后面的代碼段會(huì)執(zhí)行
如果循環(huán)是因?yàn)閎reak而結(jié)束,else后面的代碼段不會(huì)執(zhí)行
for 變量 in 序列:
    循環(huán)體
else:
    代碼段

while 條件語(yǔ)句:
    循環(huán)體
else:
    代碼段
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末年扩,一起剝皮案震驚了整個(gè)濱河市蚁廓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厨幻,老刑警劉巖相嵌,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異况脆,居然都是意外死亡饭宾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)格了,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)看铆,“玉大人,你說(shuō)我怎么就攤上這事盛末〉耄” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵悄但,是天一觀(guān)的道長(zhǎng)棠隐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)檐嚣,這世上最難降的妖魔是什么助泽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮嚎京,結(jié)果婚禮上嗡贺,老公的妹妹穿的比我還像新娘。我一直安慰自己鞍帝,他們只是感情好诫睬,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著帕涌,像睡著了一般摄凡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宵膨,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天架谎,我揣著相機(jī)與錄音,去河邊找鬼辟躏。 笑死谷扣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播会涎,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼裹匙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了末秃?” 一聲冷哼從身側(cè)響起概页,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎练慕,沒(méi)想到半個(gè)月后惰匙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铃将,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年项鬼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劲阎。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绘盟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悯仙,到底是詐尸還是另有隱情龄毡,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布锡垄,位于F島的核電站沦零,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏偎捎。R本人自食惡果不足惜蠢终,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一序攘、第九天 我趴在偏房一處隱蔽的房頂上張望茴她。 院中可真熱鬧,春花似錦程奠、人聲如沸丈牢。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)己沛。三九已至,卻和暖如春距境,著一層夾襖步出監(jiān)牢的瞬間申尼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工垫桂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留师幕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓诬滩,卻偏偏與公主長(zhǎng)得像霹粥,于是被迫代替她去往敵國(guó)和親灭将。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線(xiàn)程后控,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,743評(píng)論 0 38
  • 分支結(jié)構(gòu) python中的分支結(jié)構(gòu)只有if語(yǔ)句庙曙。 (1)結(jié)構(gòu)1:滿(mǎn)足某個(gè)條件才執(zhí)行某段代碼 語(yǔ)法if 條件語(yǔ)句:代...
    容荔閱讀 203評(píng)論 0 0
  • 控制流 Swift提供了各種控制流程語(yǔ)句。這些包括while循環(huán)多次執(zhí)行任務(wù); if浩淘,guard以及switch基...
    Fuuqiu閱讀 364評(píng)論 0 0
  • 一捌朴、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,720評(píng)論 0 10