史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。

Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。

Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。

Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。

在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型。

Python使开发和调试快速,因为在python开发中没有包含编译步骤,并且编辑 <-> 测试 <-> 调试循环使用代码开发效率非常高。


这里多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进裙930900780即可领取。

Python是一种高级,解释,交互和面向对象的脚本语言。 Python被设计为高度可读性。 它使用英语关键字,而其他语言使用标点符号。它的语法结构比其他语言少。

Python是解释型语言- Python代码在解释器中运行时处理,执行前不需要编译程序。 这与PERL和PHP类似。

Python是交动- 在Python提示符下面直接和解释器进行交互来编写程序。

Python是面向对象的- Python支持面向对象的风格或编程技术,将代码封装在对象内。

Python是一门初学者的语言- Python是初学者程序员的伟大语言,并支持从简单的文本处理到WWW浏览器到游戏的各种应用程序的开发。

第一节 Python 可以用来开发什么?

Python作为一个整体可以用于任何软件开发领域。下面来看看Python可以应用在哪些领域的开发。如下所列 -

1.基于控制台的应用程序

Python可用于开发基于控制台的应用程序。 例如:IPython

2.基于音频或视频的应用程序

Python在多媒体部分开发,证明是非常方便的。 一些成功的应用是:TimPlayercplay等。

3.3D CAD应用程序

Fandango是一个真正使用Python编写的应用程序,提供CAD的全部功能。

4.Web应用程序

Python也可以用于开发基于Web的应用程序。 一些重要的开发案例是:PythonWikiEnginesPocooPythonBlogSoftware等,如国内的成功应用案例有:豆瓣,知乎等。

5.企业级应用

Python可用于创建可在企业或组织中使用的应用程序。一些实时应用程序是:OpenErpTrytonPicalo等。

6.图像应用

使用Python可以开发图像应用程序。 开发的应用有:VPython,Gogh,imgSeek等

第二节 Python安装和环境配置

Python 3适用于Windows,Mac OS和大多数Linux操作系统。即使Python 2目前可用于许多其他操作系统,有部分系统Python 3还没有提供支持或者支持了但被它们在系统上删除了,只保留旧的Python 2版本。

可参考我上一篇文章。

第三节 Python命令行参数

Python提供了一个getopt模块,用于解析命令行选项和参数。

$ python test.py arg1 arg2 arg3

Shell

Python sys模块通过sys.argv提供对任何命令行参数的访问。主要有两个参数变量 -

sys.argv是命令行参数的列表。

len(sys.argv)是命令行参数的数量。

这里sys.argv [0]是程序名称,即脚本的名称。比如在上面示例代码中,sys.argv [0]的值就是 test.py。

示例

看看以下脚本command_line_arguments.py的代码 -

#!/usr/bin/python3

import sys

print ('Number of arguments:', len(sys.argv), 'arguments.')

print ('Argument List:', str(sys.argv))

Python

现在运行上面的脚本,这将产生以下结果 -

F:\>pythonF:\worksp\python\command_line_arguments.py

Number ofarguments:1arguments.

ArgumentList:['F:\\worksp\\python\\command_line_arguments.py']

F:\>pythonF:\worksp\python\command_line_arguments.py arg1 arg2 arg3 arg4

Number ofarguments:5arguments.

ArgumentList:['F:\\worksp\\python\\command_line_arguments.py','arg1','arg2','arg3','arg4']

F:\>

Python

注意 - 如上所述,第一个参数始终是脚本名称,它也被计入参数的数量。

解析命令行参数

Python提供了一个getopt模块,可用于解析命令行选项和参数。该模块提供了两个功能和异常,以启用命令行参数解析。

getopt.getopt方法

此方法解析命令行选项和参数列表。以下是此方法的简单语法 -

getopt.getopt(args,options,[long_options])

Python

getopt.GetoptError异常

当在参数列表中有一个无法识别的选项,或者当需要一个参数的选项不为任何参数时,会引发这个异常。

异常的参数是一个字符串,指示错误的原因。 属性msg和opt给出错误消息和相关选项。

示例

假设想通过命令行传递两个文件名,也想给出一个选项用来显示脚本的用法。脚本的用法如下 -

usage: file.py -i-o

Shell

以下是command_line_usage.py的以下脚本 -

#!/usr/bin/python3

importsys, getopt

defmain(argv):

inputfile =''

outputfile =''

try:

opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])

exceptgetopt.GetoptError:

print('GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>')

sys.exit(2)

foropt, arginopts:

ifopt =='-h':

print('usage: command_line_usage.py -i <inputfile> -o <outputfile>')

        sys.exit()

elifoptin("-i","--ifile"):

        inputfile = arg

elifoptin("-o","--ofile"):

        outputfile = arg

print('Input file is "', inputfile)

print('Output file is "', outputfile)

if__name__ =="__main__":

main(sys.argv[1:])

Python

现在,使用以下几种方式运行来脚本,输出如下所示:

F:\worksp\python>pythoncommand_line_usage.py-h

usage:command_line_usage.py-i-o

F:\worksp\python>pythoncommand_line_usage.py-iinputfile.txt-o

GetoptError,usage:command_line_usage.py-i-o

F:\worksp\python>pythoncommand_line_usage.py-iinputfile.txt-ooutputfile.txt

Inputfileis"inputfile.txt

Outputfileis"outputfile.txt

F:\worksp\python>

Shell

第四节 Python变量类型

变量是保存存储值的内存位置。也就是说,当创建一个变量时,可以在内存中保留一些空间。

基于变量的数据类型,解释器分配内存并决定可以存储在保留的存储器中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。


将值分配给变量

在Python中,变量不需要明确的声明类型来保留内存空间。当向变量分配值时,Python会自动发出声明。 等号(=)用于为变量赋值。

=运算符左侧的操作数是变量的名称,而=运算符右侧的操作数是将在存储在变量中的值。 例如 -

#!/usr/bin/python3

counter =100# 一个整型数

miles  =999.99# 一个浮点数

name    ="Maxsu"# 一个字符串

site_url  ="http://www.yiibai.com"# 一个字符串

print(counter)

print(miles)

print(name)

print(site_url)

Python

这里,100,999.99和“Maxsu”分别是分配给counter,miles和name变量的值。执行上面代码将产生以下结果 -

100

999.99

Maxsu

http://www.yiibai.com

Shell

多重赋值

Python允许同时为多个变量分配单个值。

例如 -

a= b = c =1

Python

这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置。还可以将多个对象分配给多个变量。 例如 -

a, b, c =10,20,"maxsu"

Python

这里,将两个值为10和20的整数对象分别分配给变量a和b,并将一个值为“maxsu”的字符串对象分配给变量c。

标准数据类型

存储在内存中的数据可以是多种类型。 例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串。 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法。

Python有五种标准数据类型 -

1.数字

2.字符串

3.列表

4.元组

5.字典

1.Python数字

数字数据类型存储数字值。当为其分配值时,将创建数字对象。 例如 -

var1=10

var2=20

Python

可以使用del语句删除对数字对象的引用。 del语句的语法是 -

delvar1[,var2[,var3[....,varN]]]]

Python

可以使用del语句删除单个对象或多个对象。

例如 -

delvar

delvar_a, var_b

Python

Python支持三种不同的数值类型 -

int(有符号整数)

float(浮点实值)

complex(复数)

Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。

例子

以下是一些数字示例 -

int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3+e18 .876j -0490 -90. -.6545+0J -0x260 -32.54e100 3e+26J 0x69 70.2-E12 4.53e-7j

复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。

2.Python字符串

Python中的字符串被标识为在引号中表示的连续字符集。Python允许双引号或双引号。 可以使用片段运算符([]和[:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。

加号(+)是字符串连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3

#coding=utf-8

# save file: variable_types_str1.py

str ='yiibai.com'

print('str = ', str)# Prints complete string

print('str[0] = ',str[0])# Prints first character of the string

print('str[2:5] = ',str[2:5])# Prints characters starting from 3rd to 5th

print('str[2:] = ',str[2:])# Prints string starting from 3rd character

print('str[-1] = ',str[-1])# 最后一个字符,结果为:'!'

print('str * 2 = ',str *2)# Prints string two times

print('str + "TEST" = ',str +"TEST")# Prints concatenated string

Python

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_str1.py

str=  yiibai.com

str[0] =  y

str[2:5] =  iba

str[2:] =  ibai.com

str[-1] =  m

str*2=  yiibai.comyiibai.com

str+"TEST"=  yiibai.comTEST

F:\worksp\python>

Shell

2.Python列表

列表是Python复合数据类型中最多功能的。 一个列表包含用逗号分隔并括在方括号([])中的项目。在某种程度上,列表类似于C语言中的数组。它们之间的区别之一是Python列表的所有项可以是不同的数据类型,而C语言中的数组只能是同种类型。

存储在列表中的值可以使用切片运算符([]和[])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。 加号(+)是列表连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3

#coding=utf-8

# save file: variable_types_str1.py

list= ['yes','no',786,2.23,'minsu',70.2]

tinylist = [100,'maxsu']

print('list = ',list)# Prints complete list

print('list[0] = ',list[0])# Prints first element of the list

print('list[1:3] = ',list[1:3])# Prints elements starting from 2nd till 3rd

print('list[2:] = ',list[2:])# Prints elements starting from 3rd element

print('list[-3:-1] = ',list[-3:-1])

print('tinylist * 2 = ',tinylist *2)# Prints list two times

print('list + tinylist = ',list+ tinylist)# Prints concatenated lists

Python

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_list.py

list=  ['yes','no',786,2.23,'minsu',70.2]

list[0] =  yes

list[1:3] =  ['no',786]

list[2:] =  [786,2.23,'minsu',70.2]

list[-3:-1] =  [2.23,'minsu']

tinylist *2=  [100,'maxsu',100,'maxsu']

list+ tinylist =  ['yes','no',786,2.23,'minsu',70.2,100,'maxsu']

F:\worksp\python>

Shell

3.Python元组

元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。

列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。 例如 -

#!/usr/bin/python3

#coding=utf-8

# save file : variable_types_tuple.py

tuple = ('maxsu',786,2.23,'yiibai',70.2)

tinytuple = (999.0,'maxsu')

# tuple[1] = 'new item value' 不能这样赋值

print('tuple = ', tuple)# Prints complete tuple

print('tuple[0] = ', tuple[0])# Prints first element of the tuple

print('tuple[1:3] = ', tuple[1:3])# Prints elements starting from 2nd till 3rd

print('tuple[-3:-1] = ', tuple[-3:-1])# 输出结果是什么?

print('tuple[2:] = ', tuple[2:])# Prints elements starting from 3rd element

print('tinytuple * 2 = ',tinytuple *2)# Prints tuple two times

print('tuple + tinytuple = ', tuple + tinytuple)# Prints concatenated tuple

Python

将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_tuple.py

tuple=  ('maxsu',786,2.23, 'yiibai',70.2)

tuple[0] =  maxsu

tuple[1:3] =  (786,2.23)

tuple[-3:-1] =  (2.23, 'yiibai')

tuple[2:] =  (2.23, 'yiibai',70.2)

tinytuple*2=  (999.0, 'maxsu',999.0, 'maxsu')

tuple+ tinytuple =  ('maxsu',786,2.23, 'yiibai',70.2,999.0, 'maxsu')

F:\worksp\python>

Shell

以下代码对于元组无效,因为尝试更新元组,但是元组是不允许更新的。类似的情况可能与列表 -

#!/usr/bin/python3

tuple= ( 'abcd',786,2.23, 'john',70.2)

list= [ 'abcd', 786 , 2.23, 'john', 70.2  ]

tuple[2] =1000# 无法更新值,程序出错

list[2] =1000# 有效的更新,合法

Python

Python字典

Python的字典是一种哈希表类型。它们像Perl中发现的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串。另一方面,值可以是任意任意的Python对象。

字典由大括号({})括起来,可以使用方括号([])分配和访问值。例如 -

#!/usr/bin/python3

#coding=utf-8

# save file : variable_types_dict.py

dict = {}

dict['one'] ="This is one"

dict[2]    ="This is my"

tinydict = {'name':'maxsu','code':1024,'dept':'IT Dev'}

print("dict['one'] = ", dict['one'])# Prints value for 'one' key

print('dict[2] = ', dict[2])# Prints value for 2 key

print('tinydict = ', tinydict)# Prints complete dictionary

print('tinydict.keys() = ', tinydict.keys())# Prints all the keys

print('tinydict.values() = ', tinydict.values())# Prints all the values

Python

将上面代码保存到 variable_types_dict.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_dict.py

dict['one'] =  Thisisone

dict[2] =  Thisismy

tinydict =  {'name':'maxsu','code':1024,'dept':'IT Dev'}

tinydict.keys() =  dict_keys(['name','code','dept'])

tinydict.values() =  dict_values(['maxsu',1024,'IT Dev'])

Shell

字典中的元素没有顺序的概念。但是说这些元素是“乱序”是不正确的; 它们是无序的。

数据类型转换

有时,可能需要在内置类型之间执行转换。要在类型之间进行转换,只需使用类型名称作为函数即可。

有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。它们分别如下所示 -

编号 函数 描述 1 int(x [,base]) 将x转换为整数。如果x是字符串,则要base指定基数。 2 float(x) 将x转换为浮点数。 3 complex(real [,imag]) 创建一个复数。 4 str(x) 将对象x转换为字符串表示形式。 5 repr(x) 将对象x转换为表达式字符串。 6 eval(str) 评估求值一个字符串并返回一个对象。 7 tuple(s) 将s转换为元组。 8 list(s) 将s转换为列表。 9 set(s) 将s转换为集合。 10 dict(d) 创建一个字典,d必须是(key,value)元组的序列 11 frozenset(s) 将s转换为冻结集 12 chr(x) 将整数x转换为字符 13 unichr(x) 将整数x转换为Unicode字符。 14 ord(x) 将单个字符x转换为其整数值。 15 hex(x) 将整数x转换为十六进制字符串。 16 oct(x) 将整数x转换为八进制字符串。

第五节 Python基本运算符

运算符是可以操纵操作数值的结构。如下一个表达式:10 + 20 = 30。这里,10和20称为操作数,+则被称为运算符。

运算符类型

Python语言支持以下类型的运算符 -

1.算术运算符

2.比较(关系)运算符

3.赋值运算符

4.逻辑运算符

5.按位运算符

6.成员运算符

7.身份运算符

下面让我们依次来看看所有的运算符。

1.算术运算符

假设变量a的值是10,变量b的值是21,则 -

运算符 描述 示例 + 加法运算,将运算符两边的操作数增加。 a + b = 31 - 减法运算,将运算符左边的操作数减去右边的操作数。 a – b = -11 * 乘法运算,将运算符两边的操作数相乘 a * b = 210 / 除法运算,用右操作数除左操作数 b / a = 2.1 % 模运算,用右操作数除数左操作数并返回余数 b % a = 1 ** 对运算符进行指数(幂)计算 a ** b,表示10的21次幂 // 地板除 - 操作数的除法,其结果是删除小数点后的商数。 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去 9//2 = 4 , 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

2.比较(关系)运算符

比较(关系)运算符比较它们两边的值,并确定它们之间的关系。它们也称为关系运算符。假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例 == 如果两个操作数的值相等,则条件为真。 (a == b)求值结果为 false != 如果两个操作数的值不相等,则条件为真。 (a != b)求值结果为 true > 如果左操作数的值大于右操作数的值,则条件成为真。 (a > b)求值结果为 false < 如果左操作数的值小于右操作数的值,则条件成为真。 (a < b)求值结果为 true >= 如果左操作数的值大于或等于右操作数的值,则条件成为真。 (a >= b)求值结果为 false <= 如果左操作数的值小于或等于右操作数的值,则条件成为真。 (a <= b)求值结果为 true

3.赋值运算符

假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例 = 将右侧操作数的值分配给左侧操作数 c = a + b表示将a + b的值分配给c += 将右操作数相加到左操作数,并将结果分配给左操作数 c + = a等价于c = c + a -= 从左操作数中减去右操作数,并将结果分配给左操作数 c -= a 等价于 c = c - a *= 将右操作数与左操作数相乘,并将结果分配给左操作数 c *= a 等价于 c = c * a /= 将左操作数除以右操作数,并将结果分配给左操作数 c /= a 等价于 c = c / a %= 将左操作数除以右操作数的模数,并将结果分配给左操作数 c %= a 等价于 c = c % a **= 执行指数(幂)计算,并将值分配给左操作数 c **= a 等价于 c = c ** a //= 运算符执行地板除运算,并将值分配给左操作数 c //= a 等价于 c = c // a

4.逻辑运算符

Python语言支持以下逻辑运算符。假设变量a的值为True,变量b的值为False,那么 -

运算符 描述 示例 and 如果两个操作数都为真,则条件成立。 (a and b)的结果为False or 如果两个操作数中的任何一个非零,则条件成为真。 (a or b)的结果为True not 用于反转操作数的逻辑状态。 not(a and b) 的结果为True。

5.按位运算符

按位运算符执行逐位运算。 假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 -

a=0011 1100

b=0000 1101

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

a&b=0000 1100

a|b=0011 1101

a^b=0011 0001

~a=1100 0011

Shell

Python的内置函数bin()可用于获取整数的二进制表示形式。

以下是Python语言支持位运算操作符 -

运算符 描述 示例 & 如果它存在于两个操作数中,则操作符复制位到结果中 (a & b) 结果表示为 0000 1100

如果它存在于任一操作数,则复制位。 (a

b) = 61 结果表示为 0011 1101 ^ 二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。 (a ^ b) = 49 (结果表示为 0011 0001) ~ 二进制补码,它是一元的,具有“翻转”的效果。 (~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。 << 二进制左移,左操作数的值由右操作数指定的位数左移。 a << 2 = 240 (结果表示为 1111 0000) >> 二进制右移,左操作数的值由右操作数指定的位数右移。 a >> 2 = 15(结果表示为0000 1111)

6.成员运算符

Python成员运算符测试给定值是否为序列中的成员,例如字符串,列表或元组。 有两个成员运算符,如下所述 -

运算符 描述 示例 in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。 - not in 如果在指定序列中找不到变量的值,则返回true,否则返回false。 -

7.身份运算符

身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述 -

运算符 描述 示例 is 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。 is not 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。 -

8. 运算符优先级

下表列出了从最高优先级到最低优先级的所有运算符,如下所示 -

序号 运算符 描述 1 ** 指数(次幂)运算 2 ~ + - 补码,一元加减(最后两个的方法名称是+@和-@) 3 * / % // 乘法,除法,模数和地板除 4 + - 5 >> << 向右和向左位移 6 & 按位与 7 ^


按位异或和常规的“OR” 8 <= < > >= 比较运算符 9 <> == != 等于运算符 10 = %= /= //= -= += *= **= 赋值运算符 11 is is not 身份运算符 12 in not in 成员运算符 13 not or and 逻辑运算符

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进裙930900780即可领取。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容