第一模块: 开发基础(2)

二进制

二进制与十进制之间的转换
求342的二进制数

bin(342)
'0b101010110'

ASCII码

计算通过ASCII码将数字转换成文字

ASCII.png

每一个0或1所占的空间单位为bit(比特)
计算机最小的存储单位为1bytes=8bit,1bytes缩写为1B
1KB = 1024B


字符编码发展历史

  • GB2312 1981年
  • GBK1.0 1995年
  • GB18030 2000年
  • Unicode 1991年
  • UTF-8

Python2默认编码是ascii码,需要指定编码为utf-8才能支持中文# -*- conding: utf-8 -*-;
Python3默认编码编码是;


Python数据类型补充

浮点数

浮点数是属于有理数的子集,在计算机中用以近似标识任意某个实数.

科学计数法1332 = 1.332e3
复数-5+4j(量子力学)

python默认浮点数是17位的精度

高精度浮点数方法

>>> from decimal import *
>>> getcontext()
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
>>> getcontext().prec
28
>>> getcontext().prec = 50
>>> a = Decimal(1)/Decimal(3)
>>> a
Decimal('0.33333333333333333333333333333333333333333333333333')

列表

列表是一个数据的集合,集合被可以放任何数据类型,可以对集合进行方便的增删改查;

列表的功能:

  • 创建
name = [1, 2, 3]
name = list('123')
  • 查询,通过index查询,从0开始 name[2]
  • 切片 name[1:3] name[:2] name[::2] name[1:-2]
  • 增加 name.append(1) name.insert(0,3)
  • 修改 name[1] = 2
  • 删除 name.pop() name.remove(2) del name[2]
  • 循环
for i in name:
  print(i)

for i in range(10):
  print(i)
  • 排序 name.sort()
  • 扩展 list1.extend(list2) list1 + list2

使用枚举打印列表和索引值:

>>> name = ['alex', 'zhangsan', 'lisi']
        
>>> enumerate(name)
        
<enumerate object at 0x00000214D33EECA8>
>>> for i in enumerate(name):
        print(i)

        
(0, 'alex')
(1, 'zhangsan')
(2, 'lisi')

深拷贝

name = ['alex', 'zhangsan', 'lisi', [1, 3]]
import copy
n1 =  copy.deepcopy(name)

字符串

字符串是一个有序的字符的集合, 用于存储和标识基本的文本信息, 一对单,双或三引号中间包含的内容称之为字符串.

特性:

  • 有序
  • 不可变

字符串方法(*号为常用方法):

capitalize
casefold
center *
count *
encode
endswith
expandtabs
find
format *
format_map
index
isalnum
isalpha
isdecimal
isdigit *
isidentifier
islower
isnumeric
isprintable
isspace
istitle
isupper
join *
ljust
lower
lstrip
maketrans
partition
replace *
rfind
rindex
rjust
rpartition
rsplit
rstrip
split *
splitlines
startswith
strip *
swapcase
title
translate
upper
zfill

元祖

元祖其实就是只读列表,支持切片,

name = ('zhangsan', 'lisi')
name.index('lisi')
name.count('zhangsan')

hash

hash, 一般翻译成"散列",就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值. 这种转换是一种压缩映射,也就是,散列值的空间远小于输入空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值.简单的说是一种将任意长度的消息压缩到某个固定长度的消息摘要的函数.

特征:
hash值的计算过程是依据这个值的一些特征计算的,这就要求hash值必须固定,因此hash的值必须是不可变的.

用途:

  • 文件签名
  • md5 加密
  • 密码验证

字典

字典是一种key-value的数据类型,使用就像我们上学用的字典,通过笔画,字母来查对应页的详细内容.

特性:

  • key-value结构
  • key必须可hash, 且必须为不可变数据类型,必须唯一
  • 可存放任意多个值, 可修改, 可以不唯一
  • 无序
  • 查找速度快

字典的创建与特性

  • 创建
person = {"name": "fbo", 'age': 18}
person = dict(name='seven', age = 20)
person = dict({"name": "egon", 'age': 20})
person = dict(["name", "haha"], ['age', 18])
{}.fromkeys(['k1', 'k2'],[])

字典的常见操作

  1. dic.keys()
  2. dic.values()
  3. dic.items()
  4. dic.iteritems() dic.iterkeys() dic.itervalues()
  5. dic['new_key'] = 'new_value'
  6. dic.setdefault(key, None)
  7. dic.pop(key[, default])
  8. dic.clear()
  9. dic.['key'] = 'new_value'
  10. dic.update(dic2)
  11. dic['key']
  12. dict.get(key, default = None)
  13. for k in dic.keys()
  14. for k,v in dic.items()
  15. for k in dic
  16. len(dic)

练习:
写代码, 有如下字典,按照要求实现每一个功能die = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}

  1. 请循环遍历出所有的key
for k in  die.keys():
  print(k)
  1. 请循环遍历出所有的value
for v in die.values():
  print(v)
  1. 请循环遍历出书友的key和value
for k,v in die.items():
  print(k,v)
  1. 请在字典中添加一个键值对'k4': 'v4',输出添加后的字典
die['k4'] = 'v4'
print(die)
  1. 请删除字典中的键值对'k1', 'v1',并输出删除后的字典
die.pop('k1')
print(die)
  1. 请删除字典中的键'k5'对应的键值对, 如果字典中不存在'k5',则不报错, 并让其返回None
die.pop('k5', None)
  1. 请获取字典中'k2'的值
    die.get('k2')
  2. 请获取字典中'k6'的值,如果'k6'不存在,则不报错,让其返回None
    die.get('k6')
  3. 现有 dic2 = {'k1': 'v111', 'a': 'b'}通过一行操作使dic2 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'a': 'b'}
>>> dic2 = {'k1': 'v111', 'a': 'b'}
>>> dic2['k1'] = 'v1'
>>> dic2['k2'] = 'v2'
>>> dic2['k3'] = 'v3'
>>> dic2
{'k2': 'v2', 'k1': 'v1', 'a': 'b', 'k3': 'v3'}
  1. 组合嵌套题, 写代码, 有如下列表,按照要求实现每一个功能
    lis = [['k', ['qwe', 20, {'k1': ['tt', 3, '1']},89], 'ab']]
  • 将lis中的tt变成大写(两种方式)
  • 将列表中的3变成字符串'100'
  • 将列表中的字符串'1'变成数字101
lis[0][1][2].get('k1')[0] = 'TT'
lis[0][1][2].get('k1')[1] = '100'
lis[0][1][2].get('k1')[0] = 101

lis[0][1][2]['k1'][0] = 'TT'
lis[0][1][2]['k1'][0] = '100'
lis[0][1][2]['k1'][0] = 101
  1. 按照要求实现一下功能:
    现有一个列表 li = [1,2,3,'a','b',4,'c'],有一个字典(此字典是动态生成的,你不知道他里面有多少键值对,所以用dic = {}模拟字典); 现在要完成这样的操作: 如果该字典你没有'k1'这个键, 那就创建这个'k1'键和其对应的值(该对应的值设置为空列表), 并将li中的索引位位奇数对应的元素,添加到'k1'这个键对应的空列表中,如果字典中有'k1'这个键,且k1对应的value是列表类型,那么将li中的索引位为奇数的元素,添加到'k1'这个键对应的列表中
#!/usr/bin/env python3                                                                                                                                                         
#Author:fbo
#Time:2018-03-23 21:21:11
#Name:test.py
#Version:V1.0

li = [1,2,3,'a','b',4,'c']
#dic = {}
dic = {'k1': ['start']}

if not dic.get('k1', None):
    dic['k1'] = []
    for i in range(len(li)):
        if i % 2:
            dic['k1'].append(li[i])
else:
    if type(dic['k1']) == type([]):
        for i in range(len(li)):
            dic['k1'].append(li[i])

print(dic)

集合类型

集合是一个无序, 不从夫的数据组合,它的主要作用如下:

  • 去重
  • 关系测试, 交集、差集、并集等关系
>>> l = [1,2,3,4,5]
>>> s = set(l)
>>> s
{1, 2, 3, 4, 5}
>>> s = {1,2,3,4,5}

交集:

set1.intersection(set2)
set1 & set2

差集

set1.difference(set2)
set1 - set2

并集

set1.union(set2)
set1 | set2

对称差集

set.symmetric_difference(set2)

子集和超集

set1.issubset(set2)
set2.issupperset(set2)

字符编码回顾

www.cnblogs.com/alex3714/articles/7550940.html


练习

  1. 请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex', 'eric', 'rain']
'_'.join(li)
  1. 查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
for i in li:
    i = i.strip()
    if i.startswith('a') or i.startswith('A') and i.endswith('c'):
            print(i)

tu = ("alec", " aric", "Alex", "Tony", "rain")
for i in tu:
   i = i.strip()
    if i.startswith('a') or i.startswith('A') and i.endswith('c'):
           print(i)

dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
for v in dic.values():
    v = v.strip()
   if v.startswith('a') or v.startswith('A') and v.endswith('c'):
           print(v)
  1. 写代码,有如下列表,按照要求实现每一个功能
    li=['alex', 'eric', 'rain']
  • 计算列表长度并输出
  • 列表中追加元素“seven”,并输出添加后的列表
  • 请在列表的第1个位置插入元素“Tony”,并输出添加后的列表
  • 请修改列表第2个位置的元素为“Kelly”,并输出修改后的列表
  • 请删除列表中的元素“eric”,并输出修改后的列表
  • 请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
  • 请删除列表中的第3个元素,并输出删除元素后的列表
  • 请删除列表中的第2至4个元素,并输出删除元素后的列表
  • 请将列表所有的元素反转,并输出反转后的列表
  • 请使用for、len、range输出列表的索引
  • 请使用enumrate输出列表元素和序号(序号从100开始)
  • 请使用for循环输出列表的所有元素
li = ['alex', 'eric', 'rain']

print(len(li))

li.append('seven')
print(li)

li.insert(0, 'Tony')
print(li)

li.insert(1, 'Kelly')
print(li)

li.remove('eric')
print(li)

print(li[1])
del li[1]
print(li)

del li[2]
print(li)

del li[1:4]
print(li)

li.reverse()
print(li)

for k, v in enumerate(li, 100):
    print(v, k)

for i in range(
  1. 写代码,有如下列表,请按照功能要求实现每一个功能
'''
li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]

- 请根据索引输出“Kelly”
- 请使用索引找到'all'元素并将其修改为“ALL”,如:li[0][1][9]...
'''

li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]
print(li[2][1][1])
li[2][2] = li[2][2].upper()
print(li)
  1. 写代码,有如下元组,请按照功能要求实现每一个功能
'''
计算元组长度并输出
获取元组的第2个元素,并输出
获取元组的第1-2个元素,并输出
请使用for输出元组的元素
请使用for、len、range输出元组的索引
请使用enumrate输出元祖元素和序号(序号从10开始)
'''
tu = ('alex', 'eric', 'rain')

print(len(tu))
print(tu[1])
print(tu[0:2])

for i in tu:
    print(i)

for i in range(0, len(tu)):
    print(i)

for k,v in enumerate(tu, 10):
    print(v, k)
  1. 有如下变量,请实现要求的功能
"""
讲述元祖的特性
请问tu变量中的第一个元素“alex”是否可被修改?
请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven”
"""
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11, 22, 33)}, 44])

"元组是不可变的有序列表"

"k2对应的类型是列表,可以更改"
tu[1][2]["k2"].append("Seven")

"k3对应的元素类型是元组,不可以被更改"
  1. 字典
"""
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

请循环输出所有的key
请循环输出所有的value
请循环输出所有的key和value
请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
请在修改字典中“k1”对应的值为“alex”,输出修改后的字典
请在k3对应的值中追加一个元素44,输出修改后的字典
请在k3对应的值的第1个位置插入个元素18,输出修改后的字典
"""
dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}

for k in dic.keys():
    print(k)

for v in dic.values():
    print(v)

for k,v in dic.items():
    print(k, v)

dic['k4'] = 'v4'
print(dic)

dic['k1'] = 'alex'
print(dic)

dic['k3'].append(44)
print(dic)

dic['k3'].insert(0, 18)
print(dic)
  1. 转换
# 将字符串s = "alex"转换成列表
s = "alex"
print(list(s))
# 将字符串s = "alex"转换成元祖
s = "alex"
print(tuple(s))
# 将列表li = ["alex", "seven"]转换成元组
li = ["alex", "seven"]
print(tuple(li))
# 将元祖tu = ('Alex', "seven")转换成列表
tu = ('Alex', "seven")
print(list(tu))
# 将列表li = ["alex", "seven"]转换成字典且字典的key按照10开始向后递增
li = ["alex", "seven"]
print(dict(zip(range(10, len(li) + 10), li)))
  1. 元素分类
# 有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
#
# 即:{'k1':大于66的所有值, 'k2':小于66的所有值}

li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]

d = {
    'k1': [],
    'k2': []
}

for i in li:
    if i > 66:
        d['k1'].append(i)
    elif i< 66:
        d['k2'].append(i)

print(d)
  1. 输出商品列表,用户输入序号,显示用户选中的商品
# 输出商品列表,用户输入序号,显示用户选中的商品
#
# 商品li = ["手机", "电脑", '鼠标垫', '游艇']
#
# 允许用户添加商品
# 用户输入序号显示内容

li = ["手机", "电脑", '鼠标垫', '游艇']

while True:
    print("list".center(80, '-'))
    for k, v in enumerate(li):
        print(k, v)
    user_choice = input("请选择商品,(a 添加商品, q 退出)>>> ").strip()
    if user_choice.isdigit():
        user_choice = int(user_choice)
        if 0 <= user_choice < len(li):
            print(li[user_choice])
        else:
            print("商品不存在!")
    elif user_choice == 'a':
        user_product = input("请输入你想添加的商品>>> ").strip()
        li.append(user_product)
    elif user_choice == 'q':
        break
    else:
        print("输入错误,请重新输入~")
  1. 用户交互显示类似省市县N级联动的选择
# 允许用户增加内容
# 允许用户选择查看某一个级别内容
  1. 列举布尔值是False的所有值
    None 0 [] {}
  2. 有两个列表
# l1 = [11,22,33]
#
# l2 = [22,33,44]
#
# 获取内容相同的元素列表
# 获取l1中有,l2中没有的元素列表
# 获取l2中有,l3中没有的元素列表
# 获取l1和l2中内容都不同的元素

l1 = [11, 22, 33]
l2 = [22, 33, 44]

set1 = set(l1)
set2 = set(l2)

print(set1.intersection(set2))
print(set1.difference(set2))
print(set2.difference(set1))
print(set1.symmetric_difference(set2))
  1. 利用For循环和range输出
# For循环从大到小输出1 - 100
for i in range(1, 101):
    print(i)
# For循环从小到到输出100 - 1
for i in range(0, 100):
    print(100 - i)
# While循环从大到小输出1 - 100
count = 1
while count <= 100:
    print(count)
    count += 1
# While循环从小到到输出100 - 1
count = 100
while count > 0:
    print(count)
    count -= 1
  1. 利用for循环和range输出9 * 9乘法表
for i in range(1, 10):
    for j in range(1, 10):
        print("%s * %s = %s" % (j, i, i*j),end="\t")
    print()
  1. 求100以内的素数和。(编程题)
sum = 0
for i in range(1, 100):
    if i == 1:
        continue
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        sum += i
        print(i)

print(sum)
  1. 将[1,3,2,7,6,23,41,24,33,85,56]从小到大排序(冒泡法)
li = [1, 3, 2, 7, 6, 23, 41, 24, 33, 85, 56]

for i in range(0, len(li) - 1):
    if li[i] > li[i + 1]:
        li[i], li[i + 1] = li[i + 1], li[i]

print(li)

作业

三级菜单

menu = {
    '北京':{
        '海淀':{
            '五道口':{
                'soho':{},
                '网易':{},
                'google':{}
            },
            '中关村':{
                '爱奇艺':{},
                '汽车之家':{},
                'youku':{},
            },
            '上地':{
                '百度':{},
            },
        },
        '昌平':{
            '沙河':{
                '老男孩':{},
                '北航':{},
            },
            '天通苑':{},
            '回龙观':{},
        },
        '朝阳':{},
        '东城':{},
    },
    '上海':{
        '闵行':{
            "人民广场":{
                '炸鸡店':{}
            }
        },
        '闸北':{
            '火车战':{
                '携程':{}
            }
        },
        '浦东':{},
    },
    '山东':{},
}

需求:

  • 可依次选择进入各子菜单
  • 可从任意一层往回退到上一层
  • 可从任意一层退出程序
  • 所需新知识点:列表、字典
#!/usr/bin/env python3
# Author:fbo
# Version:V1.0

menu = {
    '北京': {
        '海淀': {
            '五道口': {
                'soho': {},
                '网易': {},
                'google': {}
            },
            '中关村': {
                '爱奇艺': {},
                '汽车之家': {},
                'youku': {},
            },
            '上地': {
                '百度': {},
            },
        },
        '昌平': {
            '沙河': {
                '老男孩': {},
                '北航': {},
            },
            '天通苑': {},
            '回龙观': {},
        },
        '朝阳': {},
        '东城': {},
    },
    '上海': {
        '闵行': {
            "人民广场": {
                '炸鸡店': {}
            }
        },
        '闸北': {
            '火车战': {
                '携程': {}
            }
        },
        '浦东': {},
    },
    '山东': {},
}

"""
需求:
可依次选择进入各子菜单
可从任意一层往回退到上一层
可从任意一层退出程序
所需新知识点:列表、字典
"""
current_layer = menu
layers = []

while True:
    for k in current_layer:
        print(k)
    choice = input(">:").strip()
    if not choice:continue
    if choice in current_layer:
        layers.append(current_layer)
        current_layer = current_layer[choice]
    elif choice == 'b':
        if len(layers) != 0:
            current_layer = layers.pop()
        else:
            print("已经是顶层了")

购物车程序

数据结构:
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
......
]

功能要求:
基础要求:

1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表

2、允许用户根据商品编号购买商品

3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒

4、可随时退出,退出时,打印已购买商品和余额

5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示


扩展需求:

1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买

2、允许查询之前的消费记录
#!/usr/bin/env python3
# Author    : fbo
# @Time : 18-3-25 下午10:25
# @File : ex_002.py

import os

goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]

# 功能要求:
# 1、启动程序后,输入用户名密码后,让用户输入工资,然后打印商品列表
# 2、允许用户根据商品编号购买商品
# 3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
# 4、可随时退出,退出时,打印已购买商品和余额
# 5、在用户使用过程中, 关键输出,如余额,商品已加入购物车等消息,需高亮显示
#
# 扩展需求:
# 1、用户下一次登录后,输入用户名密码,直接回到上次的状态,即上次消费的余额什么的还是那些,再次登录可继续购买
# 2、允许查询之前的消费记录

user_list = [['fbo', '123'], ['john', '123']]

count = 0

print("Start".center(80, "-"))
strings = """
salary = %s
shopingCar = %s
""".strip()

while count < 3:
    user = input("Plz input your account: ").strip()
    password = input("Plz input your password: ").strip()
    shopingCar = []
    if [user, password] in user_list:
        if os.path.isfile(user):
            with open(user) as f:
                s = f.read()
            exec(s)
            print("""\033[32mLast time, you have buy %s
            you have bill %s.\033[0m
            """ % (shopingCar, salary))
        else:
            while True:
                salary = input("Plz input your salary: ").strip()
                if salary.isdigit():
                    salary = int(salary)
                    break
                else:
                    print("\033[31mYou must input a number!!!\033[0m")

        while True:
            print("Menu".center(80, "="))
            for k, v in enumerate(goods):
                print("%s\tProduct: %s\tPrice: %s" % (k, v['name'], v['price']))
            print("=" * 80)
            select = input("Plz select which product you want to buy: (q to quit)")
            if select.isdigit():
                select = int(select)
                if 0 <= select < len(goods):
                    if goods[select]['price'] <= salary:
                        shopingCar.append(goods[select])
                        salary -= goods[select]['price']
                        print("\033[32mYou have buy %s, your have salary %s...\033[0m" % (goods[select], salary))
                    else:
                        print("\033[31mYou can't afford this product!!!\033[0m")
                else:
                    print("The produce is not exist!!!")
            elif select == 'q':
                print("\033[32mYou have buy %s, your have salary %s...\033[0m" % (shopingCar, salary))
                strings = strings % (salary, str(shopingCar))
                with open(user, 'w') as f:
                    f.write(strings)
                break
            else:
                print("\033[31mError input, Plz retry!!!\033[0m")

        break
    else:
        if count < 2:
            print("\033[32mUsername or password error, Plz retry!!!\033[0m")
    count += 1
else:
    print("Exit".center(80, "-"))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,931评论 17 410
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,374评论 0 5
  • 大多数人胖的原因大概是…… 瘦小的身躯 容不下他们完美的人格~ 其实无论胖瘦美丑 身体健康最关键…… 亲爱的你们 ...
    刘公子说阅读 155评论 0 2
  • 1.死记硬背的学习是不可取,这是通向书呆子的途径,高分低能的人就是这样来的。要充分发挥动手动脑能力,学以致用是学习...
    追梦进行时2016阅读 121评论 0 0