Day5分支與循環(huán)語句

if分支結構:

  1. python中的分支結構只有if,沒有switch
  2. 什么時候用if:
    如果做某事(執(zhí)行某段代碼)需要滿足某個條件才行泄朴,就考慮用if。

怎么使用if:

a.語法1:if

if 條件語句
代碼段1
其他語句
說明:
if:-關鍵字棒妨,是如果的意思
條件語句:任何一個有結果的語句踪古,最好是布爾,如果不是布爾值券腔,在判斷時會轉換為布爾
:-固定寫法伏穆,在Python中,只要有:纷纫,:之后的第一行必須有縮進枕扫,縮進組成代碼段,相當于其他語言中的大括號辱魁。
代碼段1:-和if保持一個縮進的語句烟瞧,可以是一行語句,也可以是多行語句染簇。
執(zhí)行過程:
先判斷條件語句的結果知否為True参滴,如果是,執(zhí)行代碼段1锻弓,再繼續(xù)執(zhí)行其他的語句砾赔,否則,不執(zhí)行代碼段1,直接執(zhí)行其他語句过蹂。
需要滿足某個條件才執(zhí)行的語句就寫在if里面不管條件是否滿足都要執(zhí)行的語句寫在if的外面

b.語法2:if-else結構

希望滿足條件的時候做某事十绑,不滿足條件時做某事聚至。
結構:
if 條件語句:
代碼段1
else:
代碼段2
其他語句
else:-關鍵字酷勺,固定寫法,否則的意思扳躬,不滿足if的其他情況
else要與if一起使用脆诉,單獨使用沒啥意義。
執(zhí)行過程:
先判斷條件語句是否為True贷币,如果為True,就執(zhí)行代碼段1.否則執(zhí)行代碼段2击胜。

age = int(input('請輸入年齡:'))
if age >= 18:
    print("你已經是條合格的咸魚了.")  # 和if保持一個縮進的代碼,是滿足if后面的條件才會執(zhí)行的
else:
    print('你還不是一條合格的咸魚.')
print(age)   # 不是縮進的代碼段役纹,無論怎樣都會執(zhí)行

輸入一個數(shù)能被三整除偶摔,就打印這個數(shù)是三的倍數(shù),否則打印不能被三整除促脉。

n = int(input('請輸入數(shù)字:'))
if n % 3 == 0:
    print('%d是三的倍數(shù)辰斋。' % n)
else:
    print('%d不能被三整除。' % n)

練習:輸入一個整數(shù)瘸味,如果這個數(shù)是偶數(shù)宫仗,輸出這個數(shù)是一個偶數(shù),否則輸出這個數(shù)是一個奇數(shù)旁仿。

m = int(input('請輸入一個數(shù)字:'))
if m % 2 == 0:
    print('%d是一個偶數(shù)藕夫。' % m)
else:
    print('%d是一個奇數(shù)。' % m)  # 不滿足條件才執(zhí)行
print('==========')  # 不管滿不滿足條件都執(zhí)行枯冈。

練習:輸入一個字符串毅贮,判斷字符串的開頭是否是小寫字母,如果是尘奏,將字符串第一個字符轉換成大寫字母并打印否則直接打印滩褥。

str1 = input('請輸入一個字符串:')
char = str1[0]
if 'a' <= char <= 'z':
    print('第一個字符是小寫字母')
    print(str1.capitalize())
else:
    print('第一個字母不是小寫字母')
    print(str1)

結構三:if-elif-else結構

a.語法:
if 條件語句:
代碼段1
elif:
代碼段2
elif:
代碼段3
....
代碼段n - 1
else:
代碼段n
其他語句
b.說明:
elif:-關鍵字,在前面的條件不滿足的條件下罪既,判斷其他條件是否滿足铸题。
c.執(zhí)行過程:
先判斷條件語句1是否成立,則直接執(zhí)行代碼段1琢感,之后執(zhí)行其他語句丢间。
如果代碼段1不成立,再判斷代碼段2是否成立驹针,如果成立烘挫,則直接執(zhí)行代碼段2,之后執(zhí)行其他語句。以此類推饮六,如果條件都不成立其垄,直接執(zhí)行else后面的代碼段,再執(zhí)行其他語句卤橄。
注意:后面的條件語句的判斷都是在前面的條件不成立的條件下執(zhí)行的绿满。
根據情況else可以沒有。

salary = 2
if salary <= 0.5:
    print('家中游')
elif salary <= 1.0:
    print('同城游')
elif salary <= 1.5:
    print('國內游')
else:
    print('出國游')

練習:學生管理系統(tǒng)
先打印一個界面
輸入1時提示輸入姓名電話年齡窟扑。
輸入2時提示輸入要查看的學生的名字
輸入3時提示當前正在輸入學生信息
輸入4時提示當前正在刪除學生信息
退出

print('===================================')
print('小花歡迎yuting:')
print('')
print('1.  添加學生')
print('2.  查看學生')
print('3.  修改學生信息')
print('4.  刪除學生')
print('5.  返回')
print('======================================')
num = input('請輸入序號(1-5):')
if num == '1':
    print('1.添加學生信息')
elif num == '2':
    print('2.目前正在查看學生信息')
elif num == '3':
    print('3.目前正在修改學生信息')
elif num == '4':
    print('4.目前正在刪除學生信息')
else:
    print('5.退出')

if的嵌套:

if結果中還可以再寫if語句喇颁。
輸入一個數(shù),如果這個數(shù)是偶數(shù)嚎货,則打印這個數(shù)是偶數(shù)橘霎,
再判斷這個數(shù)能否被4,整除,如果能殖属,打印這個數(shù)還能被4整除姐叁。
如果不是偶數(shù)只打印這個數(shù)是奇數(shù)。

n = int(input('請輸入數(shù)字:'))
if n % 2 == 0:
    print('%d是偶數(shù)' % n)
    if n % 4 == 0:
        print('同時%d還是4的倍數(shù)洗显。' % n)
    print('%d是偶數(shù)但不能被4整除外潜。' % n)
else:
    print('%d是奇數(shù)。' % n)
    if n % 5 == 0:
        print('奇數(shù)%d能被5整除' % n)

elif中也能嵌套if語句墙懂。
python中的三目運算符:
c/java/js中有一個三目運算符:
表達式橡卤?值1:值2 p判斷表達式是否為True,表達式的結果是1,否則表達式的結果是2.
python中的:
值1 if 表達式 else 值2
判斷表達式的值是否為True损搬,如果為True碧库,表達式的結果是2,否則巧勤,表達式的結果是2嵌灰。
當我們要根據某個條件是否成立,來獲取不同的值得時候颅悉,使用三目運算符沽瞭。

num1, num2 = 10, 100
max1 = num1 if num1 > num2 else num2
print(max1)

練習:輸入一個年份,判定指定的年份是否是閏年剩瓶,是驹溃,拿到結果閏年划咐,否則拿到結果不是閏年九榔。
能被四整除不能被100整除或者能被400整除痹仙。

n = int(input('請輸入年份:'))
n1 = '閏年'
n2 = '平年'
n3 = n1 if (n % 4 == 0 and n % 100 != 0) or (n % 400 == 0) else n2
print(n3)

循環(huán)語句

1.為什么要使用循環(huán)糊渊?

python中的循環(huán)結構有兩種while循環(huán)和for循環(huán):
當程序在實現(xiàn)某個功能的時候發(fā)現(xiàn)某個操作需要重復執(zhí)行時,考慮使用循環(huán)樟氢。
例如:
1+2+3+4+....+100
統(tǒng)計1-10000能被13整除的數(shù)字

2.for循環(huán):

a.結構:
for 變量 in 序列
循環(huán)體
b.說明:
for:-關鍵字豺瘤,固定寫法
變量: -一個變量名辆床,可以使賦值過的變量,也可以是沒有賦值過的變量(一般是寫新的變量)灵临。
in: -固定寫法
序列: -屬于序列的數(shù)據截型;python中的序列有:字符串,列表儒溉,字典宦焦,集合,元祖睁搭,range赶诊,迭代器笼平,生成器园骆。
: -固定寫法
循環(huán)體: -需要和for保持縮進的代碼段,需要重復執(zhí)行的代碼寓调。
c.執(zhí)行過程(重要P客佟):
讓變量去序列中取值,一個一個的取夺英,取完為止晌涕。每取一個值,執(zhí)行一次循環(huán)體痛悯。(序列中元素的個數(shù)余黎,決定了for循環(huán)中循環(huán)體執(zhí)行的次數(shù)。)

for char in 'abc':
    print('===')
    print(char)

給一個字符串'hosee 23jh!hs89_=sssAsK'統(tǒng)計字符串中數(shù)字字符的個數(shù)

n = 'hosee 23jh!hs89_=sssAsK'
m = 0  # 保存數(shù)字字符的個數(shù)载萌,默認是0個
for char1 in n:
    if '0' <= char1 <= '9':
        m += 1
print('"%s"中的數(shù)字字符個數(shù)為:%d個' % (n, m))

3.range函數(shù)

range(N) -> 產生數(shù)字序列惧财,0 - N-1 (N必須是整數(shù))
range(M,N)-> 產生數(shù)字序列,M - N-1 (M,N必須是整數(shù),且N > M)
range(M,N,step)-> 從M開始扭仁,每次值增加step產生下一個數(shù)字垮衷,直到N為止。(M,N必須是整數(shù)) (如果step > 0, N > M, 如果step < 0, M > N)

for num in range(10):
    print('num:', num)
# 1+2+3+4+....+100
m = 0
for num in range(1, 101):
    m = m + num
print('1加到100的和為:%d' % m)

練習乖坠,求100以內能夠被13或者7整除的數(shù)的和

m = 0
for num in range(1, 100):
    if num % 7 == 0 or num % 13 == 0:
        m = m + num
print('100以內能夠被13或者7整除的數(shù)的和為:%d' % m)

通過遍歷字符串下標遍歷字符串:

str1 = 'hello world'
for index in range(len(str1)):   # index是字符對應的下標搀突。
    print(str1[index], end='')
print('-------')
for index in range(-1, -len(str1)-1, -1):
    print(str1[index],end='')

1.while(當。熊泵。仰迁。的時候)

a.語法:
while 條件語句:
循環(huán)體
b.說明:
while: -關鍵字,當顽分。徐许。。的時候
條件語句: - 和if后面的條件一樣(賦值語句不行怯邪,其他都可以)
: - 固定寫法绊寻,后跟縮進
循環(huán)體:- 需要重復執(zhí)行的語句寫在循環(huán)體中,循環(huán)體和While保持縮進。
c.執(zhí)行過程:
當程序執(zhí)行到while循環(huán)時澄步,就先判斷條件語句是否為true冰蘑,為true就執(zhí)行循環(huán)體,
執(zhí)行完循環(huán)體在判斷條件語句是否為true村缸,為true又執(zhí)行循環(huán)體祠肥,
以此類推,直到判斷條件語句的結果是false梯皿,直接執(zhí)行后面的其他語句仇箱。

while True:
    input('請輸入:')
//死循環(huán)!

for 和 while 的選擇:

嚴格來說东羹,for循環(huán)做到的事情while循環(huán)都能做到剂桥,但是while循環(huán)能做到的事情,for循環(huán)不一定做的到属提。
使用for:a.遍歷數(shù)列权逗。b.循環(huán)次數(shù)是確定的。
使用while:a.死循環(huán)冤议。b.循環(huán)次數(shù)是不確定的斟薇。
控制while循環(huán)的循環(huán)次數(shù):

num = 0
while num < 4:
    print('=====')
    num += 1

寫一個程序,錄入學生的成績錄入以輸入'end'來結束

num = input('輸入:')
while num != 'end':
    num = input('輸入:')

注冊輸入密碼直到輸入格式正確為止:
要求密碼至少六位恕酸,數(shù)量不足提示密碼有誤堪滨,重新輸入

num1 = input('請輸入密碼:')
while len(num1) < 6:
    num1 = input("密碼有誤,請重新輸入:")

3.跳出循環(huán)

1.Continue:

python關鍵字蕊温,只能寫在循環(huán)體中袱箱。
功能:
結束當次循環(huán),直接進入下次循環(huán)的判斷寿弱。
(for循環(huán)是讓變量去取下一個值)
(while循環(huán)是直接去判斷while后面的條件是否為true)

for x in range(3):
    print('11')
    print('===')
    if x == 2:
        continue
    print('22')
y = 0
while y < 17:
    y += 1
    if y % 3 == 0:
        continue
    print(y)

2.break

break是python的關鍵字犯眠,只能用在循環(huán)體中。
功能:執(zhí)行循環(huán)體的時候症革,遇到break直接結束筐咧,直接執(zhí)行循環(huán)后面的其他語句。
找到大于111的數(shù)字當中第一個能夠被17整除的數(shù)字

n = 111
while True:
    if n % 17 ==0:
        print(n)
        break
    n += 1

3.else:

在循環(huán)中使用else
(1.)
for 變量 in 序列
循環(huán)體
else:
代碼段
(2.)
while 條件語句:
循環(huán)體
else:
代碼段
注:循環(huán)照常執(zhí)行噪矛,else后面的代碼段量蕊,
如果循環(huán)是自然死亡就會執(zhí)行,如果因為遇到break而結束的艇挨,就不會執(zhí)行残炮。

for x in range(5):
    print(x)
    if x == 3:
        break
else:
    print('循環(huán)自然死亡')
print('===')
y = 0
while y < 5:
    if y == 2:
        break
    print(y)
    y += 1
else:
    print('循環(huán)自然死亡')
print('===')
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市缩滨,隨后出現(xiàn)的幾起案子势就,更是在濱河造成了極大的恐慌泉瞻,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件苞冯,死亡現(xiàn)場離奇詭異袖牙,居然都是意外死亡,警方通過查閱死者的電腦和手機舅锄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門鞭达,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人皇忿,你說我怎么就攤上這事畴蹭。” “怎么了鳍烁?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵叨襟,是天一觀的道長。 經常有香客問我老翘,道長芹啥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任铺峭,我火速辦了婚禮,結果婚禮上汽纠,老公的妹妹穿的比我還像新娘卫键。我一直安慰自己,他們只是感情好虱朵,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布莉炉。 她就那樣靜靜地躺著,像睡著了一般碴犬。 火紅的嫁衣襯著肌膚如雪絮宁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天服协,我揣著相機與錄音绍昂,去河邊找鬼。 笑死偿荷,一個胖子當著我的面吹牛窘游,可吹牛的內容都是我干的。 我是一名探鬼主播跳纳,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼忍饰,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寺庄?” 一聲冷哼從身側響起艾蓝,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤力崇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赢织,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體餐曹,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年敌厘,在試婚紗的時候發(fā)現(xiàn)自己被綠了台猴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡俱两,死狀恐怖饱狂,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情宪彩,我是刑警寧澤休讳,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站尿孔,受9級特大地震影響俊柔,放射性物質發(fā)生泄漏。R本人自食惡果不足惜活合,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一雏婶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧白指,春花似錦留晚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至橄唬,卻和暖如春赋焕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背仰楚。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工隆判, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缸血。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓蜜氨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捎泻。 傳聞我的和親對象是個殘疾皇子飒炎,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,823評論 2 16
  • 在C語言中,五種基本數(shù)據類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,345評論 0 2
  • 一笆豁、if語句 代碼是從上往下一次執(zhí)行的import是導入一個模塊/包的關鍵字random模塊中提供很多和隨機數(shù)相關...
    大漠判官1閱讀 178評論 0 0
  • 圖片發(fā)自簡書 一 分支結構 python中的分之結構只有if語句郎汪,沒有switch num = 11print('...
    Fly_withbird閱讀 337評論 0 0
  • 一.day5作業(yè) 讀程序赤赊,總結程序的功能: 1. numbers=1 for i in range(0,20): ...
    魅影_0d2e閱讀 1,057評論 0 0