51道面试题

Q.1. Python 的特点和优点是什么?

Python 可以作为编程的入门语言,因为他具备以下特质:
1.解释性

  1. 动态特性
  2. 面向对象
  3. 语法简洁
  4. 开源
  5. 丰富的社区资源

Q.2. 深拷贝和浅拷贝的区别是什么?

深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。在 Python 中,我们使用 deepcopy函数进行深拷贝,使用方法如下:


图片1.png

深拷贝-Python 面试问题及答案
浅拷贝是将对象的引用复制给另一个对象。因此,如果我们在副本中进行更改,则会影响原对象。使用 copy函数进行浅拷贝,使用方法如下:


图片2.png

浅拷贝—Python 面试问题及答案

Q.3. 列表和元祖有什么不同?

主要区别在于列表是可变的,元祖是不可变的。看下面的例子:
[图片上传失败...(image-c7515f-1550846426851)]
会出现以下错误提示:
TypeError: ‘tuple’ object does not support item assignment

Q.4. 解释 Python 中的三元表达式

与 C++不同, 在 Python 中我们不需要使用 ? 符号,而是使用如下语法:
[on true] if [expression]else [on false]

如果 [expression] 为真, 则 [on true] 部分被执行。如果表示为假则 [on false] 部分被执行

下面是例子:
[图片上传失败...(image-ca75a8-1550846426851)]
输出:2
[图片上传失败...(image-e71023-1550846426851)]
输出:Hi

Q.5. Python 中如何实现多线程?

线程是轻量级的进程,多线程允许一次执行多个线程。众所周知,Python 是一种多线程语言,它有一个多线程包。

GIL(全局解释器锁)确保一次执行单个线程。一个线程保存 GIL 并在将其传递给下一个线程之前执行一些操作,这就产生了并行执行的错觉。但实际上,只是线程轮流在 CPU 上。当然,所有传递都会增加执行的开销。

Q.6. 解释继承

一个类继承自另一个类,也可以说是一个孩子类/派生类/子类,继承自父类/基类/超类,同时获取所有的类成员(属性和方法)。

继承使我们可以重用代码,并且还可以更方便地创建和维护代码。Python 支持以下类型的继承:

  1. 单继承- 一个子类类继承自单个基类
  2. 多重继承- 一个子类继承自多个基类
  3. 多级继承- 一个子类继承自一个基类,而基类继承自另一个基类
  4. 分层继承- 多个子类继承自同一个基类
  5. 混合继承- 两种或两种以上继承类型的组合

Q.7. 什么是 Flask?

Flask 是一个使用 Python 编写的轻量级 Web 应用框架,使用 BSD 授权。其 WSGI 工具箱采用 Werkzeug,模板引擎则使用 Jinja2。除了 Werkzeug 和 Jinja2 以外几乎不依赖任何外部库。因为 Flask 被称为轻量级框架。

Flask 的会话会话使用签名 cookie 来允许用户查看和修改会话内容。它会记录从一个请求到另一个请求的信息。但如果要修改会话,则必须有密钥 Flask.secret_key。

Q.8. 如何在 Python 中管理内存?

Python 用一个私有堆内存空间来放置所有对象和数据结构,我们无法访问它。由解释器来管理它。不过使用一些核心 API,我们可以访问一些 Python 内存管理工具控制内存分配。

Q.9. 解释 Python 中的 help 函数和 dir 函数。

help 函数返回帮助文档和参数说明:
[图片上传失败...(image-751e26-1550846426851)]
运行结果如下:
Help on function copy in module copy
copy(x)
Shallow copy operation on arbitrary Python objects.
See the module』s doc string for more info.
dir 函数返回对象中的所有成员 (任何类型)
[图片上传失败...(image-be7db6-1550846426851)]

Q.10. 当退出 Python 时是否释放所有内存分配?

答案是否定的。那些具有对象循环引用或者全局命名空间引用的变量,在 Python 退出是往往不会被释放.
另外不会释放 C 库保留的部分内容。

Q.11. 什么是猴子补丁?

在运行时动态修改类和模块
[图片上传失败...(image-26dc7f-1550846426851)]
Hi, monkey

Q.12. 什么是 Python 字典?

字典是我在 C++和 Java 中没有见过的数据结构,它拥有键-值对
[图片上传失败...(image-93c0ed-1550846426851)]
3
字典是可变的,我们也可以用推导式的方式创建它.
[图片上传失败...(image-2b1374-1550846426851)]

Q.13. 能否解释一下 *args 和 **kwargs?

如果我们不知道将多少个参数传递给函数,比如当我们想传递一个列表或一个元组值时,就可以使用args。
[图片上传失败...(image-e67a59-1550846426851)]
3
2
1
4
7
当我们不知道将会传入多少关键字参数时,使用
*kwargs 会收集关键字参数。
[图片上传失败...(image-9ae44d-1550846426851)]
a.1
b.2
c.7
使用 args 和 kwargs 作为参数名只是举例,可以任意替换。
对于 Python 的基础题任何疑问,请在评论区提问。

Q.14. 编程实现计算文件中的大写字母数

[图片上传失败...(image-e34880-1550846426851)]
26

Q.15. 什么是负索引?

我们先创建如下列表:
[图片上传失败...(image-6793ec-1550846426851)]
与正索引不同,负索引是从右边开始检索。
[图片上传失败...(image-1d9bb9-1550846426851)]
6
同样可以用于列表的切片:
[图片上传失败...(image-2179eb-1550846426851)]
[3, 4, 5, 6, 7]

Q.16. 如何随机打乱列表中元素,要求不引用额外的内存空间?

我们用 random 包中的 shuffle 函数来实现。
[图片上传失败...(image-8ac872-1550846426851)]
[3, 4, 8, 0, 5, 7, 6, 2, 1]

Q.17. 解释 Python 中的 join 和 split 函数

join 函数可以将指定的字符添加到字符串中。
[图片上传失败...(image-b763d7-1550846426851)]
‘1,2,3,4,5’

split 函数可以用指定的字符分割字符串
[图片上传失败...(image-712868-1550846426851)]
[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

Q.18. Python 区分大小写吗?

验证 Python 是否区分大小写的方法是测试 myname 和 Myname 在程序中是不是算同一个标识符。观察以下代码的返回结果:
[图片上传失败...(image-9d31ee-1550846426851)]
Myname

NameError: name ‘Myname’ is not defined

如你所见,这里出现了 NameError,所以 Python 是区分大小的语言。

Q.19. Python 中标识符的命名规则?

Python 中的标识符可以是任意长度,但必须遵循以下命名规则:

  1. 只能以下划线或者 A-Z/a-z 中的字母开头。
  2. 其余部分只能使用 A-Z/a-z/0-9。
  3. Python 标识符区分大小写。
  4. 关键字不能作为标识符。Python 有以下这些关键字:
    [图片上传失败...(image-1569f4-1550846426851)]

Q.20. 如何删除字符串中的前置空格

前置空格是第一个非空格字符前的所有空格,使用 lstrip 函数来删除.
[图片上传失败...(image-730fb8-1550846426851)]
‘Ayushi ‘
如图这个字符串既包含前置空格也包含后置空格. 调用 lstrip 函数去除了前置空格。如果想去除后置空格,使用 rstrip 函数。
[图片上传失败...(image-85c124-1550846426851)]
‘ Ayushi’

Q.21. 如何将字符串转换为小写?
使用 lower 函数
[图片上传失败...(image-d02302-1550846426851)]
‘ayushi’
转换为大写用 upper 函数
[图片上传失败...(image-cf3c32-1550846426851)]
‘AYUSHI’

要检查字符串是否为全大写或全小写,使用 isupper 和 islower 函数
[图片上传失败...(image-f4af69-1550846426851)]
像 @ 和$这样的字符即满足大写也满足小写。

istitle 可以检查字符串是否是标题格式。
[图片上传失败...(image-d0884e-1550846426851)]
True

Q.22. Python 中的 pass 语句有什么作用?

我们在写代码时,有时可能只写了函数声明而没想好函数怎么写,但为了保证语法检查的正确必须输入一些东西。在这种情况下,我们使用 pass 语句。
[图片上传失败...(image-db5e8d-1550846426851)]
类似的 break 语句可以跳出循环。
[图片上传失败...(image-b96553-1550846426851)]
0
1
2
continue 语句可以跳到下一轮循环。
[图片上传失败...(image-9875d9-1550846426851)]
0
1
2
4
5
6

Q.23. 请解释 Python 中的闭包?

如果在一个内部函数里。对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就是一个闭包。
[图片上传失败...(image-3037d0-1550846426851)]
7

Q.24. 解释 Python 中的//,%和**运算符

//运算符执行地板除法,返回结果的整数部分 (向下取整)。
[图片上传失败...(image-5fbf41-1550846426851)]
3
用/符号除法结果为 3.5。
符号表示取幂. ab 返回 a 的 b 次方
[图片上传失败...(image-9abbe8-1550846426851)]
% 是取模符号。返回除法后的余数。
[图片上传失败...(image-175337-1550846426851)]
6
[图片上传失败...(image-c71db2-1550846426851)]
0.5
对于 Python 进阶面试问题和答案有任何疑问请在评论区提问。

Q.24. Python 中有多少种运算符,解释算术运算符。

这类面试问题可以判断你的 Python 功底,可以举一些实例来回答这类问题。

在 Python 中我们有 7 中运算符:算术运算符、关系 (比较) 运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

  1. 加号 (+) 将两个对象的值相加。
    [图片上传失败...(image-fc6eaf-1550846426851)]
    15
  2. 减号 (-) 将第一个对象的值减去第二个对象的值。
    [图片上传失败...(image-87ef93-1550846426851)]
    -1
  3. 乘号 (*) 将两个对象的值相乘。
    [图片上传失败...(image-337cf0-1550846426851)]
    56
  4. 除号 (/) 将第一个对象的值除以第二个对象的值。
    [图片上传失败...(image-e1bd63-1550846426851)]
    [图片上传失败...(image-417ac-1550846426851)]
    1.0
    关于地板除法、取模和取幂,请参考上一个问题。

Q.25. 解释 Python 中的关系运算符。

关系运算符用来比较两个对象。
1.判断小于 (<):如果符号左边的值比右边小则返回 True。
[图片上传失败...(image-6a21e9-1550846426851)]
False

2.判断大于 (>):如果符号左边的值比右边大则返回 True。
[图片上传失败...(image-3f5c3-1550846426851)]
True

出现上面的错误结果是因为 Python 的浮点运算存在一些 Bug。

3.判断小于等于 (<=):如果符号左边的值小于或等于右边则返回 True。
[图片上传失败...(image-238a2c-1550846426851)]
True

4.大判断于等于 (>=):如果符号左边的值大于或等于右边则返回 True。
[图片上传失败...(image-d166ff-1550846426851)]
True

5.判断等于 (==) 如果符号两边的值相等则返回 True。
[图片上传失败...(image-c7cc76-1550846426851)]
True

6.判断不等于 (!=) 如果符号两边的值不等则返回 True。
[图片上传失败...(image-dac964-1550846426851)]
True
[图片上传失败...(image-a9f47-1550846426851)]
True

Q.26. 解释 Python 中的赋值和算数运算符?

[图片上传失败...(image-681941-1550846426851)]

Q.27. 解释 Python 中的逻辑运算符

Python 中有三个逻辑运算符:and、or、not
[图片上传失败...(image-3aed2d-1550846426851)]

Q.28. 解释 Python 中的成员运算符

使用 in 和 not in 运算符我们可以判断某个值是否在成员中。
[图片上传失败...(image-541d64-1550846426851)]

Q.29. 解释 Python 中的身份运算符

这是非常常见的 Python 面试题,用下面的示例来回答.
is 和 not is 运算符可以判断两个对象是否相同
[图片上传失败...(image-5caa62-1550846426851)]

Q.30. 解释 Python 中的位运算符

此运算符按二进制位对值进行操作。

1.与 (&) 返回按位与结果
[图片上传失败...(image-eb0f6c-1550846426851)]
2

2.或 (|) 返回按位或结果
[图片上传失败...(image-1d4ea1-1550846426851)]
3

3.异或 (^) 返回按位异或结果
[图片上传失败...(image-17bb11-1550846426851)]
1

4.取反 (~) 返回按位取反结果
[图片上传失败...(image-369c37-1550846426851)]
-3

5.左移位 (<<) 将符号左边数的二进制左移右边数位
[图片上传失败...(image-688652-1550846426851)]
4

1 的二级制 001 左移 2 位变成 100 也即十进制的 4

6.右移位 (>>)
[图片上传失败...(image-32f9d0-1550846426851)]
1

Q.31. 如何在 Python 使用多进制数字?

除十进制以外,在 Python 中还可以使用二进制、八进制、十六进制。

1.二进制数有 0 和 1 组成,我们使用 0b 或 0B 前缀表示二进制数
[图片上传失败...(image-3eaeff-1550846426851)]
10

使用 bin 函数可以将数字转换为二进制
[图片上传失败...(image-21eb6-1550846426851)]
‘0b1111’

2.八进制数由数字 0-7 组成,使用前缀 0o 或 0O 表示 8 进制数
[图片上传失败...(image-d5a3ab-1550846426851)]
‘0o10’

3.十六进数由数字 0-15 组成,使用前缀 0x 或者 0X 表示 16 进制数
[图片上传失败...(image-7f1ab5-1550846426851)]
‘0x10’
[图片上传失败...(image-eb0e09-1550846426851)]
‘0xf’

Q.32. 如何获取字典中的所有键?

使用 keys 来获取字典中的所有键
[图片上传失败...(image-5f7cc8-1550846426851)]

Q.33. 问什么标识符不建议使用下划线开头?

因为在 Python 中以下划线开头的变量为私有变量,如果你不想让变量私有,就不要使用下划线开头。

Q.34. 如何声明多个变量并赋值?

有两种方式:
[图片上传失败...(image-f65745-1550846426851)]

Q.35. 什么是元组的解封装?

首先我们来介绍元组封装:
[图片上传失败...(image-18dfc4-1550846426851)]
(3, 4, 5)

将 3,4,5 封装到元组 mytuple 中。

现在我们要将这些值解封装到变量 x,y,z 中
[图片上传失败...(image-723350-1550846426851)]
12

Q.36. 简述面向对象中newinit区别

init是初始化方法,创建对象后,就立刻被默认调用了,可接收参数。

(1、new至少要有一个参数cls,代表当前类,此参数在实例化时由Python解释器自动识别。

(2、new必须要有返回值,返回实例化出来的实例,这点在自己实现new时要特别注意,可以return父类(通过super(当前类名, cls))new出来的实例,或者直接是object的new出来的实例。

(3、init有一个参数self,就是这个new返回的实例,initnew的基础上可以完成一些其它初始化的动作,init不需要返回值。

(4、如果new创建的是当前类的实例,会自动调用init函数,通过return语句里面调用的new函数的第一个参数是cls来保证是当前类实例,如果是其他类的类名,;那么实际创建返回的就是其他类的实例,其实就不会调用当前类的init函数,也不会调用其他类的init函数。

Q.37.简述Django的orm

ORM,全拼Object-Relation Mapping,意为对象-关系映射。

实现了数据模型与数据库的解耦,通过简单的配置就可以轻松更换数据库,而不需要修改代码只需要面向对象编程,orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句,所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可。

Q.38.列出常见MYSQL数据存储引擎

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

Q.39.简述多线程、多进程

进程:

1、操作系统进行资源分配和调度的基本单位,多个进程之间相互独立
2、稳定性好,如果一个进程崩溃,不影响其他进程,但是进程消耗资源大,开启的进程数量有限制

线程:
1、CPU进行资源分配和调度的基本单位,线程是进程的一部分,是比进程更小的能独立运行的基本单位,一个进程下的多个线程可以共享该进程的所有资源
2、如果IO操作密集,则可以多线程运行效率高,缺点是如果一个线程崩溃,都会造成进程的崩溃

应用:
IO密集的用多线程,在用户输入,sleep 时候,可以切换到其他线程执行,减少等待的时间
CPU密集的用多进程,因为假如IO操作少,用多线程的话,因为线程共享一个全局解释器锁,当前运行的线程会霸占GIL,其他线程没有GIL,就不能充分利用多核CPU的优势

Q.40.IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分别代表什么异常

IOError:输入输出异常
AttributeError:试图访问一个对象没有的属性
ImportError:无法引入模块或包,基本是路径问题
IndentationError:语法错误,代码没有正确的对齐
IndexError:下标索引超出序列边界
KeyError:试图访问你字典里不存在的键
SyntaxError:Python代码逻辑语法出错,不能执行
NameError:使用一个还未赋予对象的变量

Q.41.MyISAM 与 InnoDB 区别:

(1、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM就不可以了;

(2、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到安全性较高的应用;

(3、InnoDB 支持外键,MyISAM 不支持;

(4、对于自增长的字段,InnoDB 中必须包含只有该字段的索引,但是在 MyISAM表中可以和其他字段一起建立联合索引;

(5、清空整个表时,InnoDB 是一行一行的删除,效率非常慢。MyISAM 则会重建表;

Q.42.单引号、双引号、三引号用法

(1、单引号和双引号没有什么区别,不过单引号不用按shift,打字稍微快一点。表示字符串的时候,单引号里面可以用双引号,而不用转义字符,反之亦然。
'She said:"Yes." ' or "She said: 'Yes.' "

(2、但是如果直接用单引号扩住单引号,则需要转义,像这样:
' She said:'Yes.' '

(3、三引号可以直接书写多行,通常用于大段,大篇幅的字符串
"""helloworld"""

Q.43.HTTP请求中get和post区别

(1、GET请求是通过URL直接请求数据,数据信息可以在URL中直接看到,比如浏览器访问;而POST请求是放在请求头中的,我们是无法直接看到的;

(2、GET提交有数据大小的限制,一般是不超过1024个字节,而这种说法也不完全准确,HTTP协议并没有设定URL字节长度的上限,而是浏览器做了些处理,所以长度依据浏览器的不同有所不同;POST请求在HTTP协议中也没有做说明,一般来说是没有设置限制的,但是实际上浏览器也有默认值。总体来说,少量的数据使用GET,大量的数据使用POST。

(3、GET请求因为数据参数是暴露在URL中的,所以安全性比较低,比如密码是不能暴露的,就不能使用GET请求;POST请求中,请求参数信息是放在请求头的,所以安全性较高,可以使用。在实际中,涉及到登录操作的时候,尽量使用HTTPS请求,安全性更好。

Q.44.请尽可能列举python列表的成员方法,并给出列表操作的答案:

(1) a=[1, 2, 3, 4, 5], a[::2]=?, a[-2:] = ?
(2)一行代码实现对列表a中的偶数位置的元素进行加3后求和?
(3)将列表a的元素顺序打乱,再对a进行排序得到列表b,然后把a和b按元素顺序构造一个字典d。

Q.45.请问下面的代码有什么隐患?

def strtest1(num):
str = ‘first’
for i in range(num):
str += ’X’
return str

由于变量str是个不可变对象,每次迭代,python都会生成新的str对象来存储新的字符串,num越大,创建的str对象越多,内存消耗越大。

Q.46.单引号,双引号,三引号的区别

单引号和双引号是等效的,如果要换行,需要符号(),三引号则可以直接换行,并且可以包含注释

如果要表示Let’s go 这个字符串
单引号:s4= ‘Let\’s go’
双引号:s5= “Let’s go”
s6 = ‘I realy like“python”!’
这就是单引号和双引号都可以表示字符串的原因了

Q.47.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)

赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。

浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}

深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

Q.48.介绍一下Python下range()函数的用法?

列出一组数据,经常用在for in range()循环中

Q.49.请问如何修改以下Python代码,使得下面的代码调用类A的show方法?

[图片上传失败...(image-dbed0b-1550846426851)]
答:这道题的考点是类继承,只要通过class 方法指定类对象就可以了。补充的代码如下:
[图片上传失败...(image-d10bb9-1550846426851)]
Q.50.请问如何修改以下Python代码,使得代码能够运行?
[图片上传失败...(image-1bfad-1550846426851)]
此题考察得是方法对象,为了能让对象实例能被直接调用,需要实现 call 方法,补充代码如下:
[图片上传失败...(image-1644b3-1550846426851)]

Q.51.一个包里有三个模块,mod1.py , mod2.py , mod3.py ,但使用 from demopack import * 导入模块时,如何保证只有 mod1 、 mod3 被导入了。

在包中增加 init.py 文件,并在文件中增加:all = [‘mod1’,’mod3’]

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

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,725评论 0 10
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,142评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,092评论 1 32
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,450评论 1 45
  • 今天突然来了兴致,想做一件别具一格的事情来亮瞎你们的钛合金狗眼。于是我找来了一张仅能容下一个人的凉席,拿了一个小巧...
    子向往阅读 838评论 0 0