Python 简明手册

  • 2019 年 10 月 10 日
  • 笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_40313634/article/details/92848766

数据馆员的 Python 简明手册

1. hello world

#!/usr/bin/env python  #-*- coding:utf-8 -*-    __author__ = 'zuoy'    __doc__ = '在屏幕上打印信息: hello world!'    def main():      '''      入参:无      功能:在屏幕上打印信息: hello world!      '''      print('hello world!')    if __name__ == '__main__':      main()

2. 数据类型

string

  • 字符串分割
  s.split(str, num)  # 默认按照空白符分割所有;str: 分割符, num: 分割成几份
  • 大小写转化
  s.upper()    s.lower()
  • 字符串拼接
'a' + 'b' == 'ab'  2 * 'a' == 'aa'  '_'.join(['one', 'book']) == 'one_book'
  • 字符、编码转换
ord(c)  chr(97)
  • strip() # 删除行首行尾的空白字符
  • s.find(’.’) # 从左向右查找
  • s.refind(’.’) # 从右向左查找

list

  • 遍历list
  for num in l:
  • 求长度
  len(l)
  • 删除list、list元素(与字典删除操作同方法)
  l.pop(index)    l.remove(x)
  • 添加元素
  l.append(x)  # 末尾添加    l.insert(index)  # 指定下标处添加元素
  • 查找元素
  l.index(x)  # 有x,返回x的下标;没有,报异常
  • 切片:list、str等
  nl = l[start_index : end_index+1 : step]
  • 列表生成式
  nl = [m + n for m in 'ABC' for n in 'XYZ']
  • 排序
  l.sort(k=f)  # 返回值是:None    nl = sorted(l, key=abs, reverse=True)  # 按照绝对值排序,反序;key=str.lower 忽略大小写排序
  • 压缩
  l3 = zip(l1, l2)    for x, y in l3:
  • 高阶函数
  map(f, l  # [f(l[0]), f(l[1]), ...]    reduce(f, []1,2,3)  # = f((1,2), 3)  # from functools import reduce    filter(is_odd, l)  # 返回迭代器:如果is_odd(l[i])为真,则在迭代器里保留该元素

字典

  • 遍历字典
  for k in d:    for v in d.values()    for k, v in d.items()
  • 删除dict、dict元素(与list删除操作同方法)
  d.remove(k)    del d[k]    del d
  • 判断 key 是否存在
  if k in d:    if d.get(k, None) != None:  # key 不存在时返回None(设置的值)
  • list 转字典
d.fromkeys(s, t)

set

字典的key集合,不重
  • 添加、删除元素
  d.add(k)    d.remove(k)
  • 求和(去重的)
  d1 + d2    d1 | d2 # d1 & d2 # 求交集(共同元素)

枚举类型

  from enum import Enum    Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))    print(Month.Feb) == Month.Feb      from enum import Enum, unique      @unique  # 检查有无重复值    class Weekday(Enum):        Sun = 0 # Sun的value被设定为0        Mon = 1        Tue = 2      Weekday.Mon == Weekday.Mon    Weekday.Tue.value == 2

逻辑运算符

  • andornot
  x and y # xy 均为真,返回y的值;否则,返回False    x or y  # x 为真,返回x; 否则,返回y    not x  # 返回True或False

常用方法

  • 判断元素类型
  isinstance(x, int)  # 子类和父类是同一种元素    type(x) == int  # 子类和父类不是同一种元素
  • 范围
  range(s, e, step)  # [s, e)
  • 文件读取
  with open(file, encoding='utf-8', 'r') as f:        f.read()  # 读取整个文件的内容        f.readlines()  # 读取整个文件所有行的内容, 返回list        f.readline()  # 读取一行内容        f.read(n)  # 读取n 字节的内容
pickle.dump(strs, outfile)  # 序列化,二进制数据处理  strrs = pickle.load(infile)
  • os 模块
  os.path.abspath('.')  # 查看当前路径的绝对路径    os.path.join('/Users', 'testdir')  # 路径拼接    os.mkdir('/Users')  # 创建路径    os.rmdir('/Users')  # 删除文件夹    os.path.splitext('/path/to/file.txt')  # (’/path/to/file’, ‘.txt’)    os.path.split('/Users/michael/testdir/file.txt')  # (’/Users/michael/testdir’, ‘file.txt’)    os.rename('test.txt', 'test.py')    os.remove('test.py')  # 删除文件    os.listdir('.')  # 列出当前路径下的所有文件    os.path.isdir(x)  # 路径存在    os.path.isfile(x)  # 文件存在

注意

除法

  10 / 3 == 3 # 结果是浮点数    //  # 结果向下取整    10 // 3 == 3    -10 / 3 == -4

取整

int(8.6) == 8  round(8.64) == 9  round(8.5) == 8  round(9.5) == 10  # .5 取最接近的偶数

参考

linux安装python