python

#python之旅

格式化字符串

print(str, end= “”) print可以用end= “” 来控制不换行

“{x:<y.zf}”.format()

{<参数序号>:<填充><对齐><宽度><,><.精度><类型>} <,>为千位分隔符

x为format中变量的序号,y为输出宽度,z为精度,<^>分别为靠左中右。

###数字类型及操作

abs() 绝对值

divmov(x, y) 商余 x//y, x%y 如divmov(10, 3) 得(3, 1)

pow(x, y[, z]) 幂余x**y%z

round(x[, d]) x保留 d位

max(…)

min(…)

int(x)

float(x) #转换成浮点数,,,无论str还是int,

字符串类型及操作

切片 <字符串>[M: N: K] M开始 N前结束 K步长 s[::-1] 反序字符串

+连接字符串

*复制字符串

len(x)

str(x) 将x转换成字符串类型 eval(x) 转换成int

hex(x) oct(x) 转换成16 8 进制

chr(u) u为Unicode编码,返回对应的字符

ord(x) x为字符,返回Unicode编码

方法

str.lower()

str.upper()

str.split(sep) 返回一个列表,如"a,b,c".split(",") 返回['a', 'b', 'c']

str.count(sub) 返回sub在str里出现的次数

str,replace(old, new) 将old子串换成new

str.center(width[,fillchar]) str根据宽度width居中,两边用fillchar填充

str.strip(chars) 去掉str左右两侧chars包含的字符

str.join(iter) 在str除最后元素外的每个字符后加一个iter

time库

####获取时间

time.time() 返回时间戳 1970.1.1 0:0开始 s为单位

time.ctime() 返回字符串 易读时间

time.gmtime() 获取当前时间 表示为计算机可处理的时间格式

时间格式化

strftime(tpl, rs)

1
2
3
t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-01-26 12:55:20'

tpl是格式化的输出格式控制

%Y年

%m月(数字) %B月份名称 %b缩写

%d日期

%A星期 %a缩写

%H时间 24h %h 时间12h

%p上下午

%M分钟

%s 秒

strptime(str, tpl)

1
2
timeStr = '2018-01-26 12:55:20'
time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")

程序计时

perf_counter()

1
2
3
start = time.perf_counter()
end = time.perf_counter()
t = end - start

差值才有意义

sleep(s)

二分支结构

表达式1 if 条件 else 表达式2

异常处理

1
2
3
4
5
6
7
try:

except:

else:

finally:

随机数

send() 设置种子

random()产生随机数

不设置种子就会使用当时的系统时间作为种子

randint(a, b) 产生一个[a,b]之间的随即整数

randrange(m, n[, k]) 产生一个[m, n)之间的以k为步长的随即整数

getrandbits(k) 生成一个k比特长的随机整数

uniform(a, b) 生成一个[a, b]之间的随机小数,精度16位

choice(seq) 从序列seq中随机选择一个元素

shuffle(seq) 将序列seq中的元素随机排列

函数

lambda函数

<函数名> = lambda <参数> : <表达式>

1
2
3
>>> f = lambda x, y : x + y
>>> f(10, 15)
25

pyinstaller

可以将py文件编译成可执行文件

  • -h: help
  • –clean: 清理打包过程中的临时文件
  • -D,–onedir :默认值,生成dist文件夹
  • -F, –onedir : 在dist文件夹中只生成独立的打包文件
  • -i <图标文件名.ico> : 指定打包程序使用的图标文件

集合

  • 无序
  • 元素唯一,不相同
  • 元素不变,是不可更改的数据类型
  • {}来表示,元素之间逗号分隔
  • 建立集合用{} 或者set()(建立空集合必备)
集合运算
  • S|T 返回一个新的集合,包括S和T的所有元素
  • S - T 包括在S但是不在T的元素
  • S & T 同时在S和T中的元素
  • S ^ T S和T中不相同的元素
  • S <= T S < T 返回True/False,判断S和T的子集关系
  • S >= T S > T 判断包含关系
增强操作符
  • S |= T 更新集合S,S和T中的所有元素
  • S -= T
  • S &= T
  • S ^= T

集合处理方法

  • S.add(x) 将x增加到S
  • S.discard(x) 移除X,x不在不报错
  • S.remove(x) 同上,但是若X不在S中,产生KeyError异常
  • S.clear() 移除所有元素
  • S.pop() 随机返回S的一个元素,更新S,S为空则产生KeyError异常
  • S.copy() 返回S的副本
  • len(S) 返回S的元素个数
  • x in S 判断x是否在S中
  • x not in S
  • set(x)

序列

  • 具有先后关系的的一组元素
  • 元素对象可以相同,类型可以不同
  • 元素由序号引导,通过下标访问元素

衍生

  • 字符串类型
  • 元组类型
  • 列表类型

序列处理函数及方法

  • x in s
  • x not in s
  • s + t 连接两个序列
  • s*nn*s 序列s复制n次
  • s[i] 返回第i个元素
  • s[i: j: k] 切片 返回i到j以k为步长的元素子序列
    • 栗子 s[::-1] 逆向返回所有元素
  • len(s) 返回长度
  • min(s)
  • max(s)
  • s.index(x) 或 s.index(x, i, j) 返回从i到j位置,x第一次出现的位置
  • s.count(x) 返回序列中x出现的次数

元组类型

  • 一旦创建,不能修改
  • 用() 或者tuple() 创建,元素间用逗号分隔
  • 可以使用(),也可以不用
    • 如程序返回值

列表类型

  • 创建之后可以修改
  • 用[] 或list() 来创建,逗号分隔
  • 元素类型可以不同,没有长度限制
  • 赋值
    • t = s 类似重新命名
  • ls[i, j, k] = lt 将i到j步长为k的元素替换为lt

  • del ls[i] 删除第i元素

  • del ls[i, j, k]
  • ls +=lt lt加到ls ,更新ls
  • ls *= n 更新ls,元素重复n遍
  • ls.append(x) 在最后加一个x
  • ls.clear() 删除全部元素
  • ls.copy() 复制列表,生成新的列表
  • ls .insert(i, x) 第i位置增加x
  • ls.pop(i) 第i位置的元素取出并删除
  • ls.remove(x) 删了第一个出现的x
  • ls.reverse() 将元素反转

字典

理解“映射”:键(索引)和值(数据)的对应

  • 键值对:键是数据索引的扩展
  • 字典是键值对的集合,键值对之间无序
  • 采用大括号{} 和dict()创建,键值对用冒号表示,逗号分隔

字典处理函数及操作方法

  • del d[k] 删除字典d中键k对应的数据值
  • k in d 键k是否在字典d中
  • d.key() 返回字典d中所有的键信息
  • d.values() 返回字典d中所有的值信息
    • 返回值可以用for in来遍历,但是不能当列表来操作
  • d.items() 返回字典d中所有键值对的信息
  • d.get(k, <default>) 返回键k对应的值,不存在则返回<default>
  • d.pop(k, <default>) 取出
  • d.popitem() 随机从字典d中取出一个键值对,元组形式返回
  • d.clear() 清空
  • len(d) 返回元素个数

栗子 向d新增两个键值对元素 d[“a”] = 1; d[“b”] = 2

jieba库

中文分词

安装pip install jieba

三种模式

  • 精确模式
    • jieba.lcut(s) 精确模式,返回一个列表类型 的分词结果
  • 全模式
    • jieba.lcut(s, cut_all=True)
  • 搜索引擎模式
    • jieba.lcut_for_search(s)
  • jieba.add_word(w) 向分词词典增加新词w

文件

文件的打开和关闭

<变量名> = open(<文件名>, <打开模式>)

打开模式
  • r 只读,若文件不存在返回FileNotFountError
  • w 覆盖写模式,存在则完全覆盖
  • x 创建写模式,存在则返回FileExistsError
  • a 追加写模式,存在则在最后追加内容
  • b 二进制
  • t 文本文件模式
  • + 增加功能

<变量名>.close()

文件读取

  • f.read() 读入全部内容,如果给参数则读入size长度
  • f.readline() 读入一行内容,如果给参数则读入前size个
  • f.readllines() 读入所有行,以每行为元素形成 列表 如果给参数,读入前hint行
  • f.write(s) 写入字符串或字节流
  • f.writelines(lines) 将一个元素全为字符串的列表,元素拼接后写入文件
  • f.seek(offset) 控制文件操作指针的位置 0-开头 1-当前 2-结尾

###tip

\可以给没写完的程序语句换行

type(x) 返回变量x的类型

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 格式化字符串
  2. 2. 字符串类型及操作
    1. 2.1. 方法
  3. 3. time库
    1. 3.1. 时间格式化
    2. 3.2. 程序计时
    3. 3.3. 二分支结构
    4. 3.4. 异常处理
    5. 3.5. 随机数
  4. 4. 函数
  5. 5. pyinstaller
  6. 6. 集合
    1. 6.0.1. 集合运算
      1. 6.0.1.1. 增强操作符
  7. 6.1. 集合处理方法
  • 7. 序列
    1. 7.1. 衍生
    2. 7.2. 序列处理函数及方法
    3. 7.3. 元组类型
    4. 7.4. 列表类型
  • 8. 字典
    1. 8.1. 字典处理函数及操作方法
  • 9. jieba库
    1. 9.1. 三种模式
  • 10. 文件
    1. 10.1. 文件的打开和关闭
      1. 10.1.1. 打开模式
    2. 10.2. 文件读取
  • 载入天数...载入时分秒...