python學習筆記

python===### 地址1. mac 下python 2.7的地址 /Library/Python/2.7/3.6/Library/Frameworks/Python.framework/Versions/3.6/- 避免循環(huán)導(dǎo)入依賴的方法 依賴放在最后面------# 正則表達式+表示至少一個字符{n}表示n個字符 *表示任意個字符?表示0個或一個字符.可以匹配任何字符\w匹配字母\d匹配數(shù)字\s匹配一個空格r代表正則表達式^表示行的開頭求妹,$表示行的結(jié)束\d$必須以數(shù)字結(jié)束\w$必須以字母結(jié)束多加一個\代表轉(zhuǎn)義字符'ABC\\-001'匹配:abc\001\d{3} 可以匹配:010, 230,123\s+ 表示至少一個空格\s{4}表示至少4個空格\d{3,8} 表示3到8個數(shù)字\d{3}\s+\d{3,8}\d{3} 三個數(shù)字雁歌,\s匹配一個空格 \d{3-8}3-8個數(shù)字## 進階 [0-9a-zA-Z\_] 匹配一個數(shù)字虑瀑,一個字母赂蕴,或者下劃線[0-9a-zA-Z\_]+ 匹配至少由一個數(shù)字字母或者下劃線組成的字符串[a-zA-Z\_][0-9a-zA-Z\_]匹配由字母或者下劃線開頭禀晓,后接任意個由一個數(shù)字构灸,字母澜躺,下劃線組成的字符串### 方法- match 表示是否匹配瞒斩,如果匹配 返回match對象增拥,否則返回None- split() 方法用于切割 'ab c'.split(' ')- ###### finditer : 返回string中所有與pattern相匹配的全部字串啄巧,返回形式為迭代器。 ### 提取子字符串sd=re.match(r'^(\d{3})-(\d{6})','021-2345678')### 輸出第幾組函數(shù)print(sd.group(1))輸出第一組函數(shù)### 替換字符串re.subpath = re.sub('[_]', '/', url1)將_全部替換為/### |是或的意思掌栅,匹配到兩個的任何一個都行sd=re.compile('| {7}')## 預(yù)編譯正則表達式每次使用都要編譯所以先預(yù)編譯一下### 兩個字符串 或匹配sd=re.compile('/places/default/(index|view)/.*?[\d]$')#### 正則Demo```find_id = re.compile('\w{0,5}-\w{0,5}-\w{0,7}-\d{0,3}')str='fan-jia-liang-57'```## numpy函數(shù): 1.shape函數(shù):計算數(shù)組大小 2.mat函數(shù) 將目標數(shù)據(jù)轉(zhuǎn)換為矩陣 3.zero 函數(shù) 將數(shù)組初始化為0 4.numpy.array將list轉(zhuǎn)換為numpy的數(shù)組 5.random ranint 取隨機數(shù) 6.去掉字符串最后的換行符:line=line[:-1] 7.numpy比較兩個array是否全部相同秩仆, if(arry1==array2).all() print(true)### python讀取文件的三種方法:- f = open("foo.txt") # 返回一個文件對象 line = f. adline() # 調(diào)用文件的 readline()方法 while line: print line, # 后面跟 ',' 將忽略換行符 #####print(line, end = '')   # 在 Python 3中使用 line = f.readline() f.close()- for line in open("foo.txt"): print line,- f = open("c:\\1.txt","r") lines = f.readlines()#讀取全部內(nèi)容 for line in lines print line python 往txt寫內(nèi)容: with open('a.txt','w') as f: for i in a: f.write(i) ### python 字符亂碼問題 ### 字符串編碼encoding 將str轉(zhuǎn)換為機器碼decoding 將機器碼轉(zhuǎn)換為str#### plt 亂碼- 在/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages下- 在py中加 plt.rcParams['font.sans-serif']=['SimHei']將simhei字體下載放在pyplot中即可解決亂碼#### requests亂碼# list- list.index()求元素的下標- str list和 int list 互相轉(zhuǎn)換 nums=[int (i) for i in nums]- s = re.findall("\d+",nums)找出字符串中所有數(shù)字- list1 = ["這", "是", "一個", "測試"] for index, content in enumerate(list1): print (index) print (content)- 元組轉(zhuǎn)List tuple =list(tuple)- list 去除重復(fù)元素 list=set(list)- 查找元素 a.index(s) 查找s元素的下標位置- 逆序輸出list reversed(a)- list的復(fù)制 ``` import copy a=[123,234,677] b=a[:] print(b) c=copy.deepcopy(a) print(c) ```### tuple1. 對于不可變類型,不管是深拷貝還是淺拷貝猾封,都只是創(chuàng)建一個引用2. 元組為不可變類型3. 對于str類型澄耍,如果兩個str相同,那么是is和=的晌缘,這是python的優(yōu)化方法,善意的謊言逾苫。。枚钓。4. 在小的整數(shù)上也會采取這種措施 停留interning5. ### dict#### 散列方法獲得dict[key]的值铅搓,首先調(diào)用hash(key)來計算key的散列值,把這個值的低幾位數(shù)字作為偏移量搀捷,在散列表中查找表元星掰,如果表元是空的多望,就拋出異常。 如果不為空氢烘,則檢查key是否等于found_key如果相等則返回結(jié)果怀偷。如果不相等,發(fā)生散列沖突播玖,發(fā)生的原因:在尋找元素值時椎工,如果發(fā)生了沖突,算法會在散列值中另外取幾位蜀踏。然后將新得到的數(shù)字當做索引來尋找表元维蒙。 如果找到的為空,拋出keyerror果覆,如果沖突颅痊,重復(fù)剛才步驟#### 帶來的后果##### dict 的key值必須是可散列的, 也就是說是固定不變的,str,bytes 還有數(shù)字類型##### 消耗的空間比較大##### 鍵值的查詢很快鍵值的次序取決于添加順序?qū)τ诓淮嬖诘膁ict 會拋出keyerror,解決方法:重寫missing方法- 字典sd局待, 設(shè)置元素sd[i]=i,得到元素 sd.getvalue(i)- 儲存 like_dict['a']=we- 得到dict類型的key和value print(dict.keys()) print(dict.values())- 遍歷字典 for (k,v) in dict.items() 1. #### list 和tuple 的相同點和不同點 - list和tuple 可以相互轉(zhuǎn)換斑响,list可變,tuple不可變 - tuple比list更快更安全 - tuple是可以hash的,list不行 2. dict的內(nèi)部實現(xiàn)钳榨,算法的實現(xiàn) tuple 和list作為dict 的key值有什么問題: 3. python的多進程舰罚,協(xié)程實現(xiàn)和多線程 GIL全局鎖 #### 查看dict 是否有某個key值 dict.get(key)- 字典的復(fù)制 dict.copy()- python字符串反轉(zhuǎn) str[::-1]- extends 函數(shù)a=[1,2,3,4]b=[1,2,3,4,5]a.extend(b for i in b not in a)a=[1,2,3,4,1,2,3,4,5]### 字典20.判斷一個屬性是否在字典中 print d.has_key('site') if 'sa' in dic.keys(): 應(yīng)該用后面的,python3不能用前面的了?21: if value[i].get(each[i]) == None: value[i][each[i]] = 1 else: value[i][each[i]] += 122.import sys   sys.version  import django  django.VERSION 查看各種安裝包的版本23.啟動ipython python3 -m IPython notebook-----------# python 的魔法函數(shù)## list__set__item(): __get__item():__ len __ 求元素的長度__delete_item()通過類似于list的用法,實現(xiàn)修改和插入薛耻。 通過對方法的重寫营罢,方便## function__repr ___ 將對象用字符串表示出來,如果沒實現(xiàn)昭卓,輸出類似于__str __是在調(diào)用 str()函數(shù)時,或者print 時才會使用

__doc__在方法中''' ''' 寫的注釋? 可以得到

__call__ 調(diào)用函數(shù)的對象時默認執(zhí)行的方法瘟滨,可以重寫

### 下劃線

單下劃線候醒,私有變量? 不能通過導(dǎo)入來調(diào)用

雙下劃線,受保護變量 子類也不能調(diào)用

前后下劃線: 系統(tǒng)定義的名字

## 函數(shù)式編程

map(func,rang(2)) 將func函數(shù)的返回值寫入list,然后將list返回

print reduce(lambda x, y: x * y, range(1, 5)) 將1,2傳入然后計算出結(jié)果杂瘸,x=2,y=3,然后將結(jié)果給x,再找一個數(shù)給

---------------

### pickle

1.pickle存中文字符

? ? pickle.dump(json.dumps(data,ensure_ascii=False),output)

2. pickle 寫文件時必須指定文件名

# I/O操作

####? 按行讀取

```import csv

with open('A.csv','rb') as csvfile:

reader = csv.reader(csvfile)

rows = [row for row in reader] print rows

```

#### 一次讀取為str

with open('html.txt','r') as opener:

html=opener.read()

#### 按行讀取倒淫,忽略首行元素

headers=next(reader)

## 追加寫入csv文件

with open("filename.csv","a+") as csvfile:

rU 或 Ua 以讀方式打開, 同時提供通用換行符支持 (PEP 278)

a+表示追加寫入

w? ? 以寫方式打開,

a? ? 以追加模式打開 (從 EOF 開始, 必要時創(chuàng)建新文件)

r+? ? 以讀寫模式打開

w+? ? 以讀寫模式打s開 (參見 w )

a+? ? 以讀寫模式打開 (參見 a )

rb? ? 以二進制讀模式打開

wb? ? 以二進制寫模式打開 (參見 w )

ab? ? 以二進制追加模式打開 (參見 a )

rb+? ? 以二進制讀寫模式打開 (參見 r+ )

wb+? ? 以二進制讀寫模式打開 (參見 w+ )

ab+? ? 以二進制讀寫模式打開 (參見 a+ )

## csv

將list寫入csv文件

writer=csv.writer(open('ip_message.csv','w'))

### 按行寫入

writer.writerow(fields)

for i in result:

? ? writer.writerow((i,result[i]))

#### 將dict 寫入csv文件

```

with open('dict.csv', 'wb') as csv_file:

? ? writer = csv.writer(csv_file)

? ? for key, value in mydict.items():

? ? ? writer.writerow([key, value])

```

#### 將tuple 寫入csv

```

def write_in_csv(tuple):

? ? with open('message.csv', 'a')as opener:

? ? ? ? writers=csv.writer(opener)

? ? ? ? writers.writerow(tuple)

```

## 文件目錄和文件讀寫

```

print(__file__)

print(os.path.abspath(__file__))

上面文件目錄

path=os.path.abspath(os.path.dirname(__file__))

image_path=os.path.join(path,'dataset')

# 將目錄下文件名轉(zhuǎn)換為List

file=os.listdir(image_path)

```

# yeild

## 回調(diào)函數(shù)

將一個函數(shù)以參數(shù)形式傳到另一個函數(shù)中

--------

# 輸出

## 輸出格式

print ('a%sb%s'%(a,b))

### format

print('好的代理:{}'.format(each))

#### 多個format

print("sd{1}{0}".format(b,a))

----------https://www.baidu.com/s?wd=14.118.254.90

將變量放在字符串中輸出

```

cc=China

url='{}/{cc}/{cc}.gif'.format(BASE_URL,cc=cc.lower())

http://flupy.org/data/flags/china/china.gif

```

## 不換行輸出

pyhton2:

## 編碼

中文無法顯示的話

i.decode(encoding='utf-8')

--------

# Exception

## raise

類似于java 中的throw? 可以根據(jù)情況自己拋出異常

if response.code==200:

? ? raise RuntimeError("wwe")

except RuntimeError as e:

? ? print(e.args)

ValueError 數(shù)據(jù)轉(zhuǎn)換異常

IndexError 數(shù)組下標異常

在異常中加的參數(shù)作為args參數(shù)

### 自定義異常類

class OutboundsError(Exception):

? ? def __init__(self,errormsg):

? ? ? ? self.errormsg=errormsg

? ? def __str__(self):

? ? ? ? print("調(diào)用了這里")

? ? ? ? return self.errormsg

當打印對象時會調(diào)用 __ str__ 方法

### except

多個異常:

(KeyError,FilenotFoundError) as e:

## 配置logging

首先new一個handler

RotatingFileHandler

然后添加到app.logger

------

# 日期和日歷

## datetime

```

a = datetime(2012, 9, 23)

```

from datetime import datetime

獲得過幾天的日期

yesterday = today - datetime.timedelta(days=1) #用今天日期減掉時間差败玉,參數(shù)為1天敌土,獲得昨天的日期

tomorrow = today + datetime.timedelta(days=1) #用今天日期加上時間差,參數(shù)為1天运翼,獲得明天的日期

print(afterday.year)

print(afterday.month)

print(afterday.day)

------

# 神奇的函數(shù)

### lambda 表達式的學習

a=[1,2,3,4]

g=lambda x:x**2

for each in a:

? ? print(g(each))

pydoc3 -p:5000 在5000端口查看消息

##### 根據(jù) 字母表獲得 所有字母

a=[chr(i) for i in rang(97,123)]

ord(a)=97

#### sys.argv[1]

#### 在console導(dǎo)入路徑或者py文件

import sys

sys.path.append("/path/to/your/test.py")

### 迭代器

```

a=iter(a)

print(next(a))

```

next函數(shù)返干,返回迭代器的下一個對象

## 并發(fā)

并發(fā)是指一次處理多件事。

并行是指一次做多件事血淌。

二者不同矩欠,但是有聯(lián)系财剖。

一個關(guān)于結(jié)構(gòu),一個關(guān)于執(zhí)行癌淮。

并發(fā)用于制定方案躺坟,用來解決可能(但未必)并行的問題。

### yield

### 協(xié)程

```

def simple_coroutine():

? ? print('corroutine is start')

? ? x=yield

? ? print('corrountine reeived',x)

mycoro=simple_coroutine()

print mycoro

next(mycoro)

#向yield發(fā)送一個值乳蓄,輸出x為23

mycoro.send(23)

```

###### 先要調(diào)用next函數(shù),作為預(yù)激協(xié)程的指令咪橙,讓協(xié)程跳轉(zhuǎn)到第一個yield表達式? 產(chǎn)出變量的初始值None

next函數(shù)可以包裝為裝飾器

```

def start(func):

? ? def star(*args,**kwargs):

? ? ? ? sd=func(*args,**kwargs)

? ? ? ? next(sd)

? ? ? ? return sd

? ? return star

```

個人體會:通過send語句將值傳遞給yield對象

執(zhí)行下一個yield讓協(xié)程進入下一個狀態(tài)

當執(zhí)行完后,協(xié)程為yield狀態(tài)

python3 查看生成器狀態(tài):

##### from inspect import getgeneratorstate

協(xié)程來處理異常類:

如果傳入的異常無法處理虚倒,協(xié)程就會終止

協(xié)程的四個狀態(tài):

gen_created: 等待開始執(zhí)行? (只有在多線程應(yīng)用中才能看到)

gen_running:解釋器正在執(zhí)行

gen_suspended:在yield表達式處暫停

gen_closed 執(zhí)行結(jié)束

類似于return 的關(guān)鍵字美侦,返回的類型為生成器

不過不會直接退出函數(shù)

而是等到 循環(huán)結(jié)束,返回一個list

#### yield from

可以簡化yield語法

###? GIL

global interpreter lock 全局解釋鎖

一次只能有一個線程在運行

gIL對io密集型任務(wù) 的影響很小

Python 標準庫中的所有阻塞型 I/O 函數(shù)都會釋放 GIL裹刮,允許其他線程運

行音榜。time.sleep() 函數(shù)也會釋放 GIL。因此捧弃,盡管有 GIL赠叼,Python 線程還是能在 I/O

密集型應(yīng)用中發(fā)揮作用

當某個線程在等待I/O時,python調(diào)度程序會切換到另一個線程

ProcessPool 使用了多進程來繞開多線程

### cpu密集

ProcessPoolExecutor? 多進程的 多少個核就有多少個進程

multiprocessing? 繞開GIL

python-parallelize庫

定義一個python-parallelize 裝飾器违霞,可以應(yīng)用到任何函數(shù)上

生成器: 類似于鏈表推導(dǎo)嘴办,

只不過只會放入內(nèi)存一次

也就是說只能輸出一次,用完就沒了

#### *args,**kwargs

*args是tuple

**kwrgs是dict

def play(*args,**kwargs):

? ? print(args)

? ? print(kwargs)

(2, 3)

{'age': 3, 'name': 2}

play(2,3,name=2,age=3)

#### filter 函數(shù)

過濾函數(shù)?

- a=range(10)

print(filter(lambda x:x>3,a))

#### random

values=[1,2,3,4]

- random.choice

random.choice(values)

從List中隨機選擇元素

- 提取出n個不同的樣本

random.sample(values,2)

- random 打亂順序

random.shuffle(values)

- 生產(chǎn)隨機整數(shù)

random.randint(0,10)

- 生成0-1 范圍內(nèi)均勻分布的浮點數(shù)

random.random()

- 生成n位隨機二進制整數(shù)

random.getrandbits(200)

### 運算符

& 按位運算符 取交集

| 按位運算符? 取并集

^ 當二進制位不相等時,取1

~ 按位取反

<< 左移運算符? 高位丟棄买鸽,低位補0

>> 右移涧郊,低位丟棄,高位補0

### 生成器

節(jié)省內(nèi)存

```

pos = (n for n in mylist if n > 0)

for each in pos:

print each

```

- 列表推導(dǎo)

? b=[for each in b if b>0]? //占用內(nèi)存比較多

- 求list中最大的元素

? print(max(mylist))

- chr(97)-> a? 輸入數(shù)字眼五,輸出字母

- join 函數(shù)妆艘, b.join(a)? b加入a中 每個b加入到a的每個元素中

? a="sbv"? b="-"? c=b.join(a)

? print(c)

- xrange返回的為xrange類型,本質(zhì)為生成器看幼,性能不會放入內(nèi)存

### input

input 會自動判斷類型

raw_input不會

input 輸入不能有空格

raw_ input可以

還是raw_input合適點

### id

查看變量地址空間

##### isinstance和type的區(qū)別

isinstance 是廣義上的判斷批旺,可以根據(jù)父類來判斷

----

# 面向?qū)ο?/p>

## 繼承

## 構(gòu)造方法的初始化

```

class A:

? ? def spam(self):

? ? ? ? print('A.spam')

class B(A):

? ? def spam(self):

? ? ? ? print('B.spam')

? ? ? ? super().spam()? # Call parent spam()

```

----

## 抽象類

## 裝飾器

裝飾器是可調(diào)用對象,其參數(shù)是另一個函數(shù)

不改變函數(shù)的前提下诵姜,增強函數(shù)的功能

在導(dǎo)入時執(zhí)行調(diào)用

1. @property

將方法變?yōu)閷傩?/p>

本質(zhì)是為了增加原的功能汽煮。

將原函數(shù)作為參數(shù)傳到另一個函數(shù)中

相當于方法套了一層方法。

def identify(f):

? ? print(f())

? ? return ()

def foo():

? ? return 'bar'

identify(foo)

上面等價于:

def identify(f):

print(f())

@identify

def foo():

return "sd"

閉包;

## 一些坑

- a//2 還是int 類型? a/=2 就是float類型

-----

## pip

- pip list --outdate

列出所有可以升級的軟件

-? pip install? --upgrade requests

升級一個包

- 升級所有可用的包

for i in `pip list -o --format legacy|awk '{print $1}'` ; do pip install --upgrade $i; done

# OS

__ file __ 屬性為當前py文件的路徑

execv(file,args)

execv()執(zhí)行一個新的程序棚唆,用新的程序代替子進程的空間

### 面試問題

1. 深拷貝和淺拷貝的區(qū)別 深拷貝和淺拷貝復(fù)制一個對象暇赤,然后把之前的對象刪掉,引用技術(shù)應(yīng)該怎么變

2. 對一個對象進行如何操作才能使他的引用計數(shù)增加或者減少

3. python垃圾回收機制

4. 復(fù)制一個list的方法

5. python內(nèi)部list和tuple的實現(xiàn)的數(shù)據(jù)結(jié)構(gòu) 數(shù)組

6. 數(shù)據(jù)庫索引宵凌,b樹和b+樹的實現(xiàn)和區(qū)別鞋囊,為什么不用紅黑樹

7. ping的端口號 基于什么協(xié)議的

? 基于iCMP協(xié)議,沒有端口號? 控制報文協(xié)議

8. python? ? _ _init_ _方法和_ _? _new_ _的區(qū)別

? new: 創(chuàng)造對象是調(diào)用瞎惫,會返回當前對象的一個實例

? init: 創(chuàng)造完對象后調(diào)用失暴,無返回值

? 同時存在坯门,會優(yōu)先調(diào)用new方法

? new_是靜態(tài)方法,init是實例方法

9. python的閉包函數(shù)? 變量在閉包中調(diào)用的次序

10. 每行大小為16個字節(jié),總共1G大小的文件逗扒,限制內(nèi)存1MB,找出頻率出現(xiàn)次數(shù)最多的單詞

? ? 解決方法: 1mb內(nèi)存可以處理 2^16次方個單詞古戴,首先進行切分為100個文件,然后

11. 如何從一個很長的字符串來找一個子字符串 KMP算法

哪些是可變類型

哪些是不可變類型

深拷貝和淺拷貝的區(qū)別

裝飾器的特點

裝飾器有哪些優(yōu)點

1. 便于開發(fā)

2. 便于代碼復(fù)用

3.

## python語言內(nèi)部

#### 內(nèi)存管理

1. 引用計數(shù)

將一個對象放入列表中矩肩,引用增加

分配一個新的名稱现恼,引用增加

引用計數(shù)減少: 顯式的銷毀

sys.getrefcount( )函數(shù)可以獲得對象的當前引用計數(shù)

2. 垃圾回收

? 當引用計數(shù)清零時,垃圾回收機制


3. == 和is 的區(qū)別?

? ==比較對象的數(shù)據(jù)黍檩,is比較對象的標識(id)


4. copy和deepcopy

? copy了后叉袍,內(nèi)部對象的引用還沒有變,僅僅是復(fù)制了表面

? deepcopy是遞歸復(fù)制刽酱,完全是兩個不同的對象

5. numpy就是一個很好地例子喳逛,它的運行速度真的非常快棵里,因為很多算術(shù)運算其實并不是通過Python實現(xiàn)的润文。


6. 答:“猴子補丁”就是指,在函數(shù)或?qū)ο笠呀?jīng)定義之后殿怜,再去改變它們的行為典蝌。

7. 偶爾也會出現(xiàn)引用循環(huán)(reference cycle)。垃圾回收器會定時尋找這個循環(huán)头谜,并將其回收骏掀。舉個例子,假設(shè)有兩個對象o1和o2柱告,而且符合o1.x == o2和o2.x == o1這兩個條件截驮。如果o1和o2沒有其他代碼引用,那么它們就不應(yīng)該繼續(xù)存在际度。但它們的引用計數(shù)都是1葵袭。

8. 答:print的輸出是標準輸出,可以指向任何可以輸出的流甲脏,包括http輸出

9. 閉包: 外部函數(shù)的返回值必須是內(nèi)嵌函數(shù)眶熬,可以通過外部函數(shù)的返回值來繼續(xù)調(diào)用內(nèi)嵌函數(shù)妹笆,推遲函數(shù)的

鴨子類型:

走起路來像鴨子块请,只關(guān)心行為

又比如list.extend()方法中,我們并不關(guān)心它的參數(shù)是不是list,只要它是可迭代的,所以它的參數(shù)可以是list/tuple/dict/字符串/生成器等.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拳缠,隨后出現(xiàn)的幾起案子墩新,更是在濱河造成了極大的恐慌,老刑警劉巖窟坐,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件海渊,死亡現(xiàn)場離奇詭異绵疲,居然都是意外死亡,警方通過查閱死者的電腦和手機臣疑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門盔憨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人讯沈,你說我怎么就攤上這事郁岩。” “怎么了缺狠?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵问慎,是天一觀的道長。 經(jīng)常有香客問我挤茄,道長如叼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任穷劈,我火速辦了婚禮笼恰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘囚衔。我一直安慰自己挖腰,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布练湿。 她就那樣靜靜地躺著猴仑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肥哎。 梳的紋絲不亂的頭發(fā)上辽俗,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音篡诽,去河邊找鬼崖飘。 笑死,一個胖子當著我的面吹牛杈女,可吹牛的內(nèi)容都是我干的朱浴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼达椰,長吁一口氣:“原來是場噩夢啊……” “哼翰蠢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起啰劲,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤梁沧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蝇裤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廷支,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡频鉴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恋拍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垛孔。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖施敢,靈堂內(nèi)的尸體忽然破棺而出似炎,到底是詐尸還是另有隱情,我是刑警寧澤悯姊,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布羡藐,位于F島的核電站,受9級特大地震影響悯许,放射性物質(zhì)發(fā)生泄漏仆嗦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一先壕、第九天 我趴在偏房一處隱蔽的房頂上張望瘩扼。 院中可真熱鬧,春花似錦垃僚、人聲如沸集绰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栽燕。三九已至,卻和暖如春改淑,著一層夾襖步出監(jiān)牢的瞬間碍岔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工朵夏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蔼啦,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓仰猖,卻偏偏與公主長得像捏肢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饥侵,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354