06 - Python 中的字符串

一校坑、前言

大家好轧飞,我是更新看緣分的李鵬李先生衅鹿。

本次課程主講 Python 中的字符串,閑話(huà)少說(shuō)过咬,直接開(kāi)始大渤。

本文約3500字,閱讀需15分鐘左右掸绞,祝大家閱讀愉快泵三。

image

二、字符串

在學(xué)習(xí)今天的內(nèi)容之前衔掸,我們要首先了解一下到底什么是字符串烫幕。

我們平常說(shuō)的話(huà),和別人溝通交流的語(yǔ)言其實(shí)就是字符串敞映。

只不過(guò)在 Python 當(dāng)中较曼,字符串演變成了一種數(shù)據(jù)類(lèi)型,但是我們雖然知道了字符串演變成了一種數(shù)據(jù)類(lèi)型振愿,

可是這種類(lèi)型在計(jì)算機(jī)當(dāng)中是如何來(lái)使用的呢捷犹?我想在計(jì)算機(jī)中使用中文行不行呢?

接下來(lái)我們首先來(lái)探究一下 Python 中編碼格式的問(wèn)題冕末。

2.1 ASCII 編碼

首先聲明萍歉,計(jì)算機(jī)底層當(dāng)中不能接收中文,甚至連文本都無(wú)法處理档桃。

必須要轉(zhuǎn)換成數(shù)字來(lái)進(jìn)行表示枪孩,也就是我們常說(shuō)的字節(jié)。

需要注意:

  • 1 字節(jié)(byte) = 8 比特(bit)
  • 一個(gè)字節(jié)能表示的最大的整數(shù)就是255(即二進(jìn)制11111111)
  • 兩個(gè)字節(jié)可以表示的最大整數(shù)是65 535
  • 四個(gè)字節(jié)可以表示的最大整數(shù)是4 294 967 295

最開(kāi)始的計(jì)算機(jī)藻肄,就只保存了127個(gè)字符在計(jì)算機(jī)里面蔑舞,其中包含了數(shù)字、字母嘹屯、特殊符號(hào)等等攻询。

而這個(gè)表則統(tǒng)稱(chēng)為 ASCII編碼

其中我們需要注意的就是我們需要記住的就只有其中三個(gè)抚垄。

十進(jìn)制表示 內(nèi)容 含義
48 0 數(shù)字 0
65 A 字母 A (大寫(xiě))
97 a 字母 a (小寫(xiě))

通過(guò)記住這三個(gè)內(nèi)容,我們可以分別推出 0 ~ 9谋逻、A ~ Z呆馁、a ~ z 的 ASCII 編碼數(shù)字。

2.2 Unicode

既然有了 ASCII 編碼毁兆,那是不是就完事大吉了呢浙滤?

當(dāng)然不是,如果中國(guó)有自己的編碼表(GB2312編碼)气堕,日本也有自己的編碼表(Shift_JIS)纺腊,韓國(guó)也有韓文編碼表(Euc-kr)畔咧,那豈不是天下大亂?

你在中國(guó)寫(xiě)的東西揖膜,到日本誓沸,到韓國(guó)就直接變成了一堆亂碼,那我相信壹粟,我們的工作生活將會(huì)受到極大的影響拜隧。

那么這時(shí)候我們?cè)撛趺崔k呢?

這時(shí)候國(guó)際標(biāo)準(zhǔn)化組織(ISO)多語(yǔ)言軟件制造商組成的統(tǒng)一碼聯(lián)盟站了出來(lái)趁仙,他們聯(lián)合其他機(jī)構(gòu)進(jìn)行了統(tǒng)一化的工作洪添,而統(tǒng)一化的結(jié)果就是我們熟知的 Unicode 編碼

通過(guò) Unicode雀费,就可以實(shí)現(xiàn)在不同國(guó)家之間干奢,可以將文字和語(yǔ)言相通啦。

但是部分國(guó)家使用的都是漢字盏袄,而某些國(guó)家日常通信使用的都是英文忿峻,這里面其實(shí)有很大的差別。

要知道漢字已經(jīng)超出了ASCII編碼的范圍貌矿,并且大部分需要使用兩個(gè)字節(jié)來(lái)表示炭菌,有些甚至需要四個(gè)四節(jié),而英文只需要一個(gè)字節(jié)即可逛漫。

字母A用ASCII編碼是十進(jìn)制的65黑低,二進(jìn)制的01000001

字符0用ASCII編碼是十進(jìn)制的48酌毡,二進(jìn)制的00110000克握,注意字符'0'和整數(shù)0是不同的;

漢字已經(jīng)超出了ASCII編碼的范圍枷踏,用Unicode編碼是十進(jìn)制的20013菩暗,二進(jìn)制的01001110 00101101

那我們是不是就應(yīng)該在書(shū)寫(xiě)中文相關(guān)的內(nèi)容時(shí)旭蠕,需要使用 Unicode 編碼停团,

書(shū)寫(xiě)通篇是英文或者數(shù)字的時(shí)候,應(yīng)該優(yōu)先使用 ASCII 編碼掏熬。

這時(shí)候我們就要講到一個(gè)新的標(biāo)準(zhǔn)佑稠,UTF-8啦。

2.3 UTF-8

由于為了要節(jié)省空間旗芬,應(yīng)該使用ASCII 編碼的內(nèi)容就不應(yīng)該去使用 Unicode 編碼舌胶。

A 的 ASCII   編碼:01000001
A 的 Unicode 編碼:00000000 01000001

那計(jì)算機(jī)怎么區(qū)分什么時(shí)候應(yīng)該使用Unicode 編碼,什么時(shí)候使用 ASCII 編碼呢疮丛?

為了解決這個(gè)問(wèn)題幔嫂,出現(xiàn)了一種中間格式的字符集辆它,即UTF(Unicode Transformation Format)。

常見(jiàn)的UTF格式有:

  • UTF-7
  • UTF-7.5
  • UTF-8
  • UTF-16
  • UTF-32

其中我們需要重點(diǎn)了解的就是 UTF-8編碼履恩,即“可變長(zhǎng)的編碼”锰茉。

UTF-8編碼把一個(gè)Unicode字符根據(jù)不同的數(shù)字大小編碼成1-6個(gè)字節(jié),

常用的英文字母被編碼成1個(gè)字節(jié)似袁,漢字通常是3個(gè)字節(jié)洞辣,很生僻的字符會(huì)被編碼成4-6個(gè)字節(jié)。

這里需要注意一點(diǎn):

Python的誕生比Unicode標(biāo)準(zhǔn)發(fā)布的時(shí)間還要早昙衅,所以最早的Python只支持ASCII編碼扬霜,

普通的字符串'ABC'在Python內(nèi)部都是ASCII編碼的。

而使用UTF-8編碼還有一個(gè)額外的好處而涉,就是ASCII編碼實(shí)際上可以被看成是UTF-8編碼的一部分著瓶,

所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續(xù)工作啼县。

這也就是為什么我們每次在使用中文的時(shí)候都需要在文件開(kāi)頭聲明 UTF-8 啦材原。

2.4 字符串的“切片”

當(dāng)我們弄明白編程中令人苦惱的編碼格式之后,我們就可以去使用我們的字符串啦季眷。

例如我現(xiàn)在聲明一個(gè)變量 name余蟹。

name = "lipeng"

那有一天我的學(xué)生霏姐想惡搞一下我,想把我名字中的一部分抽出來(lái)子刮,這時(shí)候其實(shí)就要用到“切片”啦威酒。

需要注意,字符串挺峡、列表葵孤、元組都支持切片操作。

首先先來(lái)說(shuō)一下切片的語(yǔ)法:

切片的語(yǔ)法:[起始:結(jié)束:步長(zhǎng)]

注意: 選取的區(qū)間屬于左閉右開(kāi)型橱赠,即從"起始"位開(kāi)始尤仍,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身)。

那接下來(lái)來(lái)一個(gè)實(shí)際例子狭姨。

Last login: Tue Aug  7 09:27:48 on ttys000
?  ~ python

>>> name = "lipeng"
>>> print(name[0:3])
lip
>>> 

我們?nèi)〉搅讼聵?biāo)0~2 的字符宰啦,那接下來(lái)我們測(cè)試一下0~4的字符。

Last login: Tue Aug  7 09:27:48 on ttys000
?  ~ python

>>> name = "lipeng"
>>> print(name[0:5])
lipen
>>> 

再來(lái)一個(gè)3~4的字符饼拍。

Last login: Tue Aug  7 09:27:48 on ttys000
?  ~ python

>>> name = "lipeng"
>>> print(name[3:5])
en
>>> 

那如果我們需要從某一個(gè)位置之后所有的數(shù)據(jù)呢赡模?

Last login: Tue Aug  7 09:27:48 on ttys000
?  ~ python

>>> name = "lipeng"
>>> print(name[2:])
peng
>>> 

再假設(shè),我們現(xiàn)在不知道總共內(nèi)容有多長(zhǎng)惕耕,但是知道需要截取到末尾的第幾個(gè)纺裁,這時(shí)候應(yīng)該怎么辦呢诫肠?

Last login: Tue Aug  7 09:27:48 on ttys000
?  ~ python

>>> name = "lipeng"
>>> print(name[1:-1])
ipen
>>> 

如果你覺(jué)得自己已經(jīng)明白切片的用法的話(huà)司澎,可以自己試試以下題目:

>>> print(name[:3])
lip
>>> print(name[::2])
lpn
>>> print(name[5:1:2])
"" # 空
>>> print(name[1:5:2])
ie
>>> print(name[::-2])
gei
>>> print(name[5:1:-2])
ge
>>> 

2.5 字符串中常用的方法

2.5.1 ord( ) : 獲取字符的整數(shù)表示

?  ~ python

>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48
>>> 

2.5.2 chr( ):編碼轉(zhuǎn)換為對(duì)應(yīng)的字符

>>> chr(69)
'E'
>>> chr(103)
'g'
>>> 

2.5.3 find( ):查詢(xún)是否有對(duì)應(yīng)文本

檢測(cè) str 是否包含在 mystr中欺缘,如果是返回開(kāi)始的索引值,否則返回-1挤安。

標(biāo)準(zhǔn)語(yǔ)法:mystr.find(str, start=0, end=len(mystr))

>>> name = "my name is MR_LP"
>>> name.find("MR_LP")
11
>>> 

2.5.4 index( ):查詢(xún)是否有對(duì)應(yīng)文本

檢測(cè) str 是否包含在 mystr中谚殊,如果是返回開(kāi)始的索引值,否則報(bào)錯(cuò)

標(biāo)準(zhǔn)語(yǔ)法:mystr.index(str, start=0, end=len(mystr))

>>> name = "my name is MR_LP"
>>> name.index("MR_LP")
11
>>> name.index("ZZZ")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> 

2.5.5 count( ):返回字符出現(xiàn)的次數(shù)

返回 str在start和end之間 在 mystr里面出現(xiàn)的次數(shù)

標(biāo)準(zhǔn)語(yǔ)法:mystr.count(str, start=0, end=len(mystr))

>>> name = "my name is MR_LP"
>>> name.count('m')
2
>>> 

2.5.6 replace( ):替換文本蛤铜,替換不超過(guò) count 次

把 mystr 中的 str1 替換成 str2,如果 count 指定嫩絮,則替換不超過(guò) count 次.

標(biāo)準(zhǔn)語(yǔ)法:mystr.replace(str1, str2, mystr.count(str1))

>>> name = "my name is MR_LP"

>>> name.replace("MR_LP","233")
'my name is 233'

>>> name.replace("m","233",1)
'233y name is MR_LP'
>>> 

2.5.7 split( ):按照分隔符將字符串切片

以 str 為分隔符切片 mystr,如果 maxsplit有指定值围肥,則僅分隔 maxsplit 個(gè)子字符串

標(biāo)準(zhǔn)語(yǔ)法:mystr.split(str=" ", 2)

>>> name = "my name is MR_LP"

>>> name.split(' ')
['my', 'name', 'is', 'MR_LP']

>>> name.split(' ',2)
['my', 'name', 'is MR_LP']
>>> 

2.5.8 capitalize( ):字符串首字母大寫(xiě)

把字符串的第一個(gè)字符大寫(xiě)

標(biāo)準(zhǔn)語(yǔ)法:mystr.capitalize()

>>> name = "my name is MR_LP"

>>> name.capitalize()
'My name is mr_lp'
>>> 

2.5.9 title( ):字符串中每個(gè)單詞首字母大寫(xiě)

把字符串的每個(gè)單詞首字母大寫(xiě)

標(biāo)準(zhǔn)語(yǔ)法:name.title()

>>> name = "my name is MR_LP"

>>> name.title()
'My Name Is Mr_Lp'
>>> 

2.5.10 startswith( ):檢測(cè)字符串是否以某內(nèi)容開(kāi)頭

檢查字符串是否是以 obj 開(kāi)頭, 是則返回 True剿干,否則返回 False

標(biāo)準(zhǔn)語(yǔ)法:mystr.startswith(obj)

>>> name = "my name is MR_LP"

>>> name.startswith('my')
True
>>> name.startswith('My')
False
>>> 

2.5.11 endswith( ):檢測(cè)字符串是否以某內(nèi)容結(jié)尾

檢查字符串是否是以 obj 結(jié)尾, 是則返回 True,否則返回 False

標(biāo)準(zhǔn)語(yǔ)法:mystr.endswith(obj)

>>> name = "my name is MR_LP"

>>> name.endswith('LP')
True
>>> name.endswith('lp')
False
>>> 

2.5.12 lower( ):大寫(xiě)字符為小寫(xiě)

轉(zhuǎn)換 mystr 中所有大寫(xiě)字符為小寫(xiě)

標(biāo)準(zhǔn)語(yǔ)法:mystr.lower()

>>> name = "my name is MR_LP"

>>> name.lower()
'my name is mr_lp'
>>> 

2.5.13 所有大寫(xiě)字符為大寫(xiě)

轉(zhuǎn)換 mystr 中所有大寫(xiě)字符為大寫(xiě)

標(biāo)準(zhǔn)語(yǔ)法:mystr.upper()

>>> name = "my name is MR_LP"

>>> name.upper()
'MY NAME IS MR_LP'
>>> 

2.5.14 ljust( ):左對(duì)齊并填充字符串

返回一個(gè)原字符串左對(duì)齊,并使用空格填充至長(zhǎng)度 width 的新字符串

標(biāo)準(zhǔn)語(yǔ)法:mystr.ljust(width)

>>> s = "lipeng"

>>> s.ljust(10)
'lipeng    '
>>> 

2.5.15 rjust( ):右對(duì)齊并填充字符串

返回一個(gè)原字符串右對(duì)齊,并使用空格填充至長(zhǎng)度 width 的新字符串

標(biāo)準(zhǔn)語(yǔ)法:mystr.rjust(width)

>>> s = "lipeng"

>>> s.rjust(10)
'    lipeng'
>>> 

2.5.16 center( ):居中對(duì)齊并填充字符串

返回一個(gè)原字符串居中,并使用空格填充至長(zhǎng)度 width 的新字符串

標(biāo)準(zhǔn)語(yǔ)法:mystr.center(width)

>>> s = "lipeng"

>>> s.center(20)
'       lipeng       '
>>> 

2.5.17 lstrip( ):清除左側(cè)空白字符

刪除 mystr 左邊的空白字符

標(biāo)準(zhǔn)語(yǔ)法:mystr.lstrip()

>>> str = '        lipeng        '

>>> str.lstrip()
'lipeng        '
>>> 

2.5.18 rstrip( ):清除右側(cè)空白字符

刪除 mystr 右邊的空白字符

標(biāo)準(zhǔn)語(yǔ)法:mystr.rstrip()

>>> str = '        lipeng        '

>>> str.rstrip()
'        lipeng'
>>> 

2.5.19 strip( ):清除左右兩側(cè)空白字符

刪除 mystr 兩側(cè)的空白字符

標(biāo)準(zhǔn)語(yǔ)法:mystr.strip()

>>> str = '        lipeng        '

>>> str.strip()
'lipeng'
>>> 

2.5.20 rfind( ):從右側(cè)查詢(xún)是否有對(duì)應(yīng)文本

從右側(cè)查詢(xún)是否有對(duì)應(yīng)文本

標(biāo)準(zhǔn)語(yǔ)法:mystr.rfind(str, start=0,end=len(mystr) )

>>> name = "lipeng"

>>> name.rfind("p")
2
>>> 

2.5.21 rindex( ):從右側(cè)查詢(xún)是否有對(duì)應(yīng)文本

和 index( ) 相同穆刻,但是是從右側(cè)開(kāi)始

標(biāo)準(zhǔn)語(yǔ)法:mystr.rindex( str, start=0,end=len(mystr))

>>> name = "lipeng"

>>> name.rindex("e")
3
>>> name.rindex("LI")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> 

2.5.22 partition( ):以對(duì)應(yīng)文本將字符串分割成三部分

把mystr以str分割成三部分,str前置尔,str和str后

標(biāo)準(zhǔn)語(yǔ)法:mystr.partition(str)

>>> s = "i'm lipeng, you can call me MR_LP"

>>> s.partition("can")
("i'm lipeng, you ", 'can', ' call me MR_LP')
>>> 

2.5.23 rpartition( ):從右側(cè)以對(duì)應(yīng)文本將字符串分割成三部分

從右側(cè)把mystr以str分割成三部分,str前,str和str后

標(biāo)準(zhǔn)語(yǔ)法:mystr.rpartition(str)

>>> s = "i'm lipeng, you can call me MR_LP"

>>> s.rpartition("can")
("i'm lipeng, you ", 'can', ' call me MR_LP')
>>> 

2.5.24 splitlines( ):按行分割

按照行分隔氢伟,返回一個(gè)包含各行作為元素的列表

標(biāo)準(zhǔn)語(yǔ)法:mystr.splitlines()

>>> s = "MR_LP.\nmr_lp"

>>> print(s)
MR_LP.
mr_lp

>>> s.splitlines()
['MR_LP.', 'mr_lp']
>>> 

2.5.25 isalpha( ):判斷是否全部是字母

如果 mystr 所有字符都是字母 則返回 True,否則返回 False

標(biāo)準(zhǔn)語(yǔ)法:mystr.isalpha()

>>> s = "abc"
>>> s.isalpha()
True

>>> s = "123"
>>> s.isalpha()
False

>>> s = "abc 123"
>>> s.isalpha()
False

2.5.26 isdigit( ):判斷是否全部是數(shù)字

如果 mystr 只包含數(shù)字則返回 True 否則返回 False.

標(biāo)準(zhǔn)語(yǔ)法:mystr.isdigit()

>>> s = "abc"
>>> s.isdigit()
False

>>> s = "123"
>>> s.isdigit()
True

>>> s = "abc123"
>>> s.isdigit()
False

2.5.27 isalnum( ):判斷是否全部是數(shù)字或字母

如果 mystr 所有字符都是字母或數(shù)字則返回 True,否則返回 False

標(biāo)準(zhǔn)語(yǔ)法:mystr.isalnum()

>>> s = "123"
>>> s.isalnum()
True

>>> s = "abc"
>>> s.isalnum()
True

>>> s = "abc123"
>>> s.isalnum()
True

>>> s = "abc 123"
>>> s.isalnum()
False

2.5.28 isspace( ):判斷是否只包含空格

如果 mystr 中只包含空格榜轿,則返回 True,否則返回 False.

標(biāo)準(zhǔn)語(yǔ)法:mystr.isspace()

>>> s = "abc123"
>>> s.isspace()
False

>>> s = ""
>>> s.isspace()
False

>>> s = " "         # 空格
>>> s.isspace()
True

>>> s = "       "   # tab 鍵
>>> s.isspace()
True

2.5.28 join( ):判斷是否只包含空格

如果 mystr 中只包含空格朵锣,則返回 True谬盐,否則返回 False.

標(biāo)準(zhǔn)語(yǔ)法:mystr.isspace()

>>> s = " "
>>> li = ["my","name","is","LIPENG"]
>>> s.join(li)
'my name is LIPENG'

>>> s = "_"
>>> li = ["my","name","is","LIPENG"]
>>> s.join(li)
'my_name_is_LIPENG'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市诚些,隨后出現(xiàn)的幾起案子飞傀,更是在濱河造成了極大的恐慌,老刑警劉巖泣刹,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件助析,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡椅您,警方通過(guò)查閱死者的電腦和手機(jī)外冀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掀泳,“玉大人雪隧,你說(shuō)我怎么就攤上這事≡倍妫” “怎么了脑沿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)马僻。 經(jīng)常有香客問(wèn)我庄拇,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任措近,我火速辦了婚禮溶弟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瞭郑。我一直安慰自己辜御,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布屈张。 她就那樣靜靜地躺著擒权,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阁谆。 梳的紋絲不亂的頭發(fā)上碳抄,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音场绿,去河邊找鬼纳鼎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛裳凸,可吹牛的內(nèi)容都是我干的贱鄙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼姨谷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼逗宁!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起梦湘,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞎颗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后捌议,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體哼拔,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年瓣颅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倦逐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宫补,死狀恐怖檬姥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粉怕,我是刑警寧澤健民,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站贫贝,受9級(jí)特大地震影響秉犹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一崇堵、第九天 我趴在偏房一處隱蔽的房頂上張望悦陋。 院中可真熱鬧,春花似錦筑辨、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至还绘,卻和暖如春楚昭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拍顷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工抚太, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昔案。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓尿贫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親踏揣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庆亡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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