條件語句
if elif else都是關鍵字,需要能讀和寫
基本格式:
if 條件語句1:
執(zhí)行語句塊1
elif 條件語句2:
執(zhí)行語句塊2
else:
執(zhí)行語句塊3
執(zhí)行過程:
a.先判斷條件語句1是否為True臭脓,如果為True就執(zhí)行冒號后邊的執(zhí)行語句塊1酗钞,整個條件結(jié)構就執(zhí)行完了;如果是False,就去判斷條件語句2是否為True来累。
b.如果是True就執(zhí)行執(zhí)行語句塊2砚作,再執(zhí)行其他語句;如果是False,就直接執(zhí)行語句塊3,再執(zhí)行其他語句嘹锁。
注意:冒號后邊語句塊和冒號所在得語句要保持一個縮進葫录。
if
判斷條件語句的值是否為True,如果為True兼耀,就只執(zhí)行執(zhí)行語句塊压昼。否則就直接執(zhí)行if語句后面的其他語句。
if 條件語句:
執(zhí)行語句塊
age=20
要求判斷年齡是否大于18瘤运,如果大于18就輸出'成年人'
if age>18:
print('成年人')
練習:判斷一個數(shù)是否是偶數(shù)窍霞,如果是就打印'xxx是偶數(shù)'
n=18
if n%2==0:
print('%d是偶數(shù)'%(n))
2.if-else
判斷條件語句是否為True,如果為True拯坟,就執(zhí)行語句塊1;否則就執(zhí)行語句塊2.
if 條件語句:
執(zhí)行語句塊1
else:
執(zhí)行語句塊2
n=17
if n%2==0:
print('%d是偶數(shù)'%(n))
else:
print('%d是奇數(shù)'%(n))
練習:輸入一個數(shù)但金,如果這個數(shù)大于10,就輸出他的2倍值郁季。否 則輸出這個數(shù)的2次冪冷溃。
input():從控制臺獲取鍵盤輸入的一個字符串,以回車結(jié)束梦裂。
inputvalue=input('請輸入一個數(shù):')
print(inputvalue)
n=int(inputvalue)
比較運算符和+以及*似枕,在運算的時候,兩邊可以都是字符串年柠,也可以都是數(shù)字凿歼,但是不可以一樣一個。
if n>10:
num=n*2
print(num)
else:
num=n**2
print(num)
3.if-elif-elif-else
總結(jié):
a.如果要求中需要多個判斷冗恨,可以使用多個elif的if語句答憔。
b.一個if/elif/else語句中可以嵌套其他的if語句。
(1)給一個成績掀抹,判斷成績是優(yōu)秀(90-100)虐拓、良好(80-89)、 中等(60-79)傲武、不及格(60以下)
方法一:
grade=96
if grade>=90:
if grade>100:
print('成績有誤')
else:
print('優(yōu)秀')
elif grade>=80:
print('良好')
elif grade>=60:
print('中等')
elif grade>=0:
print('不及格')
else:
print('成績有誤')
方法二:
grade=67
if 100>=grade>=90:
print('優(yōu)秀')
elif 90>grade>=80:
print('良好')
elif 80>grade>=60:
print('中等')
elif 60>grade>=0:
print('不及格')
else:
print('成績有誤')
(2)給個年齡蓉驹,判斷年齡處于:嬰兒(0-1歲)城榛、兒童(2-4 歲)、少年(5-12歲)戒幔、青年(13-18歲)吠谢、成年(19-40)、 中年(41-60)诗茎、老年(60以上)
age=1
if age<2:
if age<=0:
print('年齡輸入錯誤')
else:
print('嬰兒')
elif age<5:
print('兒童')
elif age<13:
print('少年')
elif age<19:
print('青年')
elif age<41:
print('成年')
elif age<61:
print('中年')
else:
print('老年')
說明:Python中沒有switch語法工坊。
pass:占位,防止因為沒有寫塊結(jié)構而出現(xiàn)語法錯誤敢订。
if n==10:
pass
轉(zhuǎn)換函數(shù)
1.int()
int():將其他的數(shù)據(jù)轉(zhuǎn)換成int類型的數(shù)據(jù)
num=12.56
print(int(num)) # 12 將浮點數(shù)轉(zhuǎn)換成整數(shù)(直接去掉小數(shù)部分)
bool1=True
print(int(bool1)) # 1 將布爾值轉(zhuǎn)換成整數(shù)王污,True->1 False->0
str1='123'
print(int(str1)) # 123 只有純數(shù)字字符串或者純數(shù)字字符串前有正負號的字符串才能轉(zhuǎn)換成相應的整數(shù)。
2.flot()
flot():將其他數(shù)據(jù)轉(zhuǎn)換成浮點型
3.bool()
bool():將其他的數(shù)據(jù)轉(zhuǎn)換成布爾值
數(shù)字轉(zhuǎn)換成布爾楚午,非0是True昭齐,0是False。
print(bool(12)) # True
print(bool(-12.3)) # True
print(bool(0)) # False
字符串轉(zhuǎn)換成布爾矾柜,除了空串是False阱驾,其他的都是True。
print(bool('abc')) # True
print(bool('')) # False
注意:在if或者while循環(huán)后的條件語句怪蔑,可以不是結(jié)果為True/False的表達式里覆,也可以是值是其他類型的表達式.判斷的是時候就看這個值轉(zhuǎn)換成bool后的結(jié)果是True還是False。
if 10:
print('aaa') # aaa (10轉(zhuǎn)換成bool后是True)
if 0:
print('aaa') # (0轉(zhuǎn)換成bool后是False)
練習:判斷一個字符串是否是空串缆瓣,如果不是就直接打印這個字符 串喧枷,否則打印“空串”
方法1:
str1=''
if str1:
print(str1)
else:
print('空串')
方法2:
str1='abc'
if str1!='':
print(str1)
else:
print('空串')
4.str()
str():將其他的數(shù)據(jù)轉(zhuǎn)換成字符串。所有的數(shù)據(jù)類型都可以轉(zhuǎn)換成字符串弓坞。
循環(huán)
python中循環(huán):for循環(huán)隧甚、while循環(huán)(一個操作需要重復執(zhí)行多次,這個時候就要考慮使用循環(huán))
for循環(huán)
python中的for循環(huán)只有for-in循環(huán):
格式:
for 變量名 in 列表:
循環(huán)體
執(zhí)行過程:使用變量去依次獲取列表中的數(shù)據(jù)直到獲取完為止;沒獲取一個數(shù)據(jù)渡冻,執(zhí)行一次循環(huán)體戚扳。
循環(huán)次數(shù):由列表中的數(shù)據(jù)的個數(shù)決定。
去獲取字符串中的每一個字符
str1='abcdef'
for char in str1:
print(char)
去統(tǒng)計字符串中'a'出現(xiàn)的次數(shù)
str1='avaadafvaavafaaa'
n=0
for char in str1:
if char=='a':
n=n+1
print(n)
range()函數(shù):可以生成一個數(shù)值范圍
打印1-100
for n in range(1,101):
print(n)
用法1:range(n),生成0~n-1的值
for x in range(9):
print(x)
用法2:range(m,n),生成m~n-1的數(shù)
for n in range(5,9):
print(n)
打印0-100之間所有的偶數(shù)
for x in range(101):
if x%2==0:
print(x)
用法3:range(m,n,step):從m開始每step取一個數(shù)族吻,取到n前 一個數(shù)為止咖城。
for x in range(1,8,2):
print(x) # 1,3,5,7
不通過字符串相乘,打印10次“=”,并且打印在同一行呼奢。
for _ in range(10):
print('=',end=' ')
求1+2+3...+100
n=0
for x in range(1,101):
n=n+x
print(n)
注意:如果循環(huán)中的變量取到的值沒有意義,循環(huán)只是單純的控制次數(shù)切平,這個時候for后面的變量名一般用“_”代替握础。
while循環(huán)
格式:
while 條件語句:
循環(huán)體
執(zhí)行過程:判斷條件語句結(jié)果是否為True,如果為True就執(zhí)行一次循環(huán)體悴品。執(zhí)行完循環(huán)體后再判斷條件語句是否為True禀综,如果為True繼續(xù)執(zhí)行循環(huán)體简烘。重復這個過程,直到條件語句結(jié)果為False
for循環(huán)可以實現(xiàn)的操作定枷,while循環(huán)都可以
打印1-100
方法1:
x=0
while x<100:
x+=1
print(x)
方法2:
x=1
while x<=100:
print(x)
x+=1
計算1+2+3+...+100
x=0
n=0
while n<100:
n+=1
x+=n
print(x)
求1-100中所有偶數(shù)的和
方法1:
n=0
x=0
while n<=100:
if n%2==0:
x=x+n
n=n+1
print(x)
方法2:
n=0
x=0
while n<100:
n+=2
x=x+n
print(x)
break和continue
1孤澎、break
break是一個讓循環(huán)提前結(jié)束的關鍵字
如果在for循環(huán)或者while循環(huán)中遇到了break,那么循環(huán)就在break的位置直接結(jié)束欠窒。結(jié)束后程序執(zhí)行循環(huán)后邊的代碼覆旭。
練習:找到1000~9999中第一個能夠被13整除的數(shù),打印出來
for x in range(1000,10000):
if x%13==0:
print(x)
break
for x in range(1,100):
if x==50:
break
print(x) # 1 2 3 ... 49
用while循環(huán)實現(xiàn):不斷的讓用戶去輸入數(shù)字岖妄,直到用戶輸入的數(shù)字是0為止型将。最后在打印之前輸入的數(shù)的和。
input()函數(shù):程序執(zhí)行到input()函數(shù)的時候荐虐,程序就會停下來七兜,等待用戶從鍵盤輸入并且以回車結(jié)束,然后才會往下執(zhí)行福扬。
注意:break只能寫在循環(huán)中
sum1=0
while True:
num=int(input(">>>")) # 獲取鍵盤輸入的內(nèi)容腕铸,并且轉(zhuǎn)換成int類型
sum1+=num # 將當次輸入的數(shù)字加起來
if num==0: # 判斷輸入的數(shù)字是否是0,如果是就讓循環(huán)結(jié)束
break
print(num)
print(sum1)
for循環(huán)的特點:次數(shù)確定铛碑,可以在序列中取數(shù)據(jù)
while循環(huán):循環(huán)次數(shù)不確定的(while True + break)
randint(m,n):產(chǎn)生一個m到n的隨機整數(shù)
產(chǎn)生隨機數(shù):random模塊是python內(nèi)置用來產(chǎn)生隨機數(shù)的模塊狠裹,里面提供了很多產(chǎn)生隨機數(shù)的函數(shù)。
猜數(shù)字:隨機生成一個整數(shù)亚茬。用戶輸入數(shù)字酪耳。如果用戶輸入的數(shù)字大于這個隨機數(shù)就提示:“大了”;如果用戶輸入的數(shù)小于隨機數(shù)就提示:“小了”。直到用戶輸入的數(shù)和這個隨機數(shù)大小一樣游戲結(jié)束刹缝。
import random
num=random.randint(0,100) # 產(chǎn)生一個0到100的隨機數(shù)
n=0
while True:
num1=int(input("請輸入你猜的數(shù)字:"))
n=n+1
if num1>num:
print('大了')
elif num1<num:
print('小了')
else:
print('恭喜你碗暗,猜對了!')
print('一共猜了:%d次'%(n),end=' ')
if n<=5:
print('你太棒了梢夯,只猜了%d次就猜對了'%(n))
else:
print('下次加油言疗!')
break
2、continue
continue:結(jié)束當次循環(huán)颂砸,進入下次循環(huán)
for x in range(1,10):
print('=')
continue # 遇到continue就不再執(zhí)行循環(huán)體后面的內(nèi)容噪奄,直接進入下一次循環(huán)的判斷
print(x)
求1~100中所有奇數(shù)的和
sum=0
for x in range(1,100):
if x%2==0:
continue
sum=sum+x
print(sum)
打印100~999中十位數(shù)上不是3的所有數(shù):
for x in range(100,1000):
if x//10%10==3:
continue
print(x)
統(tǒng)計輸入的數(shù)字中,偶數(shù)的個數(shù)人乓。如果輸入0勤篮,就結(jié)束。(必須使用continue)
flag=True
n=0
while True:
num=int(input('請輸入一個數(shù):')) # 輸入數(shù)據(jù)
if num%2==1: # 判斷是否是奇數(shù)
continue
if num==0:
flag=False
n=n+1
print(n)
else
python中循環(huán)語句后面可以加else語句色罚。這個else語句會在循環(huán)結(jié)束后執(zhí)行碰缔。
for 變量 in 序列:
循環(huán)體
else:
循環(huán)結(jié)束后會執(zhí)行的語句塊
1*2*3...*10
sum1=1
for x in range(1,11):
sum1*=x
else:
print(sum1)
注意:如果再循環(huán)語句中使用break,那么else語句不會執(zhí)行戳护。(continue不存在這個問題)
123...*10金抡,當乘積大于10000就不在執(zhí)行
sum1=1
for x in range(1,11):
if sum1*x>10000:
break
sum1*=x
print(sum1)
else:
print(sum1) # 如果在循環(huán)中執(zhí)行了break瀑焦,那么else中的語句不會執(zhí)行
多重循環(huán)
在循環(huán)體里面可以有其他的循環(huán)語句,結(jié)構為:
for 變量 in 序列:
for 變量1 in 序列2:
循環(huán)體2
其它的循環(huán)語句
for 變量 in 序列:
其他的循環(huán)語句1
while 條件語句:
循環(huán)體2
其他的循環(huán)語句2
while 條件語句1:
while 條件語句2:
循環(huán)體2
其他的循環(huán)語句2
例如:
如果n=5 打印
1
12
123
1234
12345
n=5
for x in range(1,n+1): # 控制行數(shù)
for b in range(1,x+1): # 控制當前行的數(shù)值
print(b,end='')
print() # 一行結(jié)束換行
*****
****
***
**
*
n=5
for x in range(1,n+1):
for b in range(x,n+1):
print('*',end='')
print()
n=10
for x in range(1,n+1):
for b in range(x,n+1):
print('*',end='')
print()
參考了簡書中某人的記錄梗肝,但找不到具體是誰了榛瓮。侵刪。