每日總結(jié)-day4-分支和循環(huán)

一撕阎、分之結(jié)構(gòu)

python 代碼默認(rèn)從第一行開(kāi)始雪猪,起愈,從上往下依次執(zhí)行只恨,每條語(yǔ)句都會(huì)執(zhí)行
分支結(jié)構(gòu):某段代碼是否執(zhí)行看條件(if語(yǔ)句)
1.if結(jié)構(gòu)
1)語(yǔ)法:
if 條件語(yǔ)句:
代碼段
2)說(shuō)明:
if —— 關(guān)鍵字,固定寫(xiě)法
條件語(yǔ)句 —— 任何有結(jié)果的表達(dá)式抬虽,例如:數(shù)據(jù)官觅,已經(jīng)聲明過(guò)得變量,運(yùn)算表達(dá)式(不能使賦值運(yùn)算符)等
: —— 固定寫(xiě)法阐污;(一般出現(xiàn)冒號(hào)的位置休涤,都會(huì)換行和縮進(jìn))
代碼段 —— 和if保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句;需要滿足條件才執(zhí)行的代碼
3)代碼執(zhí)行過(guò)程:
先判斷條件語(yǔ)句的結(jié)果是否為T(mén)rue(如果條件語(yǔ)句不是布爾值疤剑,就先轉(zhuǎn)換成布爾再看)滑绒,滿足條件就執(zhí)行闷堡,不 滿足就不執(zhí)行
如果為T(mén)rue就執(zhí)行代碼段,否則不執(zhí)行

num = 10
if num & 1 == 0:
    print("偶數(shù)")

2.if-else結(jié)構(gòu)
滿足執(zhí)行某個(gè)操作疑故,不滿足條件執(zhí)行另一個(gè)操作
1)語(yǔ)法:
if 條件語(yǔ)句:
代碼段1(滿足條件要執(zhí)行的代碼)
else:
代碼段2(不滿足條件要執(zhí)行的代碼)
2)執(zhí)行過(guò)程:
先判斷條件語(yǔ)句的結(jié)果是否為T(mén)rue(如果條件語(yǔ)句不是布爾值杠览,就先轉(zhuǎn)換成布爾再看),
滿足條件就執(zhí)行代碼段1纵势,否則執(zhí)行代碼段2

age = 20
if 0 < age < 18:
    print("未成年")
else:
    print("成年")     # 成年

3.if-elif-else 結(jié)構(gòu)
1)語(yǔ)法:
if 條件語(yǔ)句1:
代碼段1
elif 條件語(yǔ)句2:
代碼段2
elif 條件語(yǔ)句3:
代碼段3
...
else:
代碼段N
其他語(yǔ)句

2)執(zhí)行過(guò)程:
先判斷條件語(yǔ)句1是否為T(mén)rue踱阿,為T(mén)rue就執(zhí)行代碼段1,然后整個(gè)if-elif-else 結(jié)構(gòu)結(jié)束
如果為False钦铁,就判斷條件語(yǔ)句2是否為T(mén)rue软舌,為T(mén)rue就執(zhí)行代碼段2,然后整個(gè)if-elif-else 結(jié)構(gòu)結(jié) 束
如果為False牛曹,就判斷條件語(yǔ)句3是否為T(mén)rue佛点,為T(mén)rue就執(zhí)行代碼段3,然后整個(gè)if-elif-else 結(jié)構(gòu)結(jié) 束
以此類推
如果所有條件語(yǔ)句都不成立黎比,執(zhí)行else后面的代碼段

例如超营,根據(jù)年齡范圍打印:少年(14及以下)阅虫,青年(14到25)演闭,壯年(26到35),中年(36到50)颓帝,老年(50以上)

age = input("請(qǐng)輸入年齡:")
if age.isdigit() or age == '':
    age = int(age)
    if 0 < age < 120:
        if age < 14:
            print("少年")
        elif age <= 25:
            print("青年")
        elif age <= 35:
            print("壯年")
        elif age <= 50:
            print("中年")
        else:
            print("老年")
    else:
        print("請(qǐng)輸入正確年齡!")
else:
    print("請(qǐng)輸入正確數(shù)據(jù)米碰!")

2.if嵌套

if結(jié)構(gòu)中的代碼塊中可以再出現(xiàn)其他的of語(yǔ)句

判斷一個(gè)數(shù)是否是偶數(shù),并且在判斷這個(gè)數(shù)是否是4的背時(shí)购城,并打印出結(jié)論

num = input("請(qǐng)輸入一個(gè)數(shù):")
num = int(num)
if num & 1:
    print("奇數(shù)")
else:
    if num % 4 == 0:
        print("偶數(shù)且能被四整除")

    else:
        print("偶數(shù)")

二吕座、循環(huán)

循環(huán)結(jié)構(gòu):for循環(huán)和while循環(huán)

1.for循環(huán)
1)語(yǔ)法:
for 變量名 in 序列:
循環(huán)體

2)說(shuō)明:
for —— 關(guān)鍵字,固定寫(xiě)法
變量名 —— 和聲明變量是的要求一樣
in —— 關(guān)鍵字工猜,固定寫(xiě)法
序列 —— 容器型數(shù)據(jù):字符串米诉、列表菱蔬、字典篷帅、元組、集合拴泌、迭代器魏身、生成器、rang
: —— 固定寫(xiě)法
循環(huán)體 —— 和for保持一個(gè)縮進(jìn)的一條或者多條需要重復(fù)執(zhí)行的語(yǔ)句蚪腐;

3)執(zhí)行過(guò)程:
讓變量去序列中取值箭昵,一個(gè)一個(gè)的取,取完為止回季;每取一個(gè)值家制,執(zhí)行一次循環(huán)體
(for循環(huán)可以通過(guò)控制序列中的元素的個(gè)數(shù)來(lái)控制循環(huán)的次數(shù))

for i in "strong":
    print(i, end='')    # strong

2.rang函數(shù) —— 為了讓for給家方便的控制次數(shù)
1)range(N) —— 產(chǎn)生0到N-1的數(shù)字序列
例如:range(4) -> 0,1,2,3
2)range(M,N) —— 產(chǎn)生M到N-1的數(shù)字序列
例如:rang(3,10) -> 3,4,5,6,7,8,9
3)range(M,N,step) —— 從M開(kāi)始每隔step產(chǎn)生下一個(gè)數(shù)字正林,到N前一個(gè)數(shù)為止
例如: range(0,10,2) -> 0,2,4,6,8

作用:
1.產(chǎn)生指定的數(shù)字序列
2.控制循環(huán)次數(shù)

注意:如果for中變量取出來(lái)的值在循環(huán)體中無(wú)用,這個(gè)變量可以用_直接來(lái)命名

# 練習(xí):打印 0`100中能被3整除的數(shù)
k = 0
for i in range(0, 100, 3):
    print(i)
    k = k + 1
print(k)        # 34
# 統(tǒng)計(jì)1~100中能被4整除并且個(gè)位數(shù)是2的數(shù)字的個(gè)數(shù)
k = 0
for i in range(2, 100, 10):
    if i % 4 == 0:
        print(i)
        k += 1
print(k)
# 計(jì)算 1+2+3+颤殴。觅廓。。+100
sum1 = 0
for i in range(101):
    sum1 += i
print(sum1)

3.while循環(huán)
1)語(yǔ)法:
while 條件語(yǔ)句:
循環(huán)體

2)說(shuō)明
while —— 關(guān)鍵字涵但,固定寫(xiě)法
條件語(yǔ)句 —— 任何有結(jié)果的表達(dá)式杈绸;數(shù)據(jù),已經(jīng)聲明過(guò)的標(biāo)量矮瘟、運(yùn)算表達(dá)式(不能是賦值語(yǔ)句)等
: —— 固定寫(xiě)法
循環(huán)體 —— 和while保持一個(gè)縮進(jìn)的一條或者多條需要重復(fù)執(zhí)行的語(yǔ)句瞳脓;

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又執(zhí)行循環(huán)體劫侧,以此類推,直到條件語(yǔ)句的結(jié)果是False循環(huán)就結(jié)束哨啃。

num = 0
while num < 5:
    num += 1
print(num)  # 5

4.for循環(huán)和while的選擇
1)什么時(shí)候用for循環(huán)
a.循環(huán)次數(shù)是確定的時(shí)候
b.遍歷序列

2)什么時(shí)候用while循環(huán)
a.死循環(huán)
b.循環(huán)次數(shù)不確定的時(shí)候

# 練習(xí):猜數(shù)字游戲
# 游戲開(kāi)始時(shí)隨機(jī)產(chǎn)生一個(gè)數(shù)字板辽,不斷輸入數(shù)字,知道輸入的數(shù)字和產(chǎn)生的數(shù)字一致棘催,游戲結(jié)束
# 沒(méi)猜對(duì)的時(shí)候劲弦,給出"大了"或者"小了"的提示
rand_num = randint(0, 100)   # 產(chǎn)生0~100的隨機(jī)數(shù),并保存在num中
while 1:
    number = input("請(qǐng)輸入你猜的數(shù)字:")
    number = int(number)
    if number == rand_num:
        print("恭喜你猜對(duì)了")
        break
    else:
        if number > rand_num:
            print("大了,請(qǐng)?jiān)賴L試")
        else:
            print("小了醇坝,請(qǐng)?jiān)趪L試")

三邑跪、循環(huán)關(guān)鍵字

1.continue
continue是循環(huán)體中的關(guān)鍵字
作用:當(dāng)執(zhí)行循環(huán)體的時(shí)候,若果遇到continue呼猪,當(dāng)次循環(huán)結(jié)束画畅,直接進(jìn)入下次循環(huán)的判斷

2.break
break是循環(huán)體中的關(guān)鍵字
作用:當(dāng)執(zhí)行循環(huán)體的時(shí)候,如果遇到break宋距,直接結(jié)束整個(gè)循環(huán)

# 求輸入奇數(shù)的和轴踱,輸入0時(shí)退出

sum1 = 0
while 1:
    value = int(input("請(qǐng)輸入數(shù)字:"))
    if value == 0:
        break
    if value % 2 == 0:
        continue
    sum1 += value
print(sum1)

3.else
1)完整的for循環(huán)
for 變量 in 序列:
循環(huán)體
else:
代碼段

2)完整的while循環(huán)
while 條件語(yǔ)句:
循環(huán)體
else:
代碼段

注意:while循環(huán)和for循環(huán)自然死亡(for后的變量數(shù)據(jù)取完了,while后面的條件為False)時(shí)谚赎,會(huì)執(zhí)行else里的代碼段淫僻。
而因?yàn)閎reak而結(jié)束循環(huán)的,不執(zhí)行else里的代碼段壶唤。

else的意義:通過(guò)判斷else中的代碼有沒(méi)有執(zhí)行來(lái)判斷循環(huán)有沒(méi)有遇到break雳灵。

num = 0
for x in range(1,4):
    if x & 1 == 0:
        break
    num += x
else:
    print("自然死亡", num)
print("非自然死亡", num)

4.while循環(huán)的用法:
while True:
需要重復(fù)執(zhí)行的代碼段
if 退出循環(huán)的條件:
break

四、循環(huán)嵌套

循環(huán)嵌套:外面的循環(huán)執(zhí)行一次闸盔,里面的循環(huán)要執(zhí)行完

# 計(jì)算1悯辙!+2!+3!+...+10躲撰!
# 方法1:
num2 = 0
for i in range(1, 11):
    num1 = 1
    for j in range(1, i+1):
        num1 *= j
    num2 += num1
print(num2)

# 方法2:
sum = 0
num = 1
for i in range(1, 11):
    num *= i
    sum += num
print(sum)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末针贬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拢蛋,更是在濱河造成了極大的恐慌坚踩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓤狐,死亡現(xiàn)場(chǎng)離奇詭異瞬铸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)础锐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)嗓节,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人皆警,你說(shuō)我怎么就攤上這事拦宣。” “怎么了信姓?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵鸵隧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我意推,道長(zhǎng)豆瘫,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任菊值,我火速辦了婚禮外驱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腻窒。我一直安慰自己昵宇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布儿子。 她就那樣靜靜地躺著瓦哎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柔逼。 梳的紋絲不亂的頭發(fā)上蒋譬,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音卒落,去河邊找鬼羡铲。 笑死蜂桶,一個(gè)胖子當(dāng)著我的面吹牛儡毕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼腰湾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼雷恃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起费坊,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤倒槐,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后附井,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體讨越,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年永毅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了把跨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沼死,死狀恐怖着逐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情意蛀,我是刑警寧澤耸别,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站县钥,受9級(jí)特大地震影響秀姐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜若贮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一囊扳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧兜看,春花似錦锥咸、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至弧轧,卻和暖如春雪侥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背精绎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工速缨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人代乃。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓旬牲,卻偏偏與公主長(zhǎng)得像仿粹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子原茅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程吭历,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • 一.分支結(jié)構(gòu) python代碼默認(rèn)情況下是從第一行開(kāi)始從上往下依次執(zhí)行的,每一條語(yǔ)句都會(huì)執(zhí)行 分支結(jié)構(gòu):某段代碼是...
    阿富汗入肉詐彈閱讀 183評(píng)論 0 0
  • 圖片發(fā)自簡(jiǎn)書(shū) 一 分支結(jié)構(gòu) python中的分之結(jié)構(gòu)只有if語(yǔ)句擂橘,沒(méi)有switch num = 11print('...
    Fly_withbird閱讀 327評(píng)論 0 0
  • 5.1 分支結(jié)構(gòu) python中分支結(jié)構(gòu)只有if語(yǔ)句晌区,沒(méi)有switch語(yǔ)句 5.1.1 if語(yǔ)句 a.語(yǔ)法:if ...
    2333_11f6閱讀 206評(píng)論 0 0
  • 難改的是從前山河,不變的是舊日時(shí)光通贞。任你王侯將相朗若,還是黎民百姓,都等不到地老與天荒昌罩;任你富甲天下捡偏,還是家徒四壁...
    源元祥閱讀 475評(píng)論 0 1