一、復(fù)習(xí)
1捎泻、字符串(str)
通過雙引號(hào)或者單引號(hào)引起來的內(nèi)容就是字符串
2、Unicode編碼
3、轉(zhuǎn)義字符
\n --> 換行
\' --->'
\t---> 制表符
\\ ---> \
\" --->"
二湿右、字符串中的元素
1、阻止轉(zhuǎn)義(在字符串的最前面可以添加r/R來阻止字符串中的轉(zhuǎn)義字符轉(zhuǎn)義)
2罚勾、python中可以把字符串看成是一個(gè)序列(容器)毅人,容器中內(nèi)容是字符。
每一個(gè)字符可以稱為字符串中的元素尖殃。字符串是一個(gè)不可變的序列丈莺,有序(不可變指的是字符串中的每個(gè)字符,以及每個(gè)字符的位置不可變)
3送丰、獲取字符串中的單個(gè)字符
語法: 字符串[下標(biāo)] ---> 根據(jù)下標(biāo)獲取字符串中的字符
說明:a.字符串:可以是字符串的變量缔俄,也可以是字符串值
? ? ? ? b.[]:固定寫法
? ? ? ? c.下標(biāo):0~字符串長(zhǎng)度-1; -1~-長(zhǎng)度
注意:下標(biāo)是整數(shù);下標(biāo)不能越界
python中的每個(gè)字符串中字符都會(huì)對(duì)應(yīng)一個(gè)下標(biāo)俐载,下標(biāo)是根據(jù)字符在字符串中的位置铐懊,從前往后依次增加的(第一個(gè))
str3='python'
p-->0? y-->1? t-->2? h-->3 ....
m-->-1? o-->-2? h-->-3 ....
print(str3[0])? # p
print(str3[-6])? # p
index=2
print(str3[index])
print(str3[6//2])
注意:一個(gè)空格算一個(gè)字符,一個(gè)轉(zhuǎn)義字符算一個(gè)字符瞎疼,一個(gè)制表符也是算一個(gè)字符
4科乎、獲取字符串中的部分字符(切片)
A、語法:字符串[起始下標(biāo):結(jié)束下標(biāo)] ---> 獲取字符串中從起始下標(biāo)開始贼急,到結(jié)束下標(biāo)前的所有的字符
注意:起始下標(biāo)對(duì)應(yīng)的字符要在結(jié)束下標(biāo)對(duì)應(yīng)的字符的前面茅茂,否則取不到值
str5 = '同九年,汝何秀太抓!'
print(str5[1:5])? ? ?九年空闲,汝
print(str5[5:-1])? ? 何秀
B、語法:字符串[起始下標(biāo):結(jié)束下標(biāo):步長(zhǎng)] --> 從起始下標(biāo)開始獲取走敌,每步長(zhǎng)獲取一個(gè)康铭,獲取到結(jié)束下標(biāo)前為止
步長(zhǎng)為正:從前往后取(起始下標(biāo)對(duì)應(yīng)的字符要在結(jié)束下標(biāo)對(duì)應(yīng)的字符的前面厚骗,否則取不到值)
步長(zhǎng)為負(fù):從后往前去(起始下標(biāo)對(duì)應(yīng)的字符要在結(jié)束下標(biāo)對(duì)應(yīng)的字符的后面,否則取不到值)
str5 = '海賊王 、一拳超人骑丸、一人之下另假、進(jìn)擊的巨人'
print(str5[1:10:2])? ? ? ? 賊芯杀、拳人一
print(str5[10:0:-1])? ? ? ?一肤舞、人超拳..賊
C、切片時(shí)下標(biāo)可以省略项炼,省略不同的下標(biāo)有不同的意義
省略起始下標(biāo):字符串[:結(jié)束下標(biāo)] --->從開頭開始取(注意:這兒開頭可能是第一個(gè)字符也可能是最后一個(gè)字符)
str6 = '閣下何不同風(fēng)起担平,扶搖直上九萬里'
print(str6[:4])
print(str6[:4:-1])
省略結(jié)束下標(biāo):字符[起始下標(biāo):] ---> 從開始下標(biāo)取,取完為止
兩個(gè)下標(biāo)都识Р俊:字符[:] ---> 全部取完
注意:切片的時(shí)候下標(biāo)可越界
print(str6[0:100])? ? ? ?閣下何不同風(fēng)起暂论,扶搖直上九萬里
print(str6[-100:3])? ? ?閣下何
三、字符串運(yùn)算符
python中的字符串支持+拌禾、*和比較運(yùn)算符
1.字符串的+號(hào)運(yùn)算符
字符串1 + 字符串2 --->? 將字符串1和字符串2拼接在一起產(chǎn)生一個(gè)新的字符串
注意:+ 兩邊要么都是數(shù)字取胎,要么都是字符串,不能一樣一個(gè)
str1 = '玉樹臨風(fēng)美少年'
str2 = '攬鏡自顧夜不眠'
print(str1+str2)
new_str = str1 + ',' + str2 + '!'
print(new_str)
print(str1+','+str2)
2.*
字符串1 * n ----> 字符串
n必須是整數(shù)
str3 = '家有千金蹋砚,行止由心'?
print(str3*3)? ? ? ? ? ? #家有千金扼菠,行止由心家有千金摄杂,行止由心家有千金坝咐,行止由心
先算乘再算加
str4 = str1 + str3*2
print(str4)
3.比較運(yùn)算符
print('abc' == 'abc')? 判斷兩個(gè)字符串的值是否相等
print('abc' != 'ab')
比較大小:比較兩個(gè)字符串中從前往后每個(gè)字符的編碼值的大小析恢,比較到兩個(gè)字符不相同為止
print('abcdef' > 'bc')
判斷一個(gè)字符是否是數(shù)字字符墨坚,判斷一個(gè)字符是否是字母字符
print('==========')
char = 'H'
print('0'<=char<='9')
print('a'<=char<='z' or "A"<=char<='Z')?
4.in和not in
# 字符串1 in 字符串2 ---> 判斷字符串1是否在字符串2中或者字符串2中是否包含字符串1,結(jié)果為bool值
print('ab' in 'aaabc')? ? ? ? ? ? ? ? ? True
print('ab' in 'acb')? ? ? ? ? ? ? ? ? ? ? ?False
print('ab' not in 'aaabc')? ? ? ? ? ? ?False
print('ab' not in 'acb')? ? ? ? ? ? ? ? ?True
5.len()函數(shù)
len是python內(nèi)置函數(shù),功能是用來獲取序列的長(zhǎng)度(容器中元素的個(gè)數(shù))
len(序列)
字符串的長(zhǎng)度就是字符串中字符的個(gè)數(shù)
print(len('hello'))? ? ? ? 5
str5 = '窗前明月光\n疑是地上霜泽篮!'
print(len(str5))? ? ? ? ? ? ?12
四盗尸、格式字符串
字符串的內(nèi)部,通過格式站位符來表示字符串中變化的部分帽撑,然后在后面用值來填充變化的部分
語法;帶有占位符的字符串 % (給占位符賦值的值)
注意:前面有多少個(gè)占位符泼各,后面()中就必須有多少值。并且值的個(gè)數(shù)和值的類型要和前面的占位符一一對(duì)應(yīng)
%s ---> 字符串
%d ---> 整數(shù)
%f ---> 小數(shù)
%.nf ---> 保留小數(shù)點(diǎn)后n位小數(shù)(五舍六入)
name = '李四'
age = 20
money = 10.567
message= '姓名:%s 年齡:%d 薪資:%.2f' %? (name,age,money)
print(message)
print('%d:%c' % (97,97))
五亏拉、字符串的內(nèi)置函數(shù)
如果第一個(gè)字符不是字母扣蜻,將不會(huì)轉(zhuǎn)換
1.capitalize():將字符串的第一個(gè)字符轉(zhuǎn)換為大寫,返回一個(gè)新的字符串
str1 = 'love'
new_str = str1.capitalize()
print(new_str)? ? ? ? ? ? ? Love
2.字符串對(duì)齊
a.center(width,fillchar)
b.ljust(width,fillchar)
c.rjust(width,fillchar)
width ---> 長(zhǎng)度及塘,新的字符串的總長(zhǎng)度? ? ? fillchar ---> 剩下部分填充的字符莽使。 字符就是長(zhǎng)度是1的字符串
str2 = 'xxx'
new_str = str2.center(7,'0')
print(new_str)? ? ? ? ? ? ? 00xxx00
new_str = str2.ljust(7,'0')
print(new_str)? ? ? ? ? ? ? xxx0000
new_str = str2.rjust(7,'0')
print(new_str)? ? ? ? ? ? ? ?0000xxx
3.字符串1.count(字符串2)---> 統(tǒng)計(jì)字符串1中字符串2的個(gè)數(shù)
print('abcdabcdaaa'.count('ab'))? ? ? ? ? ? ? ? ? ?2
print('hello world'.count('l'))? ? ? ? ? ? ? ? ? ? ? ? ? ?3
4.字符串1.endswith(字符串2) ---> 判斷字符串1是否以字符串2結(jié)尾
字符串1.startswith(字符串2) ---> 判斷字符串1是否以字符串2開頭
str1 = 'when i was'
print(str1.endswith('was')
5.字符串1.find(字符串2) --->在字符串1中查找字符串2,返回第一個(gè)的開始下標(biāo)笙僚。如果沒有就返回-1
str1 ='when i was young , i have a dream'
print(str1.find('was'))
print(str1.find('wasaa')
6.isnumeric()
print('1234'.isnumeric())? ? ? ? ? ? ? ?T
print('一二五七九'.isnumeric())? ? ? ? ? ? ? ? ?T
7.isTitle()
標(biāo)題化:每個(gè)單詞首字母大寫芳肌,其他字母小寫
8.字符串1.join(字符串2)? ---> 將字符串1插入到字符串2中每個(gè)字符中間,產(chǎn)生一個(gè)新的字符串
print('aa'.join('xyz'))? ? ? ? ? ? ? ? ? xaayaaz
六肋层、作業(yè)
1亿笤、個(gè)性化消息: 將用戶的姓名存到一個(gè)變量中,并向該用戶顯示一條消息栋猖。顯示的消息應(yīng)非常簡(jiǎn)單责嚷,如“Hello Eric, would you like to learn some Python today?”。
name = 'eric'
print('hello ' + name +','+ 'would you like to learn some?Python today?')
2掂铐、調(diào)整名字的大小寫: 將一個(gè)人名存儲(chǔ)到一個(gè)變量中罕拂,再以小寫、大寫和首字母大寫的方式顯示這個(gè)人名全陨。
name= 'lucy'
new_name=name.upper()
print(new_name)? ? ? # 小寫轉(zhuǎn)大寫
new_name=name.lower()
print(new_name)? ? ? # 大寫轉(zhuǎn)小寫
new_name=name.capitalize()
print(new_name)? ? ? ?#首字母大寫
3爆班、名言: 找一句你欽佩的名人說的名言,將這個(gè)名人的姓名和他的名言打印出來辱姨。輸出應(yīng)類似于下面這樣(包括引號(hào)):Albert Einstein once said, “A person who never made a mistake never tried anything new.”
celebrity='韓愈'
str='“事業(yè)無窮年”'
print(celebrity+'曾說過柿菩,'+str)
4、名言2: 重復(fù)練習(xí)2-5雨涛,但將名人的姓名存儲(chǔ)在變量famous_person 中枢舶,再創(chuàng)建要顯示的消息,并將其存儲(chǔ)在變量message 中替久,然后打印這條消息凉泄。
celebrity='韓愈'
str='“事業(yè)無窮年”'
message=celebrity+'曾說過,'+str
print(message)
5蚯根、剔除人名中的空白: 存儲(chǔ)一個(gè)人名后众,并在其開頭和末尾都包含一些空白字符。務(wù)必至少使用字符組合"\t" 和"\n" 各一次。 打印這個(gè)人名蒂誉,以顯示其開頭和末尾的空白教藻。然后,分別使用剔除函數(shù)lstrip() 右锨、rstrip() 和strip() 對(duì)人名進(jìn)行處理括堤,并將結(jié)果打印出來。
name='小王'
name1='小\n王'
name2='小\t王'
print(name1)
print(name2)
name3 = name.center(6, '0')
print(name3)? ? ? ? ? ? ? ? 輸出結(jié)果為:00小王00
name3 = nameljust(6, '0')
print(name3)? ? ? ? ? ? ? ? 輸出結(jié)果為:小王0000
name3 = namerjust(6, '0')
print(name3)? ? ? ? ? ? ? ? 輸出結(jié)果為:0000小王