if分支結構:
- python中的分支結構只有if,沒有switch
- 什么時候用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('===')