12-28 day5 if while for 分支循環(huán)


--- if

Python中的分支結(jié)構(gòu)只有if語(yǔ)句宁玫,沒(méi)有switch

1.什么時(shí)候需要使用

如果做某件事情(執(zhí)行某段代碼)需要滿足某個(gè)條件才行溃列,就考慮使用if

2.怎么使用if

結(jié)構(gòu)一: if結(jié)構(gòu)

  • a.語(yǔ)法1:
    if 條件語(yǔ)句:
    ?? 代碼段1

  • b.說(shuō)明:

  • if - 關(guān)鍵字,如果的意思

  • 條件語(yǔ)句 - 任意一個(gè)有結(jié)果的語(yǔ)句摔桦,最好結(jié)果是bool,如果不是bool应狱,在判斷時(shí)會(huì)轉(zhuǎn)換成bool

  • : - 固定寫(xiě)法咪笑,在Python中只要有冒號(hào)唧席,冒號(hào)后面的第一行必須有縮進(jìn),冒號(hào)和縮進(jìn)組合形成代碼段窒舟,相當(dāng)于C系忙、java中的大括號(hào)

  • 代碼段1 - 和if保持一個(gè)縮進(jìn)的語(yǔ)句』莶颍可以是一行银还,也可以是多行

  • c.執(zhí)行過(guò)程:先判斷條件語(yǔ)句的結(jié)果是否為T(mén)rue ,如果為T(mén)rue洁墙,就執(zhí)行代碼段1蛹疯,然后再執(zhí)行后面的
    其他語(yǔ)句;如果為False,就不執(zhí)行代碼段1热监,直接執(zhí)行其他語(yǔ)句

age = 16
if  age <= 18:
    print('玩泥巴去吧')  #玩泥巴去吧
    print('不可以進(jìn)網(wǎng)吧') #和if保持一個(gè)縮進(jìn)的語(yǔ)句都要滿足if才執(zhí)行
print('====')

練習(xí):輸入一個(gè)數(shù)能被3整除就打印’xxx是3的倍數(shù)‘

 num = int(input('請(qǐng)輸入一個(gè)數(shù):'))
 if num %3 == 0 :
     print('%d是3的倍數(shù)' % num)


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

  • a.語(yǔ)法:
    if 條件語(yǔ)句:
    ? ?代碼段1
    else:
    ? ? 代碼段2
    其他語(yǔ)句

  • b.說(shuō)明

  • else - 關(guān)鍵字捺弦,固定寫(xiě)法;相當(dāng)于否則

  • c.執(zhí)行過(guò)程:先判斷條件語(yǔ)句的結(jié)果是否為T(mén)rue 孝扛,如果為T(mén)rue列吼,就執(zhí)行代碼段1,如果為False,就執(zhí)行代碼段2
    '''

練習(xí):輸入一個(gè)整數(shù)苦始,判斷奇偶性

num = int(input('請(qǐng)輸入一個(gè)整數(shù):'))
if num % 2== 0 :
    print('%d是偶數(shù)' % (num))
else:
    print('%d是奇數(shù)' % num)

練習(xí):輸入一個(gè)字符串寞钥。判斷字符串的開(kāi)頭是否是小寫(xiě)字母。如果是陌选,將字符串第一個(gè)字符轉(zhuǎn)換成大寫(xiě)字母理郑;如果不是原樣輸出

str1 = input('請(qǐng)輸入一個(gè)字符串:')
first_char = str1[0]  #獲取第一個(gè)字符
if 'a'<=first_char<='z':
    print('第一個(gè)字符是小寫(xiě)字母')
    print(first_char.upper()+str1[1:])
else:
    print('第一個(gè)字符不是小寫(xiě)字母')
    print(str1)


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

  • a,語(yǔ)法:
    if 條件語(yǔ)句1:
    ??代碼段1
    elif 條件語(yǔ)句2:
    ?? 代碼段2
    elif 條件語(yǔ)句3:
    ??代碼段3
    ···
    else 條件語(yǔ)句n:
    ??代碼段3

  • b.說(shuō)明

  • elif - 關(guān)鍵字,在前面的條件不滿足的前提下判斷其他條件是否滿足

  • c.執(zhí)行過(guò)程:
    先判斷條件語(yǔ)句1是否成立咨油,如果成立直接執(zhí)行代碼段1您炉,然后整個(gè)if結(jié)構(gòu)結(jié)束,接著執(zhí)行其他語(yǔ)句臼勉;
    如果條件語(yǔ)句1不成立邻吭,判斷條件語(yǔ)句2是否成立,宴霸。囱晴。。
    依次類推瓢谢,如果條件語(yǔ)句都不成立畸写,執(zhí)行else后面的代碼段n

注意:后邊的條件語(yǔ)句的判斷都是在前面的條件語(yǔ)句不成立的前提下執(zhí)行的; 根據(jù)情況后面的else可以沒(méi)有

salary = 2
if salary <= 0.5:
    print('家中游')
elif salary <= 1:
    print('同城游!')
elif salary <= 1.5:
    print('國(guó)內(nèi)游')
else:
    print('國(guó)外游')

練習(xí)
print("====================================")
print(' 1. 添加學(xué)生')
print(' 2. 查看學(xué)生')
print(' 3. 修改學(xué)生信息')
print(' 4. 刪除學(xué)生')
print(' 5. 返回')
print("====================================")
Python中可以使用3個(gè)單引號(hào)或者3個(gè)雙引號(hào)括起來(lái)來(lái)表示一個(gè)字符串氓扛,可以直接輸入回車換行

str1='''
# ====================================
# 歡迎您:
# 
#      1.  添加學(xué)生
#      2.  查看學(xué)生
#      3.  修改學(xué)生信息
#      4.  刪除學(xué)生
#      5.  返回
# ======================================
'''
print(str1)
num = int(input('請(qǐng)選擇1--5:'))
if num == 1:
    name = input('姓名:')
    age = input('年齡:')
    tel = input('電話:')
elif  num == 2:
    stu_name = input("請(qǐng)輸入要查看的學(xué)生名字:")
elif  num == 3:
    print("目前正在修改學(xué)生信息")
elif  num == 4:
    print("目前正在刪除學(xué)生信息")
else:
    print('退出!')


---use if

1.if的嵌套

在if結(jié)構(gòu)中還可以再寫(xiě)if結(jié)構(gòu)

練習(xí):輸入一個(gè)數(shù)枯芬,如果這個(gè)數(shù)是偶數(shù),打印“XXX是偶數(shù)”同時(shí)判斷是否是4的倍數(shù)采郎,如果可以再打印“XXX是4的倍數(shù)”千所; 如果不是偶數(shù),打印“XXX是奇數(shù)”

num = int( input('請(qǐng)輸入一個(gè)整數(shù):'))
if num % 2 == 0:
    print("%d是偶數(shù)" % num)
    # if中嵌套if
    if num % 4 == 0:
        print('%d是4的倍數(shù)' % num)
else:
    print("%d是奇數(shù)" % num)
    # else中也可以嵌套if
    if num % 10 ==5:
        print("這個(gè)奇數(shù)是5的倍數(shù)")

2.python中的三目運(yùn)算符

  • C/java/js語(yǔ)言中有一個(gè)三目運(yùn)算符:
    表達(dá)式蒜埋?值1:值2 -> 判斷表達(dá)式的值是否為T(mén)rue淫痰,是True整個(gè)表達(dá)式的值=值1,F(xiàn)alse則為值2

  • Python中的三目運(yùn)算符: 值1 if 表達(dá)式 else 值2
    當(dāng)我們要根據(jù)某個(gè)條件是否成立整份,獲取不同的值的時(shí)候才使用三目運(yùn)算

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

練習(xí):輸入一個(gè)年份待错,判斷是否是閏年
閏年的條件:年份能被4整除,不能被100整除烈评;或者能被400整除

num = int(input('請(qǐng)輸入年份'))
str1,str2 = '閏年','非閏年'
print(str1 if (num % 4 == 0 and num % 100 != 0)or num % 400 == 0  else  str2)


---for

Python中的循環(huán)結(jié)構(gòu)有2種火俄,分別是for循環(huán)和while循環(huán)、

1.為什么使用循環(huán)

當(dāng)實(shí)現(xiàn)某個(gè)功能的時(shí)候發(fā)現(xiàn)某個(gè)操作需要重復(fù)執(zhí)行讲冠,這個(gè)時(shí)候考慮使用循環(huán)

2.for

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

  • b.說(shuō)明

  • for - 關(guān)鍵字

  • 變量 - 一個(gè)變量名瓜客,可以是已經(jīng)賦值過(guò)的變量,也可以是新的變量竿开,一般是新的變量

  • in - 固定寫(xiě)法

  • 序列 - 屬于序列的數(shù)據(jù):Python中的序列有:字符串谱仪、列表、字典德迹、元祖芽卿、range、迭代器胳搞、生成器

  • : - 固定寫(xiě)法

  • 循環(huán)體 - 需要重復(fù)執(zhí)行的代碼卸例,需要和for保持一個(gè)縮進(jìn)

  • c.執(zhí)行過(guò)程(重要!)
    讓變量取序列中取值肌毅,一個(gè)一個(gè)的取筷转,取完為止,每取一個(gè)值悬而,執(zhí)行一次循環(huán)體(序列中元素的個(gè)數(shù)決定了循環(huán)體執(zhí)行的次數(shù))

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

練習(xí):給字符串'dnn239u0 ahfn0vn9ua',統(tǒng)計(jì)這個(gè)字符串中數(shù)字字符的個(gè)數(shù)

count = 0  #用來(lái)保存數(shù)字字符的個(gè)數(shù)
for  char in 'dnn239u0 ahfn0vn9ua':
    if '0'<=char<='9':
        count += 1
print("有%d個(gè)數(shù)字字符" %count)

3.range函數(shù)

  • range(N) -> 產(chǎn)生數(shù)字序列0 ~ N-1(N必須是整數(shù))
  • range(M,N) ->產(chǎn)生數(shù)字序列M~N-1 (M N 必須是整數(shù)呜舒,N>M)
  • range(M,N,step) ->產(chǎn)生數(shù)字序列,從M開(kāi)始笨奠,每次增加step產(chǎn)生下一個(gè)數(shù)袭蝗,直到N前一個(gè)為止
    (M N 必須是整數(shù)唤殴;if step>0,N>M; if steo<0,M>N)
for num in range(10):
    print('num:',num)

計(jì)算1-100的和

count = 0 #保存和的變量
for num in range(1,101):
    count += num
print(count)

練習(xí):求100以內(nèi)s所有能被13或者7整除的數(shù)的和

sum = 0
for num in range(100):
    if num%13==0 or num%7==0:
        sum +=num
print(sum)

4. 通過(guò)遍歷字符串字符下標(biāo)遍歷字符串

str1 = 'hello world!'
for index in range(len(str1)): #index是字符對(duì)應(yīng)的下標(biāo)從前往后取
    print(str1[index],end='')
for index in range(-1,-len(str1)-1,-1):
    print(str1[index],end='')  #倒著取


---while

1.while

  • a.語(yǔ)法
    while 條件語(yǔ)句:
    ? ? 循環(huán)體

  • b.說(shuō)明

  • while - 關(guān)鍵字: 當(dāng)。到腥。朵逝。的時(shí)候

  • 條件語(yǔ)句 - 和if一樣(賦值語(yǔ)句不行,別的語(yǔ)句都可以)

  • : - 固定寫(xiě)法

  • 循環(huán)體 - 需要重復(fù)執(zhí)行的語(yǔ)句乡范,和while保持一個(gè)縮進(jìn)

  • c.執(zhí)行過(guò)程
    當(dāng)程序執(zhí)行到while循環(huán)配名,就先判斷條件語(yǔ)句是否為T(mén)rue,為T(mén)rue就執(zhí)行一次循環(huán)體,執(zhí)行完再判斷條件語(yǔ)句是否為T(mén)rue晋辆,為T(mén)rue又執(zhí)行渠脉。。瓶佳。以此類推芋膘,直到斷條件語(yǔ)句為False,循環(huán)結(jié)束,直接執(zhí)行后面的其他語(yǔ)句

2.for和while的選擇

嚴(yán)格來(lái)說(shuō):for可以做到的while都能做涩哟,但是while能做到的for不一定能做到

  • 使用for: 1.遍歷序列 2.循環(huán)次數(shù)確定
  • 使用while: 1.死循環(huán) 2.循環(huán)次數(shù)不確定

控制while循環(huán)次數(shù)

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

用while遍歷字符串

str1 = 'hello world!'
index = 0
while index<len(str1):
    print(str1[index])
    index += 1

練習(xí):寫(xiě)一個(gè)程序索赏,錄入學(xué)生的成績(jī),錄入以輸入’end‘來(lái)結(jié)束

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

練習(xí):注冊(cè)輸入密碼直到輸入的密碼合理為止贴彼,要求密碼至少6位

password=input('請(qǐng)輸入密碼:')
while len(password)<6:
    print('密碼有誤潜腻,請(qǐng)重新輸入')
    password=input('請(qǐng)輸入密碼:')


---continue/break/else

1.continue

continue是python關(guān)鍵字,只能用在循環(huán)體中器仗,用來(lái)結(jié)束當(dāng)次循環(huán)

  • 功能:當(dāng)循環(huán)體執(zhí)行到continue時(shí)融涣,結(jié)束當(dāng)次循環(huán),直接進(jìn)入下次循環(huán)的判斷精钮。
    (for循環(huán)就是讓變量去取下一個(gè)值威鹿;while循環(huán)就是直接去判斷while后面的條件是否為T(mén)ure)
for x in range(3):
    print('---')
    print('***')
    if x==2:
        continue
    print('===')

2.break

break是python關(guān)鍵字,只能用在循環(huán)體中轨香,

  • 功能:執(zhí)行循環(huán)體的時(shí)候忽你,遇到break直接結(jié)束,直接執(zhí)行循環(huán)后面的其他語(yǔ)句
num=111
while True:
    if num%17==0:
        print(num)
        break
    num +=1

3.else

for 變量 in 序列:
??循環(huán)體
else:
?? 代碼段

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

  • 執(zhí)行過(guò)程:循環(huán)執(zhí)行過(guò)程不變臂容,else后面的代碼段在循環(huán)自然死亡時(shí)執(zhí)行科雳,如果循環(huán)是因?yàn)橛龅絙reak結(jié)束時(shí)不執(zhí)行
for x in range(5):
    print(x)
    if x==3:
        break
else:
    print('for循環(huán)自然死亡')  #循環(huán)遇到break不會(huì)執(zhí)行


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市脓杉,隨后出現(xiàn)的幾起案子糟秘,更是在濱河造成了極大的恐慌,老刑警劉巖球散,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尿赚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)凌净,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)悲龟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人泻蚊,你說(shuō)我怎么就攤上這事躲舌〕笮觯” “怎么了性雄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)羹奉。 經(jīng)常有香客問(wèn)我秒旋,道長(zhǎng),這世上最難降的妖魔是什么诀拭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任迁筛,我火速辦了婚禮,結(jié)果婚禮上耕挨,老公的妹妹穿的比我還像新娘细卧。我一直安慰自己,他們只是感情好筒占,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布贪庙。 她就那樣靜靜地躺著,像睡著了一般翰苫。 火紅的嫁衣襯著肌膚如雪止邮。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天奏窑,我揣著相機(jī)與錄音导披,去河邊找鬼。 笑死埃唯,一個(gè)胖子當(dāng)著我的面吹牛撩匕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墨叛,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼止毕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了巍实?” 一聲冷哼從身側(cè)響起滓技,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棚潦,沒(méi)想到半個(gè)月后令漂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年叠必,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荚孵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纬朝,死狀恐怖收叶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情共苛,我是刑警寧澤判没,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站隅茎,受9級(jí)特大地震影響澄峰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辟犀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一俏竞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧堂竟,春花似錦魂毁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至疚漆,卻和暖如春酣胀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娶聘。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工闻镶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丸升。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓铆农,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親狡耻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子墩剖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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

  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 3,345評(píng)論 0 2
  • if分支結(jié)構(gòu): python中的分支結(jié)構(gòu)只有if,沒(méi)有switch 什么時(shí)候用if:如果做某事(執(zhí)行某段代碼)需要...
    圣咸魚(yú)閱讀 218評(píng)論 0 0
  • 【股票初級(jí)訓(xùn)練營(yíng)第28 期:長(zhǎng)投大家庭】 在長(zhǎng)投11月19開(kāi)課的股票課里,我遇見(jiàn)了我們可愛(ài)有才的班班香帥夷狰,還有機(jī)智...
    飲冰雕鏤閱讀 424評(píng)論 1 19
  • 想出包頭上大學(xué)岭皂,如愿了。 想畢業(yè)留在天津沼头,如愿了爷绘。 想接父母來(lái)津生活书劝,如愿了。 想尋個(gè)愛(ài)運(yùn)動(dòng)土至,個(gè)子高長(zhǎng)得好的老公购对,...
    一軒閱讀 346評(píng)論 5 5
  • 今早五點(diǎn)多就醒了,為啥這么早陶因? 因?yàn)橐o女兒系上端午線啊骡苞, 雖然外面賣好多現(xiàn)成的端午線, 但都不如奶奶的愛(ài)心端午線...
    Shuiyin21閱讀 490評(píng)論 2 2