--- 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ǔ)句:
?? 代碼段1b.說(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:
??代碼段3b.說(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則為值2Python中的三目運(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í)行