0%

1 文件操作

1.1 快速读写

写文件

# 1.打开文件,wb模式文件不存在则创建文件,存在则打开文件
file_object = open("unicom.txt", mode="wb")

# 2.写内容
name = "seanliu"
file_object.write(name.encode("utf-8"))

# *.将内存数据写到硬盘上
file_object.flush()

# 3.关闭文件时将内存中的数据写到硬盘上
file_object.close()

追加内容

# ab模式是在原文件内容尾部追加
file_object = open("xxx.txt", mode='ab')

读取内容

# 1.打开文件,rb模式
file_object = open("xxx.txt", mode='rb')

# 2.读取大文件,逐行读取
for line in file_object:
    line_string = line.decode("utf-8")
    line_string = line_string.strip()
    print(line_string)

# 3.关闭文件
file_object.close()

省略模式中的b,b代表字节

# 1.打开文件,w模式在打开文件时指定encoding,在写内容时不需要再编码了
file_object = open("unicom.txt", mode="w", encoding="utf-8")

# 2.写内容
name = "seanliu"
file_object.write(name)

1 字符串 String

1.1 定义

str = "sean"

1.2 独有功能

# 大小写
str_u = str.upper()
str_l = str.lower()

# 所有字符都是阿拉伯数字为True
str_isdecimal = str.isdecimal()

# 替换(count表示替换前几个符合条件的字符,省略表示全部替换)
str.replace(old, new, count)

# 去除空格
str_ls = str.lstrip()
str_rs = str.rstrip()
str_s = str.strip()

# 切割
str = '1234.mp4'
list = str.split('.')
print(list) #['1234', 'mp4']

# 拼接
str1 = "我"
str2 = "谁"
text = "{0}是{1}".format(str1, str2)
print(text)

str_list = ["我", "是", "谁"]
text = ''.join(str_list)
print(text)

# 字符串转换成字节类型
str = "我是谁"
str_encode = str.encode("utf-8")
print(str_encode)
str_decode = str_encode.decode("utf-8")
print(str_decode)

# 长度补足
str = "我是谁"
text = str.center(13, '*')
print(text) # *****我是谁*****
text = str.ljust(13, '*')
print(text) # 我是谁**********
text = str.rjust(13, '*')
print(text) # **********我是谁

2 列表 List

2.1 定义

有序,可变的容器,元素可以是多种不同的数据类型

data_list = [11, 22, "我是谁"True]

2.2 独有功能

# 追加
data_list = ["张", "王", "李"]
data_list.append("赵")
print(data_list) # ['张', '王', '李', '赵']

# 插入
data_list.insert(1, "刘")
print(data_list) # ['张', '刘', '王', '李', '赵']

# 删除(按元素)
if "李" in data_list:
    data_list.remove("李")
print(data_list) # ['张', '刘', '王', '赵']

# 随机获取
import random
data= random.choice(data_list)
print(data)

# 删除(按索引位置)
data_list =  ['张', '刘', '王', '李', '赵']
data_list.pop()
print(data_list) # ['张', '刘', '王', '李']
data = data_list.pop(1)
print(data_list) # ['张', '王', '李']
print(data) # 刘

# 排序
data_list = [1, 4, 3, 65, 23]
data_list.sort()
print(data_list) #[1, 3, 4, 23, 65]
data_list.sort(reverse=True)
print(data_list) #[65, 23, 4, 3, 1]

3 元组 Tuple

有序,不可变的容器,元素可以是多种不同的数据类型

4 字典 Dict

字典是一个无序,键不重复且元素只能是键值对的可变容器。
字典和数组不可hash

info = {
    "name": "liu",
    "gender": "male"
}

# 获取所有key
info.keys()

# 获取所有值
info.values()

# 获得键值元组
for item in info.items():
    print item

for key, value in info.items():
    print(key, value)

5 集合 Set

集合是一个无序,可变,元素必须可哈希,且元素不重复的容器

5.1 定义

v1 = {11, 22}
v1.add(33) # {11, 22, 33}
v1.add(22) # {11, 22, 33}

5.2 独有功能

# 添加元素
v1 = {11, 22}
v1.add(33) # {11, 22, 33}

# 删除元素
v1.discard(44) # 删除,没有元素不报错

# 交集
v1 = {11, 22, 33}
v2 = {22, 33, 44}
res = v1.intersection(v2) #{22, 33}
res = v1 & v2 #{22, 33}

# 并集
res = v1.union(v2) #{11, 22, 33, 44}
res = v1 | v2 #{11, 22, 33, 44}

# 差集
s1 = v1.difference(v2) #{11} v1有v2没有
s1 = v1 - v2
s2 = v2.difference(v1) #{44}
s2 = v2 - v1

6 None类型

None表示空值

7 布尔类型 BOOL

很多类型的值都可以转换成布尔值,下面转换成布尔值时为False

0, "", [], {}, (), set() -> False

8 浮点型 Float

浮点型的存储原理导致其不精确,如果要做到精确需要用到decimal

import decimal
v1 = decimal.Decimal("0.1")
v2 = decimal.Decimal("0.2")
v3 = v1 + v2
print(v3)

9 字节类型 Bytes

name = "我是谁"
data = name.encode("utf-8")
print(data) #b'\xe6\x88\x91\xe6\x98\xaf\xe8\xb0\x81'

正态分布:独立事件的累加分布

正态分布是一种概率分布

均值$\mu$

标准差$\sigma$

经验法则:

样本落在正负1个标准差范围内的概率为:68.2%

样本落在正负2个标准差范围内的概率为:95.5%

样本落在正负3个标准差范围内的概率为:99.7%

6西格玛

核心:中心极限定理

  1. 如果一个事物收到多种因素影响,不管每个因素本身是什么分布,他们加总后,结果的平均值就是正态分布。(抛硬币的独立时间符合0-1平均分布,但多次抛硬币的结果符合正态分布)
  2. 正态分布只适合各种因素累加的情况,如果因素间不是彼此独立的(相互影响),就不会符合正态分布了。(如果各因素是相乘的关系,那么最终结果将符合对数正态分布 log normal distribution

用户故事实战

第14章 用户故事的不良“气味”

故事太小,导致估时不准;

故事相互依赖,导致很难计划迭代;

细节过多,在编写上花费时间过多,在讨论上反而时间很少;

==团队不要忽略口头对话沟通,而过于重视文档;==

过早包含用户界面细节

想的太远,

状态机图

一、什么是状态机?

做产品的时候,我们总能遇到一些比较复杂的逻辑问题,而普通的流程图,或时序图对于对象和状态的解读缺乏直观的描述。

这里我们推荐使用简单的状态图来对逻辑问题进行描述:

有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型

有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。

阅读全文 »