一個java程序員的python之旅----初識

[TOC]

記錄一下自己的python學(xué)習之旅澄惊,入門書籍為《python編程:從入門到實踐》缤削,運行環(huán)境為python3.6.3。也有一定的編程基礎(chǔ)滚婉,對于一些通用的語法不再贅述让腹,本篇主要記錄一下python一些不同于java的基本語法扣溺。

書寫格式

  • 一句代碼的結(jié)束以換行為標志锥余,不需要分號。
  • 建議每級縮進都使用四個空格嘲恍。
  • 建議每行不超過80字符佃牛,建議注釋的行長不超過72字符俘侠。
  • 不同的邏輯之間可用一個空行隔開。
  • 代碼塊不需要大括號央星,python根據(jù)縮進來判斷代碼行與前一個代碼行的關(guān)系等曼。
  • python變量和函數(shù)命名習慣采用小寫凿蒜,可用下劃線隔開废封,不像java采用駝峰命名法漂洋。
  • 在條件測試的格式設(shè)置方面力喷,建議在諸如== 弟孟、>= 和<= 等比較運算符兩邊各添加一個空格拂募。

基本數(shù)據(jù)類型

  • Number(數(shù)字)
    1. int(整型)
    2. long(長整型)
    3. float(浮點型)
    4. complex(復(fù)數(shù))
  • String(字符串)
  • List(列表)
  • Tuplc(元組)
  • Dictionary(字典)

常用計算符號

  • +陈症,加號
  • -,減號
  • *趴腋,乘號
  • /于样,除號
  • %潘靖,取余
  • //卦溢,整除
  • **,乘方

變量

變量不需要聲明吐辙。

message = "Hello Python"
print(message)

字符串

  • 字符串可以用雙引號蘸劈,也可以用單引號威沫,這樣可以方便的在字符串中使用引號棒掠,當然也可以像java一下通過轉(zhuǎn)義字符表示引號。
  • 下標從左到右從0開始颈墅,從右到左從-1開始恤筛,-1表示最后一個字符毒坛。
  • 截取字符串使用 str[開始下標 :結(jié)束下標]
  • python中的字符串也封裝了許多的基本操作方法述么,比如大小寫轉(zhuǎn)換度秘,去首尾空格等,可以在使用過程中慢慢去熟悉唆貌。
message = " Hello world "
print(message.title())  # 首字母大寫
print(message.lower())  # 轉(zhuǎn)換小寫
print(message.upper())  # 轉(zhuǎn)換大寫
print(message.count("o"))  # 字符計數(shù)
print(message.strip())  # 去首尾空格
print(message.lstrip())  # 去開頭空格
print(message.rstrip())  # 去結(jié)尾空格
print(message.__len__())  # 字符串長度

數(shù)字

  • 數(shù)字和字符串不能直接拼接锨咙。
print("Hello " + 213)  # TypeError: must be str, not int
print("Hello " + str(213))  # Hello 213

整數(shù)

  • python中可以用 ** 表示乘方運算
  • python3中兩個整數(shù)相除時酪刀,會得到真實的結(jié)果骂倘,而python2中只會得到整數(shù)部分历涝,這與java類似(3/2=1)。
print(2 ** 3)  # 8
print(3 / 2)  # 1.5
print(4 / 3)  # 1.3333333333333333

注釋

  • python中注釋用#來表示堰塌。

列表

有序集合蔫仙,用[]表示。類似于但又不同于java中的數(shù)組恤煞、集合居扒。

  • python中的列表不要求數(shù)據(jù)類型相同喜喂,及不用類型的數(shù)據(jù)可以放到同一個列表中玉吁,姑且簡單理解為List<Object>进副。
  • 有序集合,因此支持按索引訪問给赞,索引從0開始片迅。不同的是python還支持反向索引柑蛇,-1代表最后一個數(shù)據(jù)唯蝶,-2代表倒數(shù)第二個,依次類推鼓蜒。
names = ["Allen", "Toto", 123]
print(names)  # ['Allen', 'Toto', 123]
print(names[1])  # Toto
print(names[-1])  # 123
  • 修改元素:類似于java數(shù)組都弹,直接通過索引賦值修改畅厢。
  • 添加元素:提供append和insert方法框杜,分別用于在列表末尾追加和在指定索引位置插入新元素咪辱。也可以通過extend方法直接在末尾追加一個列表椎组。
  • 刪除元素:提供pop和remove方法寸癌,分別用于刪除指定索引和指定值的元素蒸苇。也可用del語句來刪除填渠。注意remove方法只是刪除一個元素,如果列表中有多個相同元素莺葫,可以通過循環(huán)刪除捺檬。
names = ["Allen", "Toto", 123]
print(names)  # ['Allen', 'Toto', 123]
names[2] = 456
print(names)  # ['Allen', 'Toto', 456]
names.append(True)
print(names)  # ['Allen', 'Toto', 456, True]
names.insert(1, 123)
print(names)  # ['Allen', 123, 'Toto', 456, True]
del names[-1]
print(names)  # ['Allen', 123, 'Toto', 456]
test = names.pop(-1)
print(names)  # ['Allen', 123, 'Toto']
print(test)  # 456
names.remove("Allen")
print(names)  # [123, 'Toto']
  • 排序:注意只有所有元素為相同類型的列表可以排序聂受】靖洌可以通過列表的sort方法或者sorted函數(shù)來進行排序炮叶,其中sort會改變原列表镜悉,sorted不會改變原列表侣肄。也可以通過參數(shù)來控制順序稼锅。
names = ["Allen", "Toto", "Lili"]
names.sort()
print(names)  # ['Allen', 'Lili', 'Toto']
names.sort(reverse=True)
print(names)  # ['Toto', 'Lili', 'Allen']
print(sorted(names))  # ['Allen', 'Lili', 'Toto']
print(names)  # ['Toto', 'Lili', 'Allen']
  • 遍歷:通過for循環(huán)進行遍歷缰贝,類似于java中的foreach語句剩晴,僅僅是寫法不同赞弥。
names = ["Allen", "Toto", "Lili"]
for item in names:  # 注意最后有個冒號,代碼塊需要縮進
    print(item)

如果需要對索引和值同時迭代绽左,可以使用python內(nèi)置的enumerate函數(shù):

names = ["Allen", "Toto", "Lili"]
for index,item in enumerate(names):  # 注意最后有個冒號,代碼塊需要縮進
    print(index,item)
  • 數(shù)值列表:python使用range函數(shù)可以很方便的創(chuàng)建一個數(shù)值列表拼窥,結(jié)果符合編程中最常見的差一行為鲁纠,比如range(1,6)鳍寂,實際生成的為1到5這五個數(shù)字迄汛。
nums = list(range(1, 6))  # 創(chuàng)建數(shù)值列表
print(nums)  # [1, 2, 3, 4, 5]
# range還支持步數(shù)
nums = list(range(1, 6, 2))  # [1, 3, 5]
print(nums)
  • 列表解析:將for循環(huán)和創(chuàng)建新元素的代碼合并成一行鹃觉,并自動附加新元素。下面兩種寫法是等價的笼裳。
nums = list()
for item in range(1, 6):
    nums.append(item ** item)
print(nums)  # [1, 4, 27, 256, 3125]

# 列表解析的格式為[表達式 + for循環(huán)]
nums = [item ** item for item in range(1, 6)]
print(nums)  # [1, 4, 27, 256, 3125]
  • 切片:即截取列表的部分相鄰元素。通過指定要截取的第一個和最后一個索引來進行切片允青,并得到一個新的列表卵沉。依然符合差一行為史汗。
nums = list(range(1, 11))
# 實際上是從索引1到4
print(nums[1:5])  # [2, 3, 4, 5]
# 沒有指定開始索引會默認從0開始  沒指定結(jié)束索引會默認到列表最后一個元素結(jié)束
print(nums[:5])  # [1, 2, 3, 4, 5]
print(nums[5:])  # [6, 7, 8, 9, 10]
print(nums[:])  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 也支持負索引
print(nums[-3:])  # [8, 9, 10]
  • 列表的復(fù)制:列表的復(fù)制可以直接使用切片的方式瓷蛙,不能直接將變量賦值給另一個變量艰猬,這和java中的概念(list.addAll)是相同的埋市。
# 這樣相當于將變量nums和nums_2都關(guān)聯(lián)到了同一個列表道宅,不是復(fù)制
nums = [1, 2, 3]
nums_2 = nums
nums_2.append(4)
print(nums_2)  # [1, 2, 3, 4]
print(nums)  # [1, 2, 3, 4]

# 可以用切片來達到復(fù)制列表的目的
nums = [1, 2, 3]
nums_2 = nums[:]
nums_2.append(4)
print(nums_2)  # [1, 2, 3, 4]
print(nums)  # [1, 2, 3]

元組

python將不可修改的值稱為不可變的污茵,而不可變的列表稱為元組省咨。

  • 元組使用圓括號標識,除了元素不可變之外穷缤,可以向操作列表一樣遍歷津肛、操作元組身坐。
# 元組:不可變的列表
nums = (1, 2, 3)
print(nums)  # (1, 2, 3)
print(nums[-2:])  # (2, 3)

if語句

語法同大多數(shù)編程語言落包,僅僅是書寫格式不同部蛇。

  • 條件判斷:
    • 區(qū)分大小寫,如果不想?yún)^(qū)分大小寫判斷是否相等咐蝇,可以先都轉(zhuǎn)換成小寫再判斷涯鲁。
    • 支持==、>有序、<抹腿、>=、<=旭寿、!=判斷。
    • 多個判斷條件可以使用andor關(guān)鍵字盅称,效果等于java中的&&和||肩祥。
    • 判斷元素是否包含在某個列表中時,可以使用innot in關(guān)鍵字微渠。
    • python在進行條件判斷時搭幻,會將非空的字符串或列表認為True,反之為False逞盆。
a = "a"
b = "A"
if a == b:  # a.lower() == b.lower()
    print("a == b")
elif a.lower() == b.lower():
    print("a.lower() == b.lower()")
else:
    print(False)

nums = [1, 2, 3]
nums_2 = [3, 4, 5]
if (3 in nums) and (3 not in nums_2):  # False
    print(True)
else:
    print(False)

nums = []
a = "a"
if nums:  # a
    print("nums")
elif a:
    print("a")
else:
    print(False)

字典

在Python中,字典是一系列鍵--值對 松申。每個鍵都與一個值相關(guān)聯(lián)云芦,你可以使用鍵來訪問與之相關(guān)聯(lián)的值。與鍵相關(guān)聯(lián)的值可以是數(shù)字贸桶、字符串舅逸、列表乃至字典。事實上皇筛,可將任何Python對象用作字典中的值琉历。類似于java中的Map。

  • python中,字典用花括號來標識旗笔,每一個鍵值對之間以逗號分隔彪置。
student = {"name": "Allen", "age": 15}
  • 可以通過字典的鍵來訪問與之關(guān)聯(lián)的值。
  • 字典是一種動態(tài)結(jié)構(gòu)蝇恶,可隨時在其中添加拳魁、修改鍵值對,只需指定字典的鍵即可撮弧。
  • 可以通過del語句刪除字典中的鍵值對潘懊。
student = {"name": "Allen", "age": 15}
print(student["name"])  # Allen
student["name"] = "Lili"
print(student)  # {'name': 'Lili', 'age': 15}
student["address"] = "ChangSha"
print(student)  # {'name': 'Lili', 'age': 15, 'address': 'ChangSha'}
del student["address"]
print(student)  # {'name': 'Lili', 'age': 15}
  • 可以通過for循環(huán)遍歷字典的所有鍵、所有值或者是所有的鍵值對贿衍。但是不保證遍歷順序和存儲順序相同授舟。
student = {'name': 'Lili', 'age': 15, 'address': 'ChangSha'}
for k, v in student.items():
    print(str(k) + ":" + str(v))

for k in student.keys():  # 遍歷字典時會默認遍歷key,因此等效于 for k in student:
    print(k)

for v in set(student.values()):  # 如果需要去重的話贸辈,可以使用集合set岂却,類似于列表,但每個元素都是獨一無二的
    print(v)

while循環(huán)

基本語法同大多數(shù)編程語言裙椭,僅書寫格式不同躏哩。

nums = [1, 1, 1, 1, 2, 2, 1, 3]
while 1 in nums:
    nums.remove(1)
print(nums)  # [2, 2, 3]

函數(shù)

  • 函數(shù)用關(guān)鍵詞def定義,函數(shù)體依然采用縮進方式揉燃。
  • 函數(shù)的說明文檔用三引號注釋扫尺,寫在函數(shù)體的第一行。
def print_hello():
    """打招呼"""
    print("Hello")


print_hello()  # Hello
  • 參數(shù)傳遞:python中實參的傳遞有三種方式:位置實參炊汤,關(guān)鍵字實參和默認值正驻。位置實參即基于實參的順序依次傳遞,這是大多數(shù)編程語言中的一種普遍做法抢腐。關(guān)鍵字實參通過鍵值對的方式傳遞參數(shù)姑曙,不用考慮參數(shù)的順序。默認值即在編寫函數(shù)時為形參指定一個默認值迈倍,調(diào)用函數(shù)時如果不指定實參伤靠,則使用此默認值。注意如果不指定默認值啼染,則調(diào)用函數(shù)時必須傳入該實參宴合。
def print_hello(name, age="15"):
    """打招呼"""
    print("你好,我叫" + str(name) + "迹鹅," + str(age) + "歲")


print_hello("李狗蛋", "12")  # 你好卦洽,我叫李狗蛋,12歲
print_hello("12", "李狗蛋")  # 你好斜棚,我叫12阀蒂,李狗蛋歲
print_hello(age="12", name="李狗蛋")  # 你好该窗,我叫李狗蛋,12歲
# 形參可以有默認值蚤霞,相當于簡化了java中的方法的多態(tài)
print_hello("李狗蛋")  # 你好酗失,我叫李狗蛋,15歲
  • 返回值:python中函數(shù)可以通過關(guān)鍵字return返回一個值争便,且python是弱類型語言级零,無需指定返回的值的類型。
  • 列表作為實參傳入時滞乙,如果函數(shù)內(nèi)部對該列表做了修改奏纪,則原列表也會改變,這一點同java是一樣的斩启。如果不想修改原列表序调,可以將列表的一個副本作為實參傳入,比如使用切片兔簇。
def getList(list):
    list[0] = 2
    return list


a = [1, 2]
print(getList(a))  # [2, 2]
print(a)  # [2, 2]
a = [1, 2]
print(getList(a[:]))  # [2, 2]
print(a)  # [1, 2]
  • 函數(shù)可以使用 *+形參名 的形式添加任意數(shù)量的參數(shù)(相當于在函數(shù)內(nèi)部发绢,將可變參數(shù)組成了一個tuple),類似于java中的 形參名+... 符號垄琐,如果有多個不同類型的形參边酒,這種接收任意數(shù)量參數(shù)的形參只能放在最后。
def muti(*name):  # 形參名*name 中的星號讓Python創(chuàng)建一個名為name 的空元組狸窘,并將收到的所有值都封裝到這個元組中墩朦。
    print(name)


muti("a")  # ('a',)
muti("a", "b", "c")  # ('a', 'b', 'c')
  • 函數(shù)可以通過兩個星號來接收任意數(shù)量的關(guān)鍵字實參(鍵值對,相當于在函數(shù)內(nèi)部翻擒,將可變關(guān)鍵字參數(shù)組成了一個dict)氓涣。
def person(name, age, **other):  # 形參名**other 中的星號讓Python創(chuàng)建一個名為other 的空字典,并將收到的所有鍵值對都封裝到這個字典中陋气。
    p = {"name": name, "age": age}
    for k, v in other.items():
        p[k] = v
    print(other)


person("Allen", 15, sex="man", address="ChangSha")  # {'name': 'Allen', 'age': 15, 'sex': 'man', 'address': 'ChangSha'}

如果要限制關(guān)鍵字參數(shù)的名字劳吠,就可以用命名關(guān)鍵字參數(shù),例如巩趁,只接收city和score作為關(guān)鍵字參數(shù)痒玩。這種方式定義的函數(shù)如下:

def person(name, age, *, address, score):
    print(name, age, address, score)

person("Allen", 15, address='Beijing', score=98)

和關(guān)鍵字參數(shù) ** other不同,命名關(guān)鍵字參數(shù)需要一個特殊分隔符* 晶渠,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)凰荚。

  • 在Python中定義函數(shù),可以用必選參數(shù)褒脯、默認參數(shù)、可變參數(shù)缆毁、關(guān)鍵字參數(shù)和命名關(guān)鍵字參數(shù)番川,這5種參數(shù)都可以組合使用。但是請注意,參數(shù)定義的順序必須是:必選參數(shù)颁督、默認參數(shù)践啄、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)沉御。
  • 導(dǎo)入外部函數(shù):要讓函數(shù)是可導(dǎo)入的屿讽,得先創(chuàng)建模塊。模塊是擴展名為.py的文件吠裆,包含要導(dǎo)入到程序中的代碼伐谈。導(dǎo)入方式:
    • import module_name:導(dǎo)入整個模塊。
    • import module_name as other_name:為導(dǎo)入的模塊起一個別名试疙。
    • from module_name import function_name:導(dǎo)入模塊中的某個函數(shù)诵棵,function_name可以有多個,用逗號隔開祝旷,表示導(dǎo)入該模塊的多個函數(shù)履澳。
    • from module_name import function_name as other_name:導(dǎo)入模塊中的某個函數(shù),并起一個別名怀跛,一般原函數(shù)名字太長或者有同名函數(shù)時使用距贷。
    • from module_name import *:導(dǎo)入該模塊的全部函數(shù)。
      注:只導(dǎo)入模塊時吻谋,需通過module_name.function_name調(diào)用(前兩種方式)忠蝗,導(dǎo)入函數(shù)時,可以直接通過函數(shù)名使用(后三種方式)滨溉。當然什湘,有別名的情況下也可以使用別名。

  • 通過關(guān)鍵字class標識晦攒,類名的首字母大寫闽撤,采用駝峰命名法,可以在類名的下一行添加注釋文檔脯颜,用三引號標識哟旗。
  • python的類有一個特殊的方法__ init__(),每次創(chuàng)建類的實例時都會運行這個方法栋操,類似于java中的構(gòu)造函數(shù)闸餐。在這個方法的名稱中,開頭和末尾各有兩個下劃線矾芙,這是一種約定舍沙,旨在避免Python默認方法與普通方法發(fā)生名稱沖突。
  • 形參self必不可少剔宪,還必須位于其他形參的前面拂铡。每個與類相關(guān)聯(lián)的方法調(diào)用都自動傳遞實參self 壹无,它是一個指向?qū)嵗旧淼囊茫寣嵗軌蛟L問類中的屬性和方法感帅。
  • 以self 為前綴的變量都可供類中的所有方法使用斗锭,我們還可以通過類的任何實例來訪問這些變量,我們可以將這些以self為前綴的變量稱為屬性失球。
  • 以兩個下劃線開頭可以定義類的私有方法和屬性岖是,命名格式為__private_method,self.__private_attrs实苞。
class Person:
    """測試類"""
    def __init__(self, name="Allen", age=15, sex="man"):
        self.name = name
        self.age = age
        self.sex = sex
        self.address = ""
        print("person " + name + " init")

    def walk(self):
        print(self.name + " can walk.")

    def run(self):
        self.walk()
        print(self.name + " can run too.")
  • 繼承豺撑。
class Person:
    """測試類"""

    def __init__(self, name, age=15, sex="man"):
        self.name = name
        self.age = age
        self.sex = sex
        self.address = ""
        print("person " + name + " init")

    def walk(self):
        print(self.name + " can walk.")

    def run(self):
        self.walk()
        print(self.name + " can run too.")


person = Person("Allen")  # person Allen init
person.run()  # Allen can walk.  Allen can run too.


class Student(Person):  # Student繼承于Person
    def __init__(self, name):  # 子類的__init__方法需要接收父類的所有參數(shù),有默認值的可以不傳硬梁,會取默認值
        super().__init__(name)  # 子類繼承父類的所有屬性和方法

    def walk(self):  # 重寫父類方法
        print("override function.")

    def get_teacher(self, teacher_name):  # 子類的自定義方法
        print(self.name + "'s teacher is " + teacher_name)


student = Student("Allen")  # person Allen init
student.get_teacher("Lili")  # Allen's teacher is Lili
student.walk()  # override function.

文件讀寫

通過open函數(shù)打開一個文件前硫,進行讀寫操作,完成后通過close函數(shù)關(guān)閉文件荧止,也可以使用with關(guān)鍵字屹电,讓python自己選擇適時關(guān)閉文件。

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):

open函數(shù)可以接收一個mode參數(shù)跃巡,包括以下值:

  • 'r' 只讀方式打開 (default)
  • 'w' 只寫方式打開危号,打開文件會清空文件,再寫入素邪,文件不存在時會自動創(chuàng)建文件外莲。
  • 'x' 創(chuàng)建一個新文件并以只寫方式打開
  • 'a' 只寫方式打開,打開文件會將寫入內(nèi)容拼接到文件最后兔朦,
  • 'b' 字節(jié)模式
  • 't' 文本模式(default)
  • '+' 打開一個硬盤文件進行更新 (reading and writing)
  • 'U' universal newline mode (已過時)

默認模式為"rt"偷线。

讀文件

測試文件 file_io_test:

abcdefg
hijklmn
opq
rst
uvw
xyz
  • 讀取整個文件
with open("file_io_test") as file:  # 關(guān)鍵字with 在不再需要訪問文件后適時將其關(guān)閉。
    print(file.read())  # read()可以接收一個int參數(shù)沽甥,表示讀取的字節(jié)數(shù)声邦,傳-1表示讀取全部,默認值為-1
  • 讀取一行
with open("file_io_test") as file:
    print(file.readline())  # abcdefg 行末尾有一個換行符
    print(file.readline())  # hijklmn
  • 讀取每行摆舟,并存儲到一個列表
with open("file_io_test") as file:
    print(file.readlines())  # ['abcdefg\n', 'hijklmn\n', 'opq\n', 'rst\n', 'uvw\n', 'xyz']
  • 逐行讀取
with open("file_io_test") as file:
    for line in file:  # 等同于line = file.readline()
        print(line)
  • 是否可讀
with open("file_io_test") as file:
    print(file.readable())  # readable()是否可讀亥曹,返回一個布爾值

寫文件

with open("file_write_test", mode="w+") as file:  # w換成a后可以附加到文件中,不會覆蓋
    file.write("456")  # 寫入456
    print(file.readable())  # True

異常

處理異常:

def divide(a, b):
    """除法運算"""
    try:
        result = a / b
    except ZeroDivisionError:
        print("除數(shù)不能為0")
    else:
        print(result)
    finally:
        print("運行完畢")


divide(1, 0)  # 除數(shù)不能為0  運行完畢
divide(1, 5)  # 0.2  運行完畢

存儲數(shù)據(jù)

通過json存儲

import json

nums = [1, 2, 3, 4, 5]
with open("jsonTest.json", "w") as file:
    json.dump(nums, file)  # 寫入文件恨诱,接收一個內(nèi)容對象和文件對象

with open("jsonTest.json") as file:
    result = json.load(file)
    print(result)
最后編輯于
?著作權(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
  • 文/潘曉璐 我一進店門旨别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汗茄,你說我怎么就攤上這事秸弛。” “怎么了洪碳?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵递览,是天一觀的道長。 經(jīng)常有香客問我瞳腌,道長绞铃,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任嫂侍,我火速辦了婚禮儿捧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挑宠。我一直安慰自己菲盾,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布各淀。 她就那樣靜靜地躺著懒鉴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碎浇。 梳的紋絲不亂的頭發(fā)上临谱,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音奴璃,去河邊找鬼悉默。 笑死,一個胖子當著我的面吹牛溺健,可吹牛的內(nèi)容都是我干的麦牺。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼鞭缭,長吁一口氣:“原來是場噩夢啊……” “哼剖膳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岭辣,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤吱晒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沦童,有當?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
  • 正文 我出身青樓罕容,卻偏偏與公主長得像备恤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锦秒,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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