運(yùn)算符:數(shù)學(xué)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符
1.數(shù)學(xué)運(yùn)算符:+,-,,/,//,%,*
2.比較運(yùn)算符:>,<,==,!=(不等于),>=(大于等于),<=(小于等于)
所有的比較運(yùn)算符的運(yùn)算結(jié)果都是布爾值,True or False
print(100>1)
print(78<43)
print(100==1)
num=10
print(1<=num<=13) #目前只有python支持?jǐn)?shù)學(xué)中表示范圍的寫法
print(1<num<1.5)
result=200>1
print(result)
3.邏輯運(yùn)算符:and(l邏輯與運(yùn)算),or(邏輯或運(yùn)算),not(邏輯非運(yùn)算)
所有邏輯運(yùn)算符的運(yùn)算對(duì)象都是布爾值,結(jié)果也是布爾值
1).邏輯與運(yùn)算:
兩個(gè)都是True結(jié)果都是True,只要有1個(gè)條件是False結(jié)果就是False
True and True -->True
True and False -->False
False and True -->False
False and False -->False
當(dāng)要求多個(gè)條件同時(shí)滿足時(shí),就將多個(gè)條件用and連接,相當(dāng)于生活中的并且
練習(xí)1:獲取獎(jiǎng)學(xué)金的條件是:操作分不小于95分并且績(jī)點(diǎn)不小于4.0
score=98
grade=3.5
score>=95
grade>=4.0
print('是否能夠拿到獎(jiǎng)學(xué)金:',score>=95 and grade>=4.0)
練習(xí)2:判斷age對(duì)應(yīng)的人是否屬于兒童
age=18
print('是否是兒童:',age>=3 and age<=18) #邏輯運(yùn)算法
print('s是否是兒童:',3<=age<=18) #比較運(yùn)算符 做飯
2).邏輯或運(yùn)算:
兩個(gè)都是False結(jié)果才是False,只要有一個(gè)是True結(jié)果就是True.
True or True -->True
True or False -->True
False or True -->True
False or False -->False
當(dāng)要求多個(gè)條件中只要有一個(gè)條件滿足的時(shí)候,就將多個(gè)條件用or連接,相當(dāng)于生活中的或者
練習(xí)3:
score=98
grade=4.5
print('能否拿獎(jiǎng)學(xué)金:',score>95 or grade>4)
a=score>95 and grade>=2.0
b=grade>4.5 and score>=80
print('能否拿獎(jiǎng)學(xué)金佛:',a or b)
3).短路操作
條件1 and 條件2 如果條件1的結(jié)果是False,那么系統(tǒng)不會(huì)判斷條件2的結(jié)果,整個(gè)語(yǔ)句的結(jié)果直接變成False
條件1 or 條件2 如果條件1的結(jié)果是True,系統(tǒng)不會(huì)判斷條件2的結(jié)果,整個(gè)語(yǔ)句的結(jié)果True
4).邏輯非運(yùn)算:布爾值取反,True變False,False變True.
not True False
not False True
對(duì)某個(gè)條件進(jìn)行否定的時(shí)候使用它
年齡不大于18
age=19
print(age<=18)
print(not age>18)
4.賦值運(yùn)算符:=,+=,-=,=,/=,//=,%=,*=
所有的賦值運(yùn)算符的左邊必須是變量,復(fù)合賦值運(yùn)算符的左邊要求除了是變量以外,這個(gè)變量還必須是已經(jīng)聲明過的變量
賦值符號(hào)的右邊可以是數(shù)據(jù)(python),已經(jīng)聲明過的變量,運(yùn)算表達(dá)式
name='發(fā)順豐'
sum1=10+33
變量+=數(shù)據(jù) 是指將變量中保存的值加上指定的數(shù)據(jù),將結(jié)果重新保存在變量中
num2=1
num2+=2
print(num2)
print(num2,id(num2))
num2*=10
print(num2)
num2/=10
print(int(num2))
5.運(yùn)算符的優(yōu)先級(jí)
數(shù)學(xué)運(yùn)算>比較運(yùn)算>邏輯運(yùn)算符(not>and>or)>賦值運(yùn)算符
先算優(yōu)先級(jí)高的,再算優(yōu)先級(jí)低的。有括號(hào)先算括號(hào)里面的
num3=10+2>9 and 3*2<4
num3=10+2>9 and 6<4
num3=12>9 and 6<4
num3=True and False
num3=False
print(num3)
print(not True or False)
print(True or not False)
if條件語(yǔ)句
1.什么時(shí)候使用if語(yǔ)句
程序中某些代碼不是一定會(huì)執(zhí)行,而是在滿足某些條件的時(shí)候才執(zhí)行就可以使用if條件語(yǔ)句
2.if結(jié)構(gòu)
1)語(yǔ)法:
if條件語(yǔ)句:
代碼塊
>2)說明
if - 關(guān)鍵字,固定寫法
條件語(yǔ)句- 結(jié)果是布爾的表達(dá)式;本質(zhì)可以是除了賦值語(yǔ)句以外的任何語(yǔ)句,
例如:數(shù)據(jù),已經(jīng)聲明過的變量,運(yùn)算表達(dá)式
: -固定寫法,一般有冒號(hào)的地方,換行產(chǎn)生縮進(jìn),縮進(jìn)TAB鍵,
代碼塊 -和if保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句;滿足條件才會(huì)執(zhí)行
3)執(zhí)行過程
先判讀條件語(yǔ)句是否為True(如果條件語(yǔ)句不是布爾值,先轉(zhuǎn)換成布爾再判斷)
如果為True就執(zhí)行代碼塊中的語(yǔ)句,否則不執(zhí)行,直接執(zhí)行后面的其他語(yǔ)句
if True:
print('語(yǔ)句1')
print('語(yǔ)句2')
print('語(yǔ)句3')
練習(xí)4:如果num是偶數(shù),就打印偶數(shù),否則不打印
num=12
if num%2==0:
print('偶數(shù)') #s數(shù)字中除 0,其他全會(huì)判斷為True
3.if-else結(jié)構(gòu)
滿足某個(gè)條件執(zhí)行一個(gè)操作,不滿足這個(gè)條件執(zhí)行另外的操作
1)語(yǔ)法
if 條件語(yǔ)句:
代碼塊1
else:
代碼塊2
2)說明
if -關(guān)鍵字,固定寫法
條件語(yǔ)句 -可以輸數(shù)據(jù)、聲明過的變量、不包含賦值符號(hào)的運(yùn)算
:--固定寫法
代碼塊1 -和if保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句
else -關(guān)鍵字,固定寫法
代碼塊2 -和else保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句
3.1)執(zhí)行過程
先判斷條件語(yǔ)句是否為True(如果不是布爾值,轉(zhuǎn)換成布爾值再判斷)
如果為True,執(zhí)行代碼塊1,否則執(zhí)行代碼塊2
練習(xí)5:如果num死偶數(shù),就打印偶數(shù),否則奇數(shù)
num=19
if num%2==0:
print('偶數(shù)')
else:
print('奇數(shù)')
4.if-elif-else
4.1)語(yǔ)法
if 條件語(yǔ)句1:
代碼塊1
elif 條件語(yǔ)句2
代碼塊2
elif 條件語(yǔ)句3
代碼塊3
...
else:
代碼塊4
4.2)執(zhí)行過程
先判斷條件語(yǔ)句1是否為True,
如果為True就執(zhí)行代碼塊1,
然后整個(gè)if-elif-else結(jié)構(gòu)結(jié)束,執(zhí)行其他語(yǔ)句
如果前面所有的語(yǔ)句都不為True,就執(zhí)行else中的語(yǔ)句
已經(jīng)
0-3 幼兒
4-12 兒童
13-17 少年
18-28 青年
29-49 壯年
50-60 老年
"""
age=88
if 0<age<=3:
print('幼兒')
elif age<=12:
print('兒童')
elif age<=17:
print('少年')
elif age<=28:
print('青年')
elif age<=49:
print('壯年')
elif age<=60:
print('老年')
else:
print('神仙')
if True:
pass #pass 暫時(shí)不知道要打印輸出什么,先代替站位
5.if嵌套
可以在任何if結(jié)構(gòu)中根據(jù)需求再寫其他的if結(jié)構(gòu)
練習(xí)6:如果一個(gè)數(shù)是偶數(shù),否則打印奇數(shù),如果這個(gè)數(shù)能被4整除,那么打印4的倍數(shù),如果個(gè)位數(shù)是3,打印最后一位數(shù)是3
num=17
if num%2==0:
print('偶數(shù)')
if num%4==0:
print('4的倍數(shù)')
else:
print('奇數(shù)')
if num%10==3:
print('最后一位數(shù)是3')
else:
print('數(shù)據(jù)不對(duì)')
練習(xí)7:判斷一個(gè)三位數(shù)是否為水仙花數(shù)(個(gè)位的3次方+十位的3次方+百位的3次方剛好等于這個(gè)數(shù)本身)
num=153
if num==(num%10)**3+((num//10)%10)**3+(num//100)**3:
print('水仙花數(shù)')
else:
print('不是水仙花數(shù)')
百位數(shù),給該數(shù)整除100取商。個(gè)位數(shù)就是對(duì)該數(shù)對(duì)10取余,十位數(shù)就是對(duì)該數(shù)整除10,然后再對(duì)10取余
python和數(shù)字相關(guān)的類型:int、float、bool、complex
1.int(整型):包含所有的整數(shù)
python 中可以通過二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式對(duì)整數(shù)進(jìn)行表示
"""
1.1)十進(jìn)制
基數(shù):0,1,2,3,4,5,6,7,8,9,
進(jìn)位:逢10進(jìn)1
位權(quán):123(10)=1102+ 2101+310*0 (10的多少次方)
表示方法:直接寫,不需要加前綴,89,1823,90
1.2)二進(jìn)制數(shù)
基數(shù):0,1
進(jìn)位:逢2進(jìn)1
位權(quán):101(2)=122+021+12*0 (2的多少次方)
表示方法:在二進(jìn)制數(shù)前加0b
1.3)八進(jìn)制
基數(shù):0,1,2,3,4,5,6,7
進(jìn)位:逢8進(jìn)1
位權(quán):56(8)=581+68**0 **表示次方
表示方法:在八進(jìn)制數(shù)前0o
1.4)十六進(jìn)制
基數(shù):0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
進(jìn)位:逢16進(jìn)1
位權(quán):1af=1162+10161+1516*0
**表示方法:在十六進(jìn)制數(shù)前加0x
num=110
print(num+10)
num=0b101
print(num)
num=0o56
print(num)
num=0o12
print(num)
1.5)進(jìn)制轉(zhuǎn)換
十進(jìn)制轉(zhuǎn)換成二進(jìn)制:bin(其他進(jìn)制整數(shù))
轉(zhuǎn)換成八進(jìn)制:oct(其他進(jìn)制整數(shù))
轉(zhuǎn)換成十六進(jìn)制:hex(其他進(jìn)制整數(shù))
print(bin(16))
print(oct(100)) #0o144=100
print(hex(100)) #0x64=100
2.float(浮點(diǎn)數(shù)):包含所有的小數(shù),12.5,-0.12
python支持科學(xué)計(jì)數(shù)法
1200==1.2e3 0.001==1e-3
print(1.2e3,1e-3)
3.bool(布爾):只有True和False兩個(gè)值
True本質(zhì)就是數(shù)字1,F(xiàn)alse本質(zhì)就是數(shù)字0
print(True+1)
print(False+1)
4.complex(復(fù)數(shù)):包含所有帶有虛部的數(shù)
實(shí)部+虛部(數(shù)字加j)
num1=10+2j
print(num1,type(num1))
num2=2-3j
print(num1+num2)
print(num1*num2)
5.type函數(shù)
type(數(shù)據(jù)) 獲取數(shù)據(jù)對(duì)應(yīng)的類型
6.類型轉(zhuǎn)換
類型名(數(shù)據(jù)) -->將數(shù)據(jù)轉(zhuǎn)換成指定類型
int(數(shù)據(jù)):將數(shù)據(jù)轉(zhuǎn)換成整型;字符串去掉引號(hào)后,本身就是一個(gè)整數(shù)
float(數(shù)據(jù)):將數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)型;去掉引號(hào)后,本身就是一個(gè)數(shù)字,就能轉(zhuǎn)換成
bool(數(shù)據(jù)):數(shù)字轉(zhuǎn)換成布爾時(shí),除了0和空串其他都會(huì)轉(zhuǎn)換成True
num=12.5
nnum=int(12.5)
print(nnum)
print(type(nnum),nnum)
num2=float(100)
print(type(num2),num2)
print(int(10.2))
print(bool(0))