文章目录

  • 前言
  • 一、基础部分
    • 1. 一行写不下,如何换行继续写
    • 2. 关于文件相关操作
    • 3. Python 异常处理【https://www.runoob.com/python/python-exceptions.html】
    • 4. Python格式化输出 %s %d %f【https://blog.csdn.net/weixin_40583388/article/details/78600101】
    • 5. matplotlib面向对象绘图
    • 6.定制自己的matplotlib style 【https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html】
    • 7. python 常用精简代码的函数(lambda、sorted、enumerate、reduce、np.concatenate)
      • **sort 直接改变list,且只能改变list**
      • sorted 可以对任何iterable的对象排序,且产生新的变量,不改变作用的对象
        • from functools import reduce
      • reduce(function, sequence [, initial] )

前言

书签的内容越来越多,整理一下。整理内容分为基础部分、bug解决部分、


以下是本篇文章正文内容

一、基础部分

1. 一行写不下,如何换行继续写

  • 在一行末尾加上‘\’
  • 如果是以逗号连接的,直接换行

另外,在spyder上可以设置自动换行;

2. 关于文件相关操作

  • os.listdir(path)
    返回指定的文件夹包含的文件或文件夹的名字的列表
    注:
  • 文件名不包含数字时,文件名按字母顺序排列;
  • llist.sort(cmp=None, key=None, reverse=False);
    直接改变原来的列表,reverse = True 降序, reverse = False 升序(默认);
    key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序,例子在下面;
  • sorted(itrearble, cmp=None, key=None, reverse=False)
    返回一个新的列表,不改变原来的列表
  • os.path.getmtime() 函数是获取文件最后修改时间
  • os.path.getctime() 函数是获取文件最后创建时间
    代码如下(示例):
import os
dir_list = os.listdir(file_path)
dir_list = sorted(dir_list,  key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
# 文件夹名 按数字排序 key的用法
dir_list.sort(key=lambda x: int(x[4:]))
  • python中split()、os.path.split()函数用法【来源:https://www.cnblogs.com/foremostxl/p/9363250.html】
    str.split(str="", num=string.count(str)).
    str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
    num – 分割次数。
    返回值:返回分割后的字符串列表。
    os.path.split():按照路径将文件名和路径分割开
    os.path.split(‘PATH’)
    PATH指一个文件的全路径作为参数:
    如果给出的是一个目录和文件名,则输出路径和文件名
  • Python os.access() 方法【来源:https://www.runoob.com/python/os-access.html】
    os.access(path, mode);
    path – 要用来检测是否有访问权限的路径。
    mode –
    os.F_OK: 作为access()的mode参数,测试path是否存在。
    os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
    os.W_OK 包含在access()的mode参数中 , 测试path是否可写。
    os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。
    如果允许访问返回 True , 否则返回False。
  • 关于Python读取文件的路径中斜杠问题
    path1 = r"c:\windows\temp\temp1.txt"
    path2 = “c:\\windows\\temp\\temp2.txt”
    path3 = “c:/windows/temp/temp3.txt”
    这三种都行。

3. Python 异常处理【https://www.runoob.com/python/python-exceptions.html】

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。
异常处理
捕捉异常可以使用try/except语句
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。

try:fh = open("testfile", "w")fh.write("这是一个测试文件,用于测试异常!!")
except IOError:print "Error: 没有找到文件或读取文件失败"
else:print "内容写入文件成功"fh.close()

try-finally 语句无论是否发生异常都将执行最后的代码。

try:fh = open("testfile", "w")fh.write("这是一个测试文件,用于测试异常!!")
finally:#无论如何都会执行print "Error: 没有找到文件或读取文件失败"

另外用户可以触发异常、自定义异常

4. Python格式化输出 %s %d %f【https://blog.csdn.net/weixin_40583388/article/details/78600101】

%[flags][width].[precision]typecode
flags可以有+,-,’ ‘或0。
+表示右对齐。-表示左对齐。’ '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充,对d有用,对f无用。
width表示显示宽度,precision表示小数点后留几位。
常见格式符:

%s 字符串
%d 十进制整数
%f 浮点数
%e 指数 (基底写为e)
%E 指数 (基底写为E)

5. matplotlib面向对象绘图

网上这方面的帖子还是比较少,绘图的教程是基于函数式绘图,一旦子图多了或者想要实现一些特定的功能,这时学会面向对象绘图还是很有必要的。下面进行笔记整理。

  • 对象有哪些?
    图源自【https://matplotlib.org/api/artist_api.html#matplotlib.artist.Artist】
    下面说明一下常用的类,

    • Figure
      Top level Artist, which holds all plot elements.这是官方文档的定义,也很容易看出来,同时从图中看出Figure没有子类,也就是说日常使用中一般起到声明的作用。
      打个比方就是你要画图,那么你得铺开一张纸,即写下plt.figure(),其returns的官方解释:

The Figure instance returned will also be passed to new_figure_manager in the backends, which allows to hook custom Figure classes into the pyplot interface(将自定义Figure类挂接到pyplot界面中). Additional kwargs will be passed to the Figure init function.

下面用这张图引出另两个常用的类——Axes、Axis

  • Axes
    从上图可以看出,Figure与Axes以及Axes与Axis的关系


  • Axis

  • 其他
    有用的小技巧如简写

  • Third party packages【https://matplotlib.org/thirdpartypackages/index.html】
    推荐几个,animatplot、gif 以及 sviewgui.
    animatplot is a library for producing interactive animated plots with the goal of making production of animated plots almost as easy as static ones.
    gif is an ultra lightweight animated gif API.
    sviewgui is a PyQt-based GUI for visualisation of data from csv files or pandas.DataFrames.

6.定制自己的matplotlib style 【https://matplotlib.org/gallery/style_sheets/style_sheets_reference.html】

定制自己的matplotlib style 还是很有必要的,特别是需要论文出图,或者有特殊作图要求。
下面开始介绍:

matplotlib自带了26种style,存在了style packages里面,具体位置在 \Lib\site-packages\matplotlib\mpl-data\stylelib. 调用的方法是

plt.style.use(‘ggplot’)

其中‘ggplot’是其中一种风格。
在自己定制之前,可以看看官方的mplstyle文件,如图
链接有26种风格具体展示

后面我会贴出一些论文的定制文件,敬请期待~

7. python 常用精简代码的函数(lambda、sorted、enumerate、reduce、np.concatenate)

  • 匿名函数lambda的函数用法和排序用法【https://www.cnblogs.com/test123/p/10622956.html】

    首先,我们可以利用lambda创建简单函数
    lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值,lambda返回函数对象。
    我个人认为lambda更重要的作用是结合sorted/sort进行排序
    顺便贴一个sort与sorted的区别

    sort 直接改变list,且只能改变list
    sorted 可以对任何iterable的对象排序,且产生新的变量,不改变作用的对象
 import os
path = 'C:xx/xx/xx'
filesname = os.listdir(path)
filesname.sort(key=lambda x: int(x[28:32]),reverse=False)# False,按文件名的28到32进行升序排列(默认);True,降序。
# 也可以对字典进行排序
dict0 = [{'NAME':'AS','AGE':17},{'NAME':'EF','AGE':20},{'NAME':'BD','AGE':21},{'NAME':'GH','AGE':20},{'NAME':'WR','AGE':21},{'NAME':'TY','AGE':21}]
dict1=sorted(dict0,key=lambda x:x['NAME'])#按字母的ASCII大小升序排列
dict2=sorted(dict0,key=lambda x:(x['AGE'],x['NAME']))#先按年纪大小升序排列,若年纪一样大就按字母的ASCII大小升序排列
print(dict1)
print(dict2)

输出的结果如下图:

  • enumerate() 函数【https://www.runoob.com/python/python-func-enumerate.html】
    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>>Sequence = ['A', 'B', 'C']
>>> for i, element in enumerate(sequence):
...     print i, element
...
0 A
1 B
2 C
  • reduce 函数的使用
    使用前需要
from functools import reduce

下面贴我个人的理解

>>>lst = [1,2,3,4]
>>>temp = reduce(lambda x,y: x*y, lst)
# 工作过程是:1)x=1, y=2-->x*y=2
# 2) x=2【1)中的结果】, y=3-->x*y=6
# 3) x=6, y=4-->x*y=24
>>>print(temp)
>>>24

有了上面的解释,对reduce的定义就可以理解了

reduce(function, sequence [, initial] )

inital 指函数变量的初值,按照上例指的是x=initial

一般地我们会对可遍历对象特别是字典中的键值操作时,就不用写for循环了,代码变得十分简洁。

>>>h = {1: 3, 2: 1, 3: 2}
>>>a = reduce(lambda x, value:x + value * (value - 1), h.values(), 0)
>>>print(a)
>>>8

python 书签内容整理相关推荐

  1. 01_01 python机器学习_第一章学习内容整理_加载样本数据绘制散点图

    第一章学习内容整理_加载样本数据&绘制散点图 01 常用包说明 python可以解决很多问题,相应解决方案使用的包也很多,不太好记忆. 为了便于记忆,用大白话简单描述一下各个包的功能. # 科 ...

  2. CSS核心内容整理 - (中)

    2019独角兽企业重金招聘Python工程师标准>>> 本文是CSS核心内容整理的第二篇,承接上一篇的内容继续对CSS的一些重要内容进行整理,推荐先看完这个系列的上一篇. 四.  页 ...

  3. python数据分析、整理、汇总展示_python-数据分析与展示(Numpy、matplotlib、pandas)---2...

    笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 1.python自带的图像库PIL 1.1常用API Image.open() Ima ...

  4. 第二弹:超全Python学习资源整理(进阶系列)

    造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分 ...

  5. Google C++ 风格指南内容整理

    之前一直没有全面的看过Google C++风格指南,现在很多公司进行C++开发都要求按照Google C++风格.在这个网站 http://zh-google-styleguide.readthedo ...

  6. Python二级笔记整理

    Python二级笔记整理 00讲 1. 单选: 2. 操作 3.教材 4.python3.5.2以上 环境配置 Hello World 01讲 01章 程序设计的基本方法 导图 程序设计语言 编译和解 ...

  7. python 保存内容到记事本里面

    python 保存内容到记事本里面 使用函数open 模式设置为,没有记事本的时候创建记事本即可, 代码很简单如下 def writeTxt():file = open(r"C:\text. ...

  8. 人工智能/云原生/数据科学/计算等方向内容整理志愿者招募了!

    持续招募内容整理志愿者!云原生.数据科学.AI.低代码.计算等方向,有意愿的小伙伴,欢迎识别二维码提前报名哦.我们将持续为爱学习.有时间的小伙伴,提供多重福利! 要求: 1. 你需要具备一定学术背景, ...

  9. python保存内容到文件(text、json、csv)

    python保存内容到文件(text.json.csv) 在开发人员的日常中,将数据保存到文件是最常见的编程任务之一. 通常,程序需要一些输入并产生一些输出.在许多情况下,我们希望将这些结果持久化.我 ...

  10. Python回顾与整理5:映像和集合类型

    0.说明 依然是按照前面介绍的几种序列类型的思路来总结字映像类型和集合类型,即先做一个介绍,再讨论可用操作符.工厂函数.内建函数和方法. 1.映射类型:字典 映射类型被称做哈希表,而Python中的字 ...

最新文章

  1. 索引键的唯一性(2/4):唯一与非唯一聚集索引
  2. MRP例外消息处理方法
  3. STM32开发 -- 4G模块开发详解(1)
  4. 116. 填充每个节点的下一个右侧节点指针
  5. puml绘制思维导图_强推:9款超好用思维导图APP
  6. 安装Nginx到linux服务器(Ubuntu)详解
  7. PowerShell 远程连接与其它技巧
  8. 什么软件测试显示器响应时间准,液晶响应时间测试系统
  9. SMOTE算法(处理非平衡数据)
  10. 计算机写程序的步骤,电脑怎么编程 电脑编程的方法
  11. sstream和strstream的用法
  12. 思科6509 引擎720-3BXL 更换风扇造成设备重启
  13. [ISUX转译]iOS7人机界面指南
  14. 自考中的计算机等级考试可以在异地报考吗,自考可以在异地参加吗?
  15. JAVA毕业设计公司薪酬管理系统计算机源码+lw文档+系统+调试部署+数据库
  16. 使用 WinRAR 制作自解压文件
  17. caffe源码 layer分析
  18. 锁定放大器 matlab,锁定放大器的MATLAB建模与仿真
  19. CSS 实现文本中间省略号
  20. 数据分析 | 数据可视化图表,BI工具构建逻辑

热门文章

  1. Java中文乱码详解
  2. 如何使用NFC读卡器读取NFC卡片的UID?
  3. html代码编辑器jason,JSON 编辑器实现代码
  4. 我不应该用计算机做题,超级计算器:能帮你做题的计算器,就是它了
  5. 方法论+本土特色,这个BPM平台不简单
  6. 整理的敏感词解决思路
  7. 拉普拉斯变换的matlab仿真,拉普拉斯变换及Simulink仿真.doc
  8. 易智瑞大赛——地图故事组参赛经验
  9. Levenberg-Marquardt(LM算法)
  10. 微信小程序开发 - 模板与配置