day6總結(jié)

1.回顧

1.變量
  • 語法:變量名 = 值
  • 說明:變量名 - 標(biāo)識符婚被。不能是關(guān)鍵字
    見名忘意糟趾,所有的字母小寫多個單詞之間用隔開,不能用系統(tǒng)內(nèi)置函數(shù)
2.運算符
  • 數(shù)學(xué)運算符驯嘱,比較運算符,邏輯運算符喳坠,賦值運算符
    1 <= a <= 20
  • 邏輯運算符對象和結(jié)果都是布爾值
  • 賦值運算符鞠评,左邊必須是變量,復(fù)合的賦值運算的賦值運算符右邊不能有其他
  • if if-dlse if-elif-else
4.循環(huán)結(jié)構(gòu)
  • 語法: for 變量 in 序列:
    循環(huán)體
    while:

while 條件語句:
循環(huán)體
else:
語句塊

  • continue(結(jié)束當(dāng)次循環(huán)), break(直接結(jié)束整個循環(huán))

2.字符串

1. 什么是字符串
  • 字符串是Python內(nèi)置的一種容器型數(shù)據(jù)類型(序列)壕鹉,不可變剃幌、有序?qū)我柣蛘唠p引號作為容器,里面可以根據(jù)情況放多個個字符
  • 不可變:指的是內(nèi)容的值和順序不可變
  • 有序:一旦字符串確定晾浴,字符串中字符的位子就固定(每個字符是第幾個字母是確定的)
3 2.字符:字符串里面的內(nèi)容
  • Python只有字符的概念负乡,沒有字符對應(yīng)的數(shù)據(jù)類型字符串的基本單元就是字符,又叫字符串的元素
  • a.基本字符 - 數(shù)字 脊凰、字母抖棘、常用符號、中文狸涌、日語等等
  • b.轉(zhuǎn)義字符 - 通過轉(zhuǎn)義符號\后面跟不同的字符來表示特殊功能或者特殊意義的字符
  • \n - 換行 ' - 一個單引號 " - 一個雙引號 \ - 一個反斜杠 \t - 制表符
str1 = 'abc\n123'
print(str1)
  • 阻止轉(zhuǎn)義:在字符串的最前面加小寫的r/R钉答,可以阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義
str2 = r'abc\n123\tx\'y\"z'
print(str2)
  • c.編碼字符 - \u后面跟4位的十六進(jìn)制數(shù),來表示一個字符 杈抢。這個4位數(shù)的16進(jìn)制數(shù)對應(yīng)的值是字符的編碼值
    0-9 a\A-f\F
  • 3.字符編碼
    Python中的字符采用的是Unicode編碼
  • 編碼:計算機 存儲數(shù)據(jù)的時候只能存數(shù)字数尿,而且存的是數(shù)字的補碼(是以二進(jìn)制的格式進(jìn)行存儲)
    print(bin(100))
    bin(),查看數(shù)字的二進(jìn)制方法
    oct()八進(jìn)制數(shù)
    hex()十六進(jìn)制數(shù) 獲取指定數(shù)字的十六進(jìn)制數(shù)
  • 編碼:每個字符在計算機存儲的時候都會對應(yīng)一個固定且唯一的數(shù)字這個數(shù)字就是這個字符的編碼。
    每一個字符和數(shù)字的一一對應(yīng)關(guān)系就是編碼表惶楼,常見的編碼表有ASCII碼表和Unicode編碼表
  • ASCII碼表只對數(shù)字字符右蹦、字母字符、英文符號進(jìn)行編碼
  • Unicode編碼表是對ASCII碼表的擴充歼捐,能夠?qū)κ鞘澜缟纤械姆栠M(jìn)行編碼(4e00) - 9fa5(漢子范圍)
  • chr(編碼值) - 獲取編碼值對應(yīng)的字符
  • ord()
    print(chr(100))
num = 0
for code in range(0x4e00,0x9fa5):
    print(chr(code), end='')
    num += 1
    if num % 20 == 0:
        print()
print(num)

3.獲取字符 - 取字符串內(nèi)容

1.1 獲取單個字符
  • a.語法: 字符串[下標(biāo)] - 根據(jù)下標(biāo)獲取字符串中對應(yīng)的字符,結(jié)果就是獲取到的字符
  • b.說明: 字符串 - 可以是字符串值,也可以是字符串變量,結(jié)果是字符串的表達(dá)式等都可以
  • [] - 固定寫法
  • 下標(biāo) - 又叫索引,一旦字符串確定豹储,那么字符串中每個字符都會對應(yīng)一個下標(biāo),表示這個字符在字符串中的位置巩剖。下標(biāo)的范圍是0 ~ 字符串長度減1,0表示第一個字符,1表示第二個,以此類推钠怯。(通用的)下標(biāo)范圍還可以是-1 ~ -字符串長度減1佳魔,-1表示倒數(shù)第一個
  • c.注意: 獲取單個字符的時候下標(biāo)不能越界
str1 = 'py\nthon'    # 'p' : 0/-6    'y' : 1/-5
result = 'python'[3]
print(result)
print(str1[0], str1[-6], str1[-1], str1[-2], str1[4])
# print(str1[100])    # IndexError: string index out of range
# print(str1[-20])      # IndexError: string index out of range
1.2 獲取部分字符(字符串切片)
  • a.語法: 字符串[開始下標(biāo):結(jié)束下標(biāo):步長] - 從開始下標(biāo)開始晦炊,獲取到結(jié)束下標(biāo)前為止宁脊,每次下標(biāo)值增加步長; 結(jié)果是字符串
  • b.說明: 字符串 - 可以是字符串值,也可以是字符串變量,結(jié)果是字符串的表達(dá)式等都可以
  • [],: - 固定寫法
  • 開始下標(biāo)、結(jié)束下標(biāo) - 下標(biāo)值贤姆,開始下標(biāo)對應(yīng)的字符可以取到榆苞, 結(jié)束下標(biāo)對應(yīng)的字符一定取不到
  • 步長 - 整數(shù),可以正的也可以是負(fù)的
  • c.注意: 下標(biāo)可以越界
    • 如果步長為正(從前往后獲取),開始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)對應(yīng)的字符前才能獲取到值
    • 如果步長為負(fù)(從后往前獲取),開始下標(biāo)對應(yīng)的字符要在結(jié)束下標(biāo)對應(yīng)的字符的后面才獲取到值
str2 = 'abcedf123456'
print(str2[0:4:1])     # 'abce'
print('=', str2[0:4:-1], '=', sep='')      # ''
print(str2[-2:-10:-2])   # '531d'
print(str2[0:100:1])     # 下標(biāo)可以越界语稠, 'abcedf123456'
print('hello python'[1:-2:3])     # 'eoy'

切片的語法中可以對步長弄砍、開始下標(biāo)和結(jié)束下標(biāo)進(jìn)行省略:

  • 1.省略步長 (步長默認(rèn)為1)
    字符串[開始下標(biāo):結(jié)束下標(biāo)] == 字符串[開始下標(biāo):結(jié)束下標(biāo):1]
  • 2.省略下標(biāo)
    字符串[:結(jié)束下標(biāo):步長] - 如果步長是正输涕,從字符串開頭往后取衣式;如果步長步長為負(fù),從字符串最后一個字符串往前取
    字符串[開始下標(biāo)::步長] - 如果步長為正碴卧,取到最后一個字符為止乃正;如果步長為負(fù),取到第一個字符為止
str2 = 'abcedf123456'
print(str2[2:5])    # 'ced'
print(str2[-4:-1])   # '345'

print(str2[:3:1])    # 'abc'
print(str2[:3:-1])   # '654321fd'

print(str2[2:])     # 'cedf123456'
print(str2[2::-1])  # 'cba'

print(str2[:])     # 'abcedf123456'
print(str2[::-1])  # '654321fdecba'

  • 練習(xí):1234 -> 4321
num = 1234
num_str = str(num)   # 先轉(zhuǎn)換成字符串
new_num_str = num_str[::-1]   # 切片
new_num = int(new_num_str)    # 轉(zhuǎn)換為數(shù)字
print(new_num*10)

1.3 遍歷字符串 - 一個一個的取出所有的字符
  • 方法一: 直接遍歷
    for 變量 in 字符串:
    循環(huán)體

  • 方法二: 通過遍歷下標(biāo)荧飞,來遍歷字符串
    for 變量 in range(字符串長度):
    字符串[變量]

for char in 'hello':
    print(char)

str3 = 'when i was young'

len(字符串) - 獲取字符串長度,返回一個數(shù)字名党。字符串長度指的是字符串中字符的個數(shù)
for index in range(len(str3)):
    print(index, str3[index])

index = 0
while index < len(str3):
    print(index, str3[index])
    index += 1

4.字符串相關(guān)運算
  • a.數(shù)學(xué)運算: 字符串支持加法運算和乘法運算
  • 語法: 字符串1 + 字符串2 - 將兩個字符串拼接在一起產(chǎn)生一個新的字符
new_str = 'abc' + '123'
print(new_str)
new_str += '你好!'   # new_str = new_str + '你好!' = 'abc123' + '你好!'
print(new_str)
  • 注意: 加號兩邊传睹,必須都是數(shù)字,或者都是字符串欧啤,數(shù)字和字符串不同混合相加!
# new_str = 'abc' + 123    # TypeError: must be str, not int
print(new_str+'======')
  • 語法: 字符串 * 正整數(shù) / 正整數(shù) * 字符串 - 指定的字符串重復(fù)指定次數(shù)修档,產(chǎn)生一個新的字符串
    print('abc' * 3) # abcabcabc
    print(''10) # **********

  • b.比較運算:字符串支持所有的比較運算符
    字符串1 == 字符串2, 字符串1 != 字符串2 - 判斷兩個字符串是否相等

print('abc' == 'abc')
print('abc' == 'acb')
print('abc' != 'acb')
兩個字符串比較大小: 讓兩個字符串中相同位置的字符一一比較(從前往后)府框,找到第一對兒不相等的字符讥邻,判斷編碼值的大小
print('abcdef' > 'abz')    # alse
print('abc' > 'abc')
print('abc1' > 'abc')     # True
print('abc-1' > 'abc')    # True

char = 'a'

  • 應(yīng)用:

  • 判斷一個字符是否是字母: 'a' <= char <= 'z' or 'A' <= char <= 'Z'

  • 判斷一個字符是否是數(shù)字: '0' <= char <= '9'

  • 判斷一個字符是否是中文(4e00~9fa5): '\u4e00' <= char <= '\u9fa5' / 0x4e00 <= ord(char) <= 0x9fa5
    print('\u4e00' <= char <= '\u9fa5')
    print('一' <= char <= '龥')

  • 練習(xí): 輸入一個任意的字符串,統(tǒng)計輸入的內(nèi)容中字母的個數(shù)
    例如: 輸入'abc123你好解釋end~~~~' 結(jié)果是:6

value = input('請輸入一個字符串:')
count = 0
for char in value:
    if 'a' <= char <= 'z' or 'A' <= char <= 'Z':
        # print(char)
        count += 1
print('字母的個數(shù)', count)

3. in 和 not in 操作
  • 字符串1 in 字符串2 - 判斷字符串1是否在字符串2中(判斷字符串2中是否包含字符串1)
    字符串1 not in 字符串2 - 判斷字符串1是否不在字符串2中(判斷字符串2中是否不包含字符串1)
print('abc' in '123abc====')     # True
print('abc' in 'a123bc====')     # False
print('abc' not in 'a123bc====')  # True
print('@' in 'ah@s')        # True

4. 常用內(nèi)置函數(shù)
  • len(字符串) - 求字符串長度
  • str(數(shù)據(jù)) - 將其他數(shù)據(jù)轉(zhuǎn)換成字符,所有的數(shù)據(jù)都能轉(zhuǎn)換成字符串, 轉(zhuǎn)換的時候直接在數(shù)據(jù)的外面加引號
  • print(int('+23')) # 只有去掉引號后拼弃,本身就是一個整數(shù)的字符串才能轉(zhuǎn)換成整型
  • print(float('124.0')) # 只有去掉引號后,本身就是一個數(shù)字的字符串才能轉(zhuǎn)換成浮點型
  • print(bool('')) # 除了空串會轉(zhuǎn)換成False,其他的都會轉(zhuǎn)換成True
str2 = ''
if str2:
    print('不是空串')

1.字符串的對象方法
  • 字符串.方法()
  • 字符串.capitalize() - 將字符串中首字母大寫
str4 = 'hello'
new_str = str4.capitalize()
print(new_str)
  • 字符串.center(width, fillchar)
    • 產(chǎn)生一個長度為width的新的字符串,新字符串中原字符串居中励幼,剩余的部分用fillchar填充
new_str = str4.center(11, '0')
print(new_str)

new_str = str4.center(11, '*')
print(new_str)

new_str = str4.center(11, ' ')
print(new_str)

  • 字符串.ljust(width, fillchar)
new_str = str4.ljust(11, '=')
print(new_str)

  • 字符串.rjust(width, fillchar)
# py1901001\py1901002\py1901010
num = 1    # 001
# num = 10   # 010
study_id = str(num).rjust(3, '0')
print(study_id)

  • 字符串.zfill(width) - 產(chǎn)生一個寬度是width的字符串口柳,原字符串在右邊,前用0填充
study_id = str(num).zfill(4)
print(study_id)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嵌削,一起剝皮案震驚了整個濱河市望艺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艇劫,老刑警劉巖惩激,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浅缸,居然都是意外死亡魄咕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門毛萌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喝滞,“玉大人,你說我怎么就攤上這事右遭。” “怎么了吹榴?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長图筹。 經(jīng)常有香客問我,道長远剩,這世上最難降的妖魔是什么瓜晤? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上只估,老公的妹妹穿的比我還像新娘。我一直安慰自己锌云,他們只是感情好吁脱,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著攻冷,像睡著了一般遍希。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凿蒜,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天废封,我揣著相機與錄音,去河邊找鬼漂洋。 笑死力喷,一個胖子當(dāng)著我的面吹牛渴肉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播披蕉,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼乌奇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了爬凑?” 一聲冷哼從身側(cè)響起试伙,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎潘靖,沒想到半個月后蚤蔓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡秀又,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年吐辙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昏苏。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡捷雕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出救巷,到底是詐尸還是另有隱情,我是刑警寧澤棒假,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站谜酒,受9級特大地震影響妻枕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屡谐,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一愕掏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧饵撑,春花似錦、人聲如沸垢乙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蓖宦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柠偶,已是汗流浹背睬关。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔫仙,地道東北人丐箩。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓恤煞,卻偏偏與公主長得像施籍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丑慎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容