第四章 數(shù)據(jù)類型 (字符串钧汹、字節(jié))str

"""

第四章 數(shù)據(jù)類型 (字符串相满、字節(jié))str

"""

"""

字符串:就是由字符組成的序列层亿,字符串中的每一個(gè)元素還是字符串。

特性:字符串是不可變的序列類型立美。字符串的元素是有序的匿又。

"""

# 一、字符串的創(chuàng)建

# 三種方式

"""

單引號(hào)

雙引號(hào)

三引號(hào)

"""

# 使用單引號(hào)和雙引號(hào)創(chuàng)建字符串建蹄,使用方式幾乎一致

# 單引號(hào)和雙引號(hào)交替使用可以達(dá)到輸出對(duì)方的效果

s="helloworld"

s="i am 'ok'"

print(s)

s2='i am "ok"'

print(s2)

# 單引號(hào)和雙引號(hào)定義字符串碌更,一般都在一行定義 ,否則需要續(xù)行符(\)

a="引號(hào)和雙引號(hào)定義字符串洞慎,一般都在引號(hào)和雙引號(hào)定義字符串痛单, "\

"一般都在引號(hào)和雙引號(hào)定義字符串,一般都在引號(hào)和雙引號(hào)定義字符串劲腿,一般都在"

print(a)

b="天行健旭绒,君子以自強(qiáng)不息。\n地勢坤焦人,君子以厚德載物"

print(b)

#三引號(hào)定義字符串挥吵,自帶換行,但是三引號(hào)不是注釋花椭。

c="""

天行健忽匈,君子以自強(qiáng)不息。

地勢坤个从,君子以厚德載物

"""

print(c)

# 練習(xí):輸出一首詩脉幢,使用雙引號(hào)和三引號(hào)分別輸出歪沃。

# 定義空字符串嗦锐,不是None

str_null=""

print(type(str_null))

print(type(None))

# 二、字符串的轉(zhuǎn)義序列(將特殊的字符轉(zhuǎn)義)

s="i am 'ok'"

# 雙引號(hào)沪曙,單引號(hào)的轉(zhuǎn)義使用\,放到要轉(zhuǎn)義字符的前面

s="i am \"ok\""

print(s)

# \n 換行

# \r 回車

# \n\r

# window下:

# \r奕污,要回到當(dāng)前行的行首,不會(huì)換到下一行液走,如果直接輸出碳默,會(huì)將之前的內(nèi)容覆蓋。

print("aaaa\rbbbbb")

print("aaaa\n\rbbbbb")

#\n 缘眶,代表換行嘱根,換到當(dāng)前位置的下一行(常用)

print("aaa\nbbbb")

# r:在字符串定義的前面加r,能夠讓字符串原樣輸出

print(r"aaa\bbbbbb")

# 三巷懈、字符串的操作

"""

1. 運(yùn)算符

2. 索引

3. 切片

"""

# 1. 運(yùn)算符? +? *?? in? not in??? is? is not?? ==? >? < !=

# + 合并? 新創(chuàng)建字符串進(jìn)行合并

a="abc"

b="bcd"

print(a,b,a+b,a,b)

# * 重復(fù)该抒,返回的是新字符串

print(a*3,a)

print(a*3+b*2)

#in? not in 成員運(yùn)算符

print("ab"? in a)

print("ac"? in a)

# is? is not 身份運(yùn)算符

a="abc"

b="abc"

c=b

print(a is b)

print(c is a)

print(a ==b )

print(a ==c )

# 按元素進(jìn)行比較,按照元素的ascii碼進(jìn)行比較

# 逐個(gè)比較

print("abc"<"abcd")

print(ord("a"))

print(ord("b"))

# 2. 索引

# 獲取字符串中的單個(gè)字符串顶燕,需要使用索引

# 格式:字符串名[index]: index 可以是正數(shù)凑保、負(fù)數(shù)冈爹、0

# 第一個(gè)元素:索引從0開始

# 正數(shù):從左到右

# 負(fù)數(shù):從右到左,最后一個(gè)元素是-1

# 索引是不能越界欧引,越界會(huì)報(bào)異常频伤。

s="abcdefg"

print(s[0])

print(s[3])

print(s[-3])

# print(s[100])

# len(o):獲取字符串的長度

print(len(s))

# 索引范圍: [-len(s)---len(s)-1]

# 最后一個(gè)元素:s[len(s)-1]?? s[-1]

# 字符串中的元素不能修改

# s[2]="6"

# 3. 切片:獲得字符串中的多個(gè)元素(按照某一個(gè)規(guī)則獲得指定區(qū)域的元素)

# 格式:字符串名[start:end]

# 切片包含start,但是不包含end芝此,到end-1

# start 和end都可以取正數(shù)憋肖、負(fù)數(shù)、0

# 區(qū)別在于方向

# start:省略癌蓖,默認(rèn)是0

# end:省略瞬哼,默認(rèn)的len(s),千萬注意,不是-1

s="abcdefg"

print(s[0:3])? # end-start=截取的長度

# print(s[0:1],s[1:3])

print(s[-1:-3],"dddd")

print(s[-3:-1],"ccc")

print(s[:3],s[0:3])

print(s[1:],s[0:len(s)])

# print(s[1:],s[0:-1])

# 切片是新創(chuàng)建字符串(非整切片)

# 字符串的整切片指向的就是字符串本身的對(duì)象租副,不是新創(chuàng)建對(duì)象

s1=s[1:3]

print(s1,id(s1))

s2=s[:]

print(id(s[:]),id(s),id(s2))

#練習(xí):使用字符串的切片 對(duì)日期進(jìn)行獲取? 2018-08-20

d="2018-08-20"

year=d[:4]

print(year)

month=d[5:7]

print(month)

day=d[8:]

day=d[-2:]

print(day)

#4. 字符串的相關(guān)方法

st="abcdabcd"

# (1)count(str,start,end)統(tǒng)計(jì) 返回參數(shù)字符串在原串中出現(xiàn)的次數(shù)

# 當(dāng)不寫start和end參數(shù)時(shí)坐慰,默認(rèn)統(tǒng)計(jì)的是按原字符串統(tǒng)計(jì)

print(st.count("a"))

# start=1 end=5? 范圍從1---4

print(st.count("a",1,5))

# 如果只傳遞一個(gè)參數(shù) 那么認(rèn)為是start,結(jié)束默認(rèn)為len(st)? 范圍是從1--len(st)

print(st.count("a",1))

# 跟切片一樣用僧,當(dāng)索引(下標(biāo))超過范圍時(shí)结胀,不會(huì)報(bào)錯(cuò)。

print(st.count("a",20,50))

# (2) index 查找责循,如果查找到則返回原中的位置糟港,如果找不到會(huì)報(bào)錯(cuò)

# 默認(rèn)從左到右查找,查找第一次出現(xiàn)的位置

st="abcdabcd"

print(st.index("b"))

# print(st.index("b",2,5))

print(st.index("b",2))

# (3)find 查找院仿,返回查找內(nèi)容再原串中的位置秸抚,如果找不到不報(bào)錯(cuò),會(huì)返回-1

st="abcdabcd"

print(st.find("b"))

print(st.find("b",2,5))

# 如果查找的是子串歹垫,會(huì)返回子串中第一個(gè)字符出現(xiàn)的位置

st="abcdabcd"

print(st.find("bc"))

print(st.find("bd"))

# (4) join:拼接字符串:將序列中的各個(gè)元素按照字符串連接剥汤。

st="abcd"

a="-"

print(a.join(st))

# (5)replace: 替換:會(huì)新創(chuàng)建字符串進(jìn)行存儲(chǔ),替換結(jié)果是replace的返回值

# old:需要替換的內(nèi)容

# new:替換成的內(nèi)容

# count:替換的最大次數(shù)排惨,如果不寫吭敢,會(huì)將字符中符合的字符全部替換

# 會(huì)從左到右的順序,按照替換的次數(shù)進(jìn)行替換

st="abcdabcd"

print(st.replace("a","-",1))

print(st.replace("a","-",4),st)

#(6)strip 剪切暮芭,從兩端去掉指定的符號(hào)

st=" abcd? "

# strip參數(shù)不寫鹿驼,則默認(rèn)去掉空格

print(st.strip())

# 去掉兩端符合條件的字符串(按挨個(gè)檢索),一直去掉到不符合條件的位置辕宏。

st="aafbbcdeeafaf"

print(st.strip("a"))

print(st.strip("af"))

# 從左邊剪切

print(st.lstrip("af"))

# 從右側(cè)剪切

print(st.rstrip("af"))

#(7)split 切割:切割完的字符就沒有了畜晰。

# 按照切割的參數(shù),一分為二

# 返回值是列表

st="ab cd ef? gh d"

print(st.split(" "))

#如果split中不寫參數(shù)瑞筐,默認(rèn)按照空格切割凄鼻,會(huì)將所有的空格都切割掉。

print(st.split())

st="abababaabbaabb"

print(st.split("a"))

#(8)upper? lower

print("abcd".upper())

print("ABCDdd".lower())

# (9)isnumeric: 判斷是不是數(shù)值類型

print("8".isnumeric())

print("a".isnumeric())

#(10)isalpha: 判斷是不是字符

print("8".isalpha())

print("a".isalpha())

#(11)center(width,char)

#width:占位

#char: 填充的字符

s="hello world"

# 當(dāng)字符串長度是奇數(shù),填充會(huì)從右側(cè)開始

# 當(dāng)字符串長度是偶數(shù)野宜,填充會(huì)從左側(cè)開始

print(s.center(13,"*"))

s="hell"

print(s.center(5,"*"))



"""

字節(jié) (序列)bytes

字節(jié):由一些列的單字節(jié)組成

單字節(jié):占用8個(gè)數(shù)據(jù)位: 數(shù)字 特殊的符號(hào)? 英文字母等扫步。。匈子。不能存儲(chǔ)漢字

"""

# 00000000

# 00000001

# 11111111

# 最多存儲(chǔ)255種不同內(nèi)容


# 一河胎、字節(jié)創(chuàng)建

s="hello"

print(type(s))

# 定義字節(jié)跟字符串類似,但是需要在定義的單引號(hào)或者雙引號(hào)前面加b

b=b"hello"

print(type(b))

# b=b"中國"


# 二虎敦、字節(jié)的操作:參看字符串

# 運(yùn)算符游岳、索引、切片

print(b"abc"+b"bcd")

print(b"abc"

# is ==

b=b"hello"

b1=b"hello"

b2=b1

print(b == b1)

print(b is b1)

print(b2 is b1)

print(id(b),id(b1),id(b2))


# 索引輸出的是ascii

print(b[0])

# 切片不是ascii碼

print(b[0:2])



# 相關(guān)方法

b=b"hello"

print(b.count(b"h"))

print(b.split(b"e"))


"""

格式化

"""

print("hello"+" world")

print("hello"+ str(8))

name="tom"

score=90

# print(name+"的成績是"+score)


# 三種:

"""

1. %

2. format

3. 3.6之后可以是用f

"""


# 1. %

# %s === str()

# %s代表一個(gè)變量占位其徙,后面如果有多個(gè)變量胚迫,是依次填入

name="tom"

score=90

print("%s的成績是%s" % (name,score))

print("成績是%s" % score)


#2.format

#{} 代表一個(gè)變量占位,后面有多個(gè)變量依次填入

s="{}的成績是{}"

s="{0}的成績是{1}"

print(s.format(name,score))

s="{1}的成績是{0}"

print(s.format(score,name))


#3.f

name="tom"

score=90

print(f"{name}的成績是{score}")

print("i am 'ok'? and 'addf'")

print(len(""))

print(bool("111"))

print("akdfjalj\\djdlkjf")

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唾那,一起剝皮案震驚了整個(gè)濱河市访锻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闹获,老刑警劉巖期犬,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異避诽,居然都是意外死亡龟虎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沙庐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲤妥,“玉大人,你說我怎么就攤上這事拱雏∶薨玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵古涧,是天一觀的道長垂券。 經(jīng)常有香客問我花盐,道長羡滑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任算芯,我火速辦了婚禮柒昏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘熙揍。我一直安慰自己职祷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著有梆,像睡著了一般是尖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泥耀,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天饺汹,我揣著相機(jī)與錄音,去河邊找鬼痰催。 笑死兜辞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的夸溶。 我是一名探鬼主播逸吵,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缝裁!你這毒婦竟也來了扫皱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤捷绑,失蹤者是張志新(化名)和其女友劉穎啸罢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胎食,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扰才,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厕怜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衩匣。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粥航,靈堂內(nèi)的尸體忽然破棺而出琅捏,到底是詐尸還是另有隱情,我是刑警寧澤递雀,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布柄延,位于F島的核電站金麸,受9級(jí)特大地震影響汽抚,放射性物質(zhì)發(fā)生泄漏秋泄。R本人自食惡果不足惜退个,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一庄蹋、第九天 我趴在偏房一處隱蔽的房頂上張望览徒。 院中可真熱鬧哀蘑,春花似錦顿苇、人聲如沸撩满。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昭躺,卻和暖如春忌锯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背领炫。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國打工汉规, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人驹吮。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓针史,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碟狞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子啄枕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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