April_22th_day06
pycharm中的三種波浪號:
紅色 - 語法錯誤捐友!
灰色 - 格式錯誤商模!
綠色 - 單詞錯誤肪虎!
record
1.python是解釋性語句
2.變量
name = “哈哈“
age做瞪, sex = 18契讲, ”男“
a = b = 10
3.運算符
數(shù)學(xué)、比較缰犁、邏輯淳地、賦值
4.if分之結(jié)構(gòu)
if 條件語句1:
代碼塊1
elif 條件語句2:
代碼塊2
else:
代碼塊3
5.循環(huán)結(jié)構(gòu)
for 變量 in 序列:
循環(huán)體
while 條件語句:
循環(huán)體
6.數(shù)字類型:int、float帅容、bool薇芝、complex
二進制bin():0b1010101
八進制oct():0o27312
十六進制hex():0x19af
1e2 = 100
1e-2 = 0.01
True == 1, False == 0
復(fù)數(shù):1+10j
str字符串
1.什么是字符串(str)
1.1.
字符串是python提供的容器型數(shù)據(jù)類型(序列),不可變丰嘉、有序
不可變:不支持增刪改
有序:支持下標(biāo)操作
1.2.
python中的字符串是用單引號或者雙引號引起來的字符夯到;引號里面的每個基本單元叫字符
2.字符
python中只有字符概念,沒有字符類型
2.1.普通字符:數(shù)字饮亏、字母耍贾、普通符號、中文路幸、日語等等
2.2.轉(zhuǎn)義字符:
在特定的符號前加\來表示特殊功能或者特殊意義的字符
\n:換行
':單引號字符(不是字符串開頭/結(jié)尾標(biāo)志)
":雙引號字符(不是字符串開頭/結(jié)尾標(biāo)志)
\:反斜杠本身(讓一個反斜杠失去轉(zhuǎn)義的功能)
\t:制表符(Tab)
str3 = "123'3\nab\"c\\none"
print(str3)
組織轉(zhuǎn)義:在字符串的最前面加r/R荐开,能夠阻止字符串中所有的轉(zhuǎn)義字符轉(zhuǎn)義
str4 = R"\thow\nare\nyou"
print(str4)
"\tabc\n123" 長度:8
R"\tabc\n123" 長度:10
2.3.編碼字符
在字符串中用'\u四位的十六進制數(shù)'來表示一個字符
\u字符編碼值的16進制數(shù)
2.3.1.字符編碼
計算機本身只有直接存儲數(shù)字的能力(存數(shù)字的二進制的補碼),為了能夠存儲數(shù)字以外的符號简肴,開發(fā)人員給每個字符對應(yīng)一個固定的數(shù)字用來對字符進行存儲晃听。每個字符對應(yīng)的固定的數(shù)字就是字符的編碼值。
每個字符和數(shù)字的一一對應(yīng)關(guān)系就是字符編碼表
常見的編碼表有:ASCII碼表砰识、Unicode編碼表
ASCII表示用一個字節(jié)對字符進行編碼:0-127
Unicode編碼表采用2個字節(jié)對字符進行編碼:32768(包含了ASCSII表(0-127)
a - 97
b - 98
chr函數(shù):chr(編碼值) - 獲取編碼值對應(yīng)的字符
幣
ord函數(shù):ord(字符) - 獲取制定字符對應(yīng)的編碼
str5 = '123\u1234'
print(str5)
2.字符串的操作
2.1.獲取單個字符
語法:字符串[下標(biāo)] - 獲取制定下標(biāo)對應(yīng)的字符
說明:
字符串 - 結(jié)果是字符串的表達式(字符串值能扒、字符串變量、運算結(jié)構(gòu)是字符串)
[] - 固定寫法
下標(biāo) - 又叫索引辫狼,字符串確定后初斑,字符串中的每個字符都有一個確定的下標(biāo)/索引表示這個字符在字符串中所在的位置。
python中下標(biāo)有兩種膨处,位置從前往后是0 ~ 字符串長度-1见秤;位置從后往前是-1 ~ -字符串長度
注意:獲取單個字符的時候下邊不能越界
2.2.獲取部分字符(字符串切片)
語法:字符串[開始下標(biāo):結(jié)束下標(biāo):步長]
從開始下標(biāo)開始獲取,每次增加步長取下一個值真椿;取到結(jié)束下標(biāo)前為止(結(jié)束下標(biāo)對應(yīng)值取不到)
說明:
字符串 - 結(jié)果是字符串的表達式(字符串值鹃答、字符串變量、運算結(jié)構(gòu)是字符串)
[] - 固定寫法
開始下標(biāo) - 下標(biāo)突硝,整數(shù)测摔。能取到對應(yīng)的字符
結(jié)束下標(biāo) - 下標(biāo),整數(shù)狞换。對應(yīng)的字符取不到
步長 - 整數(shù)避咆。如果步長是整數(shù)舟肉,從前往后刃拊搿查库;如果步長是負(fù)數(shù),從后往前數(shù)
注意:1.字符串切片的結(jié)構(gòu)都是字符串
2如果步長是正數(shù)黄琼,那么開始下標(biāo)對應(yīng)要在結(jié)束下標(biāo)對應(yīng)的字符的前面樊销,此啊能取到值
如果步長是負(fù)數(shù),那么開始下標(biāo)對應(yīng)要在結(jié)束下標(biāo)對應(yīng)的字符的后面脏款,才能取到值
2.3.獲取部分字符的簡寫
2.3.1.省略步長 - 步長為1
語法:字符串[開始下標(biāo):結(jié)束下標(biāo)]
str4 = 'hello world'
print(str4[7:-5]) # llo wo
2.3.2.省略開始下標(biāo) - 步長為正從字符串開頭往后獲任弧;步長為負(fù)從字符串最后往前獲取
語法:字符串[:結(jié)束下標(biāo):步長]撤师、字符串[:結(jié)束下標(biāo)]
print(str4[:5]) # hello
print(str4[:5:-1] # dlorw
2.3.3.省略結(jié)束下標(biāo) - 步長為正剂府,取到字符串最后一個字符為止;步長為負(fù)取到第一個字符為止
語法:字符串[開始下標(biāo)::步長]剃盾、字符串[開始下標(biāo):]
print(str4[1:]) # ello world
print(str4[1::-1]) # eh
print(str4[::-1]) # dlorw olleh 字符串倒序
2.3.4.遍歷字符串 - 將字符串中的字符一個一個的取出來
for 變量 in 字符串:
循環(huán)體
# 直接遍歷腺占,變量取到的就是字符
for char in str4:
print(char)
# 簡介遍歷,通過遍歷下標(biāo)遍歷字符
for index in range(11):
print(str4[index])
練習(xí):統(tǒng)計輸入的字符串中痒谴,字母‘a(chǎn)'或‘A'出現(xiàn)的次數(shù)
str5 = input('請輸入一句話:')
i = 0
for str in str5:
if str == 'a' or str == 'A':
i += 1
print('\'%s\'中包含a/A的個數(shù)為:%d' % (str5, i))
"""
請輸入一句話:abac 你妹呀
'abac 你妹呀'中包含a/A的個數(shù)為:2
"""
字符串相關(guān)操作
1.字符串的運算:
1.1.數(shù)學(xué)運算符:+衰伯,*
字符串1+字符串2:兩個字符串相加 -> 將兩個字符串拼接產(chǎn)生一個新的字符串
str1 = 'abc' + 'hello'
print(str1)
字符串 * 正整數(shù)/ 正整數(shù) * 字符串:字符串重復(fù)指定次數(shù)產(chǎn)生一個新的字符串
str2 = 'abc' * 3
print(str2)
1.2.比較運算:>,<,>=,<=,==,!=
針對兩個字符串進行比較
str3 = 'abc'
print('abc' == str3)
print('abcdef' > 'abz')
1.2.in 和 not in
字符串1 in 字符串2 - 判斷字符串2中是否包含字符串1
1.3.len
len(字符串) - 獲取字符串長度(字符串中字符的個數(shù))
1.4.str
str(數(shù)據(jù)) - 將其他類型數(shù)據(jù)轉(zhuǎn)換成字符串
所有類型的數(shù)據(jù)都可以轉(zhuǎn)換成字符串;轉(zhuǎn)換的時候直接數(shù)據(jù)的外面加引號
1.5.格式字符串:在字符串中用格式占位符代替字符串中變化的部分积蔚,然后再使用數(shù)據(jù)對變化的部分進行復(fù)制
語法:包含格式占位符的字符串%(數(shù)據(jù)1意鲸,數(shù)據(jù)2,尽爆。怎顾。。)
說明:數(shù)據(jù)的個數(shù)和類型要和前面字符串中格式占位的個數(shù)和類型保持一致
格式占位符:
%s - 字符串
%d -整數(shù)
%.Nf - 浮點數(shù)(N用來控制小數(shù)點位數(shù))
%c - 字符漱贱、字符對應(yīng)的編碼值
name = input('姓名:')
age = int(input('請輸入年齡:'))
message = '我是'+name+'杆勇,今年'+str(age)+'歲'
message2 = '我是%s,今年%d歲'%(name,age)
字符的對象方法
字符串.函數(shù)名()
1.字符串.capitalize() - 將字符串中的第一個字符轉(zhuǎn)換成大寫字母
2.設(shè)置對齊方式
字符串.center(width,fillchar) - 讓字符串在新字符串中劇中饱亿,width控制新字符串的寬度蚜退,fillchar是填充字符
字符串.rjust(width,fillchar) -
字符串.ljust(width,fillchar) -
字符串.zfill(width) <==> 字符串.rjust(width,'0')