一匹厘、運(yùn)算符
運(yùn)算符:算數(shù)運(yùn)算符嘀趟、比較運(yùn)算符、賦值運(yùn)算符愈诚、邏輯運(yùn)算符
1.比較運(yùn)算符:>她按、<坡椒、>=、<=尤溜、==、!=(不等于)
所有比較運(yùn)算符的結(jié)果都是布爾值
-
x>y:比較x是否大于y汗唱,如果是結(jié)果就是true宫莱,否則結(jié)果就是false
print(10>5) print(6>10.8) print('abcdef'>'bcd') 比較字符串的大小時,不是比較兩個字符串的長度哩罪,而是從兩個字符串的第一個字符開始比較授霸, 如果第一個字符串的第一個字符大于第二個字符串的第一個字符,結(jié)果就是true际插,否則就是false碘耳。 如果兩個字符串的第一個字符相等才去比較他們的第二個字符,以此類推 print('abc'>'aba') print('abc'>'abcd') print('abc'>'abc')
-
x<y:比較x是否小于y框弛,如果是辛辨,結(jié)果就是true,否則結(jié)果是false
print(10<5) print(6<10.8) print('abc'<'aba')
-
x>=y:比較 x是否大于或等于y瑟枫。x大于y或者x等于y斗搞,結(jié)果是true,否者是false
print(10>=5) print(10>=10)
-
x<=y:比較x是否小于等于y慷妙。x小于y或者x等于y僻焚,結(jié)果是true,否則是false
print(10<=5) print(10<=10)
-
x==y:比較x和y是否相等膝擂,如果相等就是true虑啤,否則結(jié)果是false
a=10 b=20 print(a==10) print(a==b)
-
x!=y:比較x和y是否不相等,如果不相等就是true 架馋,否則就是false
print(a!=10) print(a!=b)
2.賦值運(yùn)算符:==狞山,+=,-=叉寂,=铣墨,/=,//=办绝,*=,%=
所有的賦值運(yùn)算符伊约,左邊必須是變量,
a=20
b=a 如果a的值是基本數(shù)據(jù)類型(數(shù)字孕蝉、字符串)屡律,直接將a里面存的值賦給b,如果值是對象降淮,傳遞的是變量中存儲的地址
表達(dá)式(本身有值的語句):10,a,10+a,10>20超埋,10+20/4*3等
a+10
print(a)
-
+=
a+=10 相當(dāng)于a=a+10 print(a) 或 a+=1 print(a)
-
-=
a-=10 相當(dāng)于a=a-10 print(a)
-
*=
a*=2 相當(dāng)于a=a*2 print(a)
-
/=
a/=2 相當(dāng)于a=a/2 print(a)
-
//=
a//=2 相當(dāng)于a=a//2 print(a)
-
**=
a**=2 相當(dāng)于a=a**2 就是a的2次方 print(a)
3.邏輯運(yùn)算符:and(與),or(或),not(非)
邏輯運(yùn)算符中表達(dá)式的值都是布爾值
-
表達(dá)式1 and 表達(dá)式2:兩個表達(dá)式的值都為true搏讶,結(jié)果才是true,否者是false霍殴。(and-->并且的意思)
print(True and True) print(True and False) print(False and True) print(False and False)
舉例:
age=40
face=90
要求:年齡大于18小于50,并且顏值不能低于80分
result=age>18 and age<50 and face>=80
print(result)
-
表達(dá)式1 or 表達(dá)式2:兩個表達(dá)式的值都為false媒惕,結(jié)果才是false,否則都是true
print(True or True) print(True or False) print(False or False) print(False or False)
舉例:
grade=8.0
score=80
獎學(xué)金要求:績點(diǎn)大于8.0或者測評大于90
result=grade>8.5 or score>90
print(result)
注意
獎學(xué)金新要求:1.績點(diǎn)大于9.7 2.成績8.5-9.7来庭,測評分大于85
python里可以這樣寫8.5<=grade<=9.7 妒蔚,但是只是限于數(shù)字的比較。
運(yùn)算表達(dá)式中月弛,加()可以改變運(yùn)算順序
result=grade>9.7 or (8.5<=grade<=9.7 and score>85)
print(result)
-
not 表達(dá)式:如果表達(dá)式的值為true肴盏,結(jié)果就是false;表達(dá)式的值為false帽衙,結(jié)果就為true菜皂。
print(not True) print(not False)
舉例:
及格的要求:成績不小于60.
grade=8 給變量賦值時,后面的值會覆蓋前面的值
result= not (grade<6)
print(result)
舉例:
進(jìn)入游樂場年齡的要求:不大于12歲并且要不小于2歲
age=18
result=(not age>12) and (not age<2)
print(result)
二厉萝、運(yùn)算符的優(yōu)先級
1.賦值運(yùn)算符的優(yōu)先級最低
result = True and False or True
print(result)
注意:
賦值運(yùn)算符<邏輯運(yùn)算符<比較運(yùn)算符<加減<乘恍飘、除、取余谴垫、整除常侣、冪運(yùn)算<+(正號)、-(負(fù)號)
可以加括號改變運(yùn)算的運(yùn)算順序(遇到括號就先算括號里的)
舉例:
a=True and False
print(a)
result=-10 and 2
print(result)
result=0>-10 and 2<5
print(result)
result=2+10>3
print(result)
三弹渔、字符串
由單引號或者雙引號括起來的文本
'acdf'
'234'
'\nhu90'
'我是字符串@ss'
-
1胳施、python中的字符串都是Unicode字符串
Unicode編碼:就是一種對字符的編碼方式(將字符編碼成對應(yīng)的數(shù)字,方便計算機(jī)儲存)
Unicode編碼又叫萬國碼肢专,支持目前幾乎所有的語言文字編碼
Unicode包含ASCII碼
數(shù)據(jù)存儲在計算機(jī)中是以二進(jìn)制的形式存的(二進(jìn)制是數(shù)字)
編碼的作用就是將字符串轉(zhuǎn)換成對應(yīng)的數(shù)字
將Unicode碼換換成字符
char=chr(0x4e01)
print(char)
將字符轉(zhuǎn)換成Unicode碼
code = ord('范')
print(code)
for x in range(0x2c80,0x2CFF):
print(chr(x),end=' ')
字符串比較大小的時候舞肆,實(shí)質(zhì)就是比字符的Unicode編碼的大小
-
2.字符串的長度
就是指字符串中字符的個數(shù)
'abc' #長度為3
' yu' #長度為3 空格也有長度
len(字符串):獲取字符串的長度
str1='你好,python'
length=len(str1)
print(length)
print(len('范'))
-
3.獲取字符/子串
str1='Hello,python'
a.獲取某一個字符
格式:字符串變量[下標(biāo)]
下標(biāo):從0開始的數(shù)字博杖,代表的是某一字符在字符串中的偏移量(位置)(范圍:0~字符串長度-1)
注意:下標(biāo)不要越界椿胯,否則會Indexerror報錯
print(str1[0]) 獲取第0個字符
print(str1[5]) 獲取從0開始的第5個字符
print(str1[20]) IndexError: string index out of range下標(biāo)越界
下標(biāo)也可以是負(fù)數(shù):也不能越界
print(str1[-1]) 獲取的是倒數(shù)第一個字符(最后一個)
print(str1[-2]) 獲取倒數(shù)第二個字符
print(str1[len(str1)-1]) 獲取最后一個字符
b.獲取字符串中某一部分的字母(獲取子串)
格式:字符串變量[開始下標(biāo):結(jié)束下標(biāo)] --->獲取從開始下標(biāo)到結(jié)束下標(biāo)前的所有字符
str1='Hello,python!'
注意:開始下標(biāo)對應(yīng)的字符可以取到剃根,結(jié)束下標(biāo)對應(yīng)的字符是取不到的
print(str1[1:4]) 獲取從下標(biāo)是1開始哩盲,到下標(biāo)是(4-1)的所有的字符
print(str1[6:10]) 獲取從下標(biāo)是6開始,到下表是9的所有的字符
開始下標(biāo)不寫狈醉,默認(rèn)就是0
print(str1[:5]) 獲取從開始到下標(biāo)是4為止的所有字符
結(jié)束下標(biāo)不寫廉油,就會取到最后一個字符
print(str1[-4:])
print(str1[6:])
如果結(jié)束下標(biāo)在開始下標(biāo)的前面,就會取不到字符(不能倒著让绺怠)
print(str1[5:1])
如果不寫就是獲取全部抒线,但意義不大,后面其他會用到
print(str1[:])
-
4.字符串的運(yùn)算符:+渣慕,*嘶炭,in抱慌,not in,
+:字符串的+操作眨猎,就是字符串連接
str2='aaa' + 'bcd'
print(str2)
str1='Hello'
str2='world'
str3=str1+'\t'+str2
print(str3)
str2+='!' #str2=str2+'!'
print(str2)
:字符串中的操作抑进,就是字符串重復(fù)多少次
str1='abc'*10 #abc重復(fù)10次
print(str1)
字符串1 in 字符串2:判斷字符串2是否包含字符串1.(顯示的是布爾值)
str1='Hello'
print('he'in str1) #判斷'he'是否在str1里面(判斷str1中是否包含'he')
字符串1 not in 字符串2:判斷字符串1是否不在字符串2中
print('ae' not in str1)
四、print函數(shù)的使用
print()函數(shù)可以打印括號里的任何內(nèi)容
調(diào)用print函數(shù)打印完后會換行
print(10)
str1='aaa'
print(str1)
同時打印多個內(nèi)容(多個內(nèi)容間用逗號隔開)睡陪;打印的時候寺渗,多個內(nèi)容之間用一個空格隔開的
print('aa',100,str1)
-
1.格式化輸出
print('%s %d %c'%(var1,var2,var3)):輸出字符串的時候,在字符串中使用字符串格式符表示變化的內(nèi)容宝穗。然后在%后面的括號里面,依次使用表達(dá)式給前面的字符串賦值
%s:字符串 %d:整數(shù) %f:浮點(diǎn)數(shù) %c:字符
name='張三'
age=18
我是xxx码秉,今年xx歲
print('我是%s,今年%d歲'%(name,age))
%f
print('余額:%f萬元'%(10.25))
$.2f保留小數(shù)點(diǎn)的后兩位 三位就是%.3f
print('余額:%.2f萬元'%(10.25))
python中的字符逮矛,就是指長度為1的字符串
print('%c'%('a'))
print('%c'%(0x4e00)) #打印的是中文的:一
可以打印unicode編碼
%o
print('%o'%(10))
%X/%x
print('%x,%X'%(15,15))
-
2.通過設(shè)置print函數(shù)的sep參數(shù),可以改變print函數(shù)在同時打印多個內(nèi)容時的分割符(默認(rèn)是空格)
name='張三' age=18 我是xxx转砖,今年xx歲 print('我是',name,',今年',age,'歲',sep='') #打印多個數(shù)據(jù)的時候须鼎,數(shù)據(jù)之間沒有間隙 print('我是',+name+,'今年',age,'歲') #注意:加號兩邊只能都是數(shù)字或者都是字符串,不能一個數(shù)字一個字符串 print('aa',100,'bbb',sep=',') #打印多個數(shù)據(jù)的時候府蔗,數(shù)據(jù)之間以','隔開
-
3.設(shè)置print函數(shù)的結(jié)束字符串晋控,默認(rèn)是'\n'
print('Hello',end=' ') print('World') 注意:設(shè)置sep和end參數(shù),只是當(dāng)次有效
五姓赤、字符串的內(nèi)置函數(shù)
-
capitalize() 將字符串的第一個字符轉(zhuǎn)換為大寫(不會改變原來的字符串赡译,而是返回一個新的字符串)
str1='python student' newStr=str1.capitalize() print(str1,newStr)
-
2.title()將字符串中每個單詞的首字母變成大寫(不會改變原來的字符串,而是返回一個新的字符串)
單詞的區(qū)分不铆,和英語區(qū)分單詞的方式是一樣的(以空格蝌焚、標(biāo)點(diǎn)符號分開的字符串)
newStr=str1.title()
print(str1,newStr)
-
3.center(width,fillchar) 將字符串變成指定的長度,并且原字符串內(nèi)容居中誓斥,剩余的位置使用指定的字符fillchar填充
str1='abc' newStr=str1.center(11,'-') print(newStr)
六只洒、補(bǔ)充
-
1.find ( )檢測字符串
用法格式:str1.find(str2) #在str1中 檢索字符串str2是否存在,存在劳坑,返回str2的初地址毕谴,不存在,返回-1.
str1.find(str2,x)#x是表示下標(biāo)的變量距芬,意為:從下標(biāo)為x的位置開始檢索str2是否存在于str1中.
str.find(str2,x,y)#y表示下標(biāo)整型變量涝开, 意為:從下標(biāo)x開始,檢測到下標(biāo)y結(jié)束
str1 = "hello,world,nihao,shijie"
str2 = "ll"
str1.find(str2)
2
str1.find(str2,1)
2
str1.find(str2,2)
2
str1.find(str2,3)
-1
str1.find(str2,1,6)
2
str1.find(str2,1,4)
2
str1.find(str2,1,3)
-1
-
2.rfind( )反向(從右至左)檢測字符串 str2最后出現(xiàn)的 下標(biāo)
str1.rfind(str2)#從 str1中從右至左檢測str2是否存在
str1.rfind(str2,x框仔,y)#【x,y)定位檢索的位置忠寻,之后正常反向檢索,輸出字符串首字母下標(biāo)存和。
str1.rfind(str2)
2
str1.rfind(str2,0)
2
str1.rfind(str2,2)
2
str1.rfind(str2,2,3)
-1
str1.rfind(str2,2,5)
2
-
3.count()方法語法:
str.count(str1) #計數(shù) str中奕剃,子串”str1“出現(xiàn)的次數(shù)
str.count(str1衷旅,x) #計數(shù) str中從下標(biāo)x開始,子串”str1“出現(xiàn)的次數(shù)
str.count(str1,x,y) #計數(shù) str中從下標(biāo)x開始纵朋,子串”str1“出現(xiàn)的次數(shù)
str = "hello,world,nihao,shijie"
count(",")
-
4.split()方法語法
str.split( )#默認(rèn)切片條件為:所有的空字符柿顶,包括空格、換行(\n)操软、制表符(\t)等
str.split(str1,num)#切片條件為:檢索到str1,切片次數(shù)為num
利用re模塊進(jìn)行切片(同時包含多個分隔字符的檢索)代碼如下:
import re
a=str#待檢測字符串
x=re.split( 此處為多個輸入的分隔符 ,a)
print(x)
-
5.max()方法語法 max(str)#輸出字符串中的最大字符
-
6.min()方法語法 min(str)
str = "abcdshjshf" max(str) 's' min(str) 'a' str = "12345676789" max(str) '9' min(str) '1'
-
7.lower()方法語法:
str.lower()#直接將字符串str中的所有大寫字母轉(zhuǎn)換成小寫字母
str = "ZGAHHHhihhoioai"
str.lower()
'zgahhhhihhoioai'
-
8.replace()方法語法:
str.replace(old,new)#直接將老字符串替換為新的字符串
str.replace(old,new[,max])#指定參數(shù)max嘁锯,以為替換次數(shù)不超過max;
str = "this is in china"
str.replace("is",'was',1)
'thwas is in china'
str.replace("is",'was',2)
'thwas was in china'
9聂薪,index()方法語法:
str.index(str1)用法同find(),只是如果被檢測的字符串中不含想要查找的內(nèi)容的話家乘,會報一個異常
str.index("is")
2
str.index("wax")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
-
10.rindex()類似于index(),方向?yàn)閺挠抑磷?/h6>
-
11.lstrip()方法語法:rstrip()同用法
str.lstrip()#截掉字符串左邊的空格(有多少,截掉多少)
str = " this is China"
str.lstrip()
'this is China'
str = "zhang "
str.rstrip()
'zhang'