個(gè)人主頁(yè):哈維數(shù)據(jù)
QQ:1876815991
郵箱:cnharvey@foxmail.com
一职车、流程控制簡(jiǎn)介
我們發(fā)現(xiàn)我們?cè)趯慞ython代碼的時(shí)候训措,是按照自上向下順序執(zhí)行的煤伟。
通過流程控制語(yǔ)句可以改變程序執(zhí)行順序,也可以讓指定的程序反復(fù)執(zhí)行多次挨措。
流程控制語(yǔ)句分成兩大類:條件判斷語(yǔ)句和循環(huán)語(yǔ)句珠漂。
二浪南、條件判斷語(yǔ)句(if語(yǔ)句)
語(yǔ)法:if 條件表達(dá)式 : 語(yǔ)句
語(yǔ)句執(zhí)行的流程:先對(duì)條件表達(dá)式進(jìn)行判斷,條件滿足即if后的語(yǔ)句。
如果為True就執(zhí)行伶唯,如果為False就不執(zhí)行
默認(rèn)情況下冈敛, if只會(huì)控制緊隨其后的那條語(yǔ)句,如果想要控制多條語(yǔ)句絮记,那么可以在if后面跟著一個(gè)代碼塊摔踱。
num = 10
if num == 10 : print("num=",num)
print("誰(shuí)也管不了我")#不會(huì)被if控制
代碼塊中保存一組代碼,同一組要么都執(zhí)行要么都不執(zhí)行怨愤,代碼塊就是一種代碼分組的機(jī)制派敷。
在Python中,代碼塊嚴(yán)格由縮進(jìn)控制撰洗。如果要編寫代碼塊篮愉,語(yǔ)句就不能跟在冒號(hào)后面,而是在下一行差导。
if True:
print("1我和2是一塊的")
print("2我和1也是一塊的")
print("3我跟他倆一塊的")
代碼塊的結(jié)束以代碼恢復(fù)到之前的縮進(jìn)級(jí)別時(shí)結(jié)束试躏。
有些時(shí)候我們想要同時(shí)判斷兩個(gè)條件,我們需要將兩個(gè)條件進(jìn)行串聯(lián)设褐。
這時(shí)候就需要邏輯運(yùn)算符了颠蕴。
如果希望所有條件同時(shí)滿足使用and
如果希望由一個(gè)條件滿足即可使用or
Python中的縮進(jìn)有兩種方式,tab和空格助析∠唬空格則需要使用四個(gè)空格。哪種都行(官方推薦使用空格)
Python代碼中使用的縮進(jìn)方式必須統(tǒng)一外冀,不能一行tab一行空格寡键。
#練習(xí):輸入一個(gè)用戶名,獲取用戶輸入并且進(jìn)行判斷锥惋,如果輸入的是admin則顯示管理員光臨昌腰,如果不是admin那么什么都不做。
username = str(input("username:"))
if username == "admin":
print("welcome,Administrator")
三膀跌、input函數(shù)(輸入)
該函數(shù)用來獲取用戶的輸入遭商。
input函數(shù)在調(diào)用后,我們的程序會(huì)立即暫停捅伤,等待用戶輸入劫流。用戶輸入完內(nèi)容以后點(diǎn)擊回車,程序才會(huì)繼續(xù)向下執(zhí)行。用戶輸入完成以后祠汇,輸入的內(nèi)容會(huì)以返回值的形式返回仍秤。
在使用input的時(shí)候,默認(rèn)的返回值是一個(gè)字符串可很,如果想要其他形式诗力,那么需要進(jìn)行類型轉(zhuǎn)換。
input函數(shù)中可以設(shè)置一個(gè)字符串作為參數(shù)我抠,這個(gè)字符串會(huì)作為提示文字顯示苇本。
input同時(shí)也可以用于暫時(shí)阻止程序結(jié)束。
四菜拓、if-else語(yǔ)句
語(yǔ)法:
if 條件表達(dá)式:
代碼塊
else
代碼塊
執(zhí)行流程:
1.對(duì)條件表達(dá)式求值判斷瓣窄,為true執(zhí)行if后的代碼塊
2.如果是false執(zhí)行else的代碼塊
#練習(xí):如果是管理員登陸九輸入歡迎管理員,如果是其他人就輸入歡迎用戶纳鼎。
username = str(input("username:"))
if username == "admin":
print("welcome,Administrator")
else:
print("welcome,user")
五俺夕、if-elif-else語(yǔ)句
語(yǔ)法:
if 條件表達(dá)式:
代碼塊
elif 條件表達(dá)式2:
代碼塊
......
else:
代碼塊
執(zhí)行流程:自上向下進(jìn)行求職判斷,直到找到表達(dá)式結(jié)果為True的
如果表達(dá)式false贱鄙,那么繼續(xù)向下判斷劝贸。
如果都是false,那么執(zhí)行else
此語(yǔ)句模式中只會(huì)有一個(gè)代碼塊會(huì)執(zhí)行贰逾。所以說每個(gè)條件表達(dá)式的順序需要嚴(yán)謹(jǐn)對(duì)待悬荣。
在if中可以嵌套if使用。
#練習(xí):年齡判斷
age=70
if age > 200 :
print("好大歲數(shù)")
elif age > 100 :
print("你也老大不小了")
elif age > 80 :
print("也挺大歲數(shù)了")
else
print("你已經(jīng)退休了")
六疙剑、if結(jié)構(gòu)練習(xí)題
1.閏年檢查
編寫一個(gè)程序氯迂,檢查任意一個(gè)年份是否是閏年。
如果一個(gè)年份可以被4整除不能被100整除言缤,或者可以被400整除嚼蚀,這個(gè)年份就是閏年
year=int(input("請(qǐng)輸入年份:"))
if year%4==0 and year/100!=0:
print("是閏年")
else:
print("不是閏年")
2.狗狗年齡計(jì)算器
我家的狗5歲了,5歲的狗相當(dāng)于多大年齡的人呢管挟?
編寫一個(gè)程序轿曙,獲取用戶輸入的狗的年齡,然后通過程序顯示其相當(dāng)于人類的年齡僻孝。
如果用戶輸入負(fù)數(shù)导帝,請(qǐng)顯示一個(gè)提示信息
dog_age=int(input("請(qǐng)輸入狗狗的年齡"))
if dog_age>0:
dog_age-=2
print((dog_age*4)+(2*10.5))
else:
print("請(qǐng)輸入正確的年齡")
3.期末成績(jī)獎(jiǎng)勵(lì)判斷
從鍵盤輸入小明的期末成績(jī):
當(dāng)成績(jī)?yōu)?00時(shí),'獎(jiǎng)勵(lì)一輛BMW'
當(dāng)成績(jī)?yōu)閇80 - 99]時(shí)穿铆,'獎(jiǎng)勵(lì)一臺(tái)iphone'
當(dāng)成績(jī)?yōu)閇60 - 79]時(shí)您单,'獎(jiǎng)勵(lì)一本參考書'
其他時(shí),什么獎(jiǎng)勵(lì)也沒有
score = int(input("請(qǐng)輸入分?jǐn)?shù):"))
if score >= 60:
if score == 100:
print("獎(jiǎng)品:BMW")
elif score >= 80:
print("獎(jiǎng)品:iphone")
elif score >= 60:
print("獎(jiǎng)品:參考書")
else:
print("沒有獎(jiǎng)品荞雏。")
4.嫁女兒計(jì)算器
大家都知道虐秦,男大當(dāng)婚平酿,女大當(dāng)嫁。那么女方家長(zhǎng)要嫁女兒悦陋,當(dāng)然要提出一定的條件:
高:180cm以上;
富: 1000萬(wàn)以上;
帥: 500以上;
如果這三個(gè)條件同時(shí)滿足蜈彼,則: '我一定要嫁給他'
如果三個(gè)條件有為真的情況,則: '嫁吧俺驶,比上不足幸逆,比下有余。'
如果三個(gè)條件都不滿足痒钝,則: '不嫁秉颗!'
#從鍵盤獲取輸入的內(nèi)容
high=int(input("請(qǐng)輸入身高:"))
money=int(input("請(qǐng)輸入存款(萬(wàn)):"))
smart=int(input("請(qǐng)輸入帥氣值:"))
#判斷條件是否滿足(為真滿足)
h=True if high>=180 else False
m=True if money>=1000 else False
s=True if smart>=500 else False
#判斷條件有幾項(xiàng)滿足
if h and m and s:
print("我一定要嫁給他")
elif h or m or s:
print("嫁吧,比上不足送矩,比下有余。")
else:
print("不嫁哪替!")
5.顯示不同位數(shù)
提示用戶輸入一個(gè)1-99999之間的整數(shù)栋荸,一次顯示這個(gè)數(shù)個(gè)十百千萬(wàn)位上的數(shù)值
num=int(input("請(qǐng)輸入一個(gè)數(shù)字[1-99999]:"))
w=num//10000
q=(num//1000)%10
b=(num//100)%10
s=(num//10)%10
g=num%10
if num>9999:
print(w,q,b,s,g)
elif num>999:
print(q,b,s,g)
elif num>99:
print(b,s,g)
elif num>9:
print(s,g)
elif num<9:
print(g)
6.[擴(kuò)展題目]猜拳游戲
[附]在Python中生成隨機(jī)數(shù)的方法
import random #引入隨機(jī)數(shù)模塊
num = random.randint(1,3) #生成三個(gè)隨機(jī)數(shù)并且賦值給num
和電腦隨機(jī)猜拳
import random
cpu_nums=random.randint(1,3)
print("剪刀(1),石頭(2),布(3)")
h_nums=int(input("請(qǐng)輸入石頭剪刀布:"))
if cpu_nums==h_nums:
print("平局")
else:
if h_nums > cpu_nums and not (h_nums==3 and cpu_nums == 1):
print(f"你出的是{h_nums}")
print(f"電腦出的{cpu_nums}")
print("你贏了")
elif h_nums == 1 and cpu_nums == 3:
print(f"你出的是{h_nums}")
print(f"電腦出的{cpu_nums}")
print("你贏了")
else:
print(f"你出的是{h_nums}")
print(f"電腦出的{cpu_nums}")
print("你輸了")