Python字符串和数值 纸上得来终觉浅,绝知此事要躬行。 1. 字符串 字符串是Python中最常用的数据类型,访问子字符串,可以使用方括号来截取字符串。同时,也可以通过等号进行赋值操作。如下所示,我们可以内置函数dir方法得到其对应的属性和方法。 >>> dir('') ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', 开发运维 2022-09-30 Escape
Python基本数据结构 纸上得来终觉浅,绝知此事要躬行。 数据结构,是计算机存储、组织数据的方式。而序列是 Python 中最基本的数据结构,序列的每一个元素都会被分配一个序号,也就是元素的位置,叫做索引。 内置的序列类型 List 列表 Tuple 元组 range 函数 Str 文本序列 Binary 二进制(bytes、bytearray、memoryview) Set 和 frozenset 集合 Dict 字典 开发运维 2022-09-30 Escape
Python递归和推导 纸上得来终觉浅,绝知此事要躬行。 递归的概念很简单,如果函数包含了对其自身的调用,该函数就是递归的。拗口一点的定义是,如果一个新的调用能在相同过程中较早的调用结束之前开始,那么个该过程就是递归。 1. 条件运算符 三目运算符 # 表达格式 <表达式1> ? <表达式2> : <表达式3> # 实例说明 In [1]: a = 1 In [2]: b = 2 In 开发运维 2022-09-30 Escape
Python函数和模块 纸上得来终觉浅,绝知此事要躬行。 程序写着写着就会变得越来越大,怎么能够更好的组织代码,就是我们应该关注的重点。而正确的做法,就是将程序分解成多个较小的方法,一般分为函数、对象、模块三种。 1. 函数 函数是带名称的代码块,可以将逻辑封装起来,多次使用。 Python functools Map, Filter and Reduce 函数格式 def <name>(arg1, arg2 开发运维 2022-09-30 Escape
Python中m参数的作用 使用 python3 xxx.py 和 python3 -m xxx.py 有什么区别 我们通过对应的参数解释可以得知,就是把某个 Python 模块当做脚本来运行,而为什么需要这样做呢? ➜ python --help usage: /Users/escape/.pyenv/versions/MoviesList/bin/python [option] ... [-c cmd | -m mod 开发运维 2022-09-30 Escape
Python入门第一次练习 纸上得来终觉浅,绝知此事要躬行。 光说不练假把式,所以还是需要找点题目来巩固一下自己博客中写到的基础知识,而且长时间不去复习的话很容易就会遗忘了。这样,就会让我们产生书到用时方恨少的感觉,所以练习和复习都是十分十分重要的。 1. 乘法口诀 需求说明 编写一个程序,执行时输出乘法口诀表。 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4 开发运维 2022-09-30 Escape
Python正则表达式 纸上得来终觉浅,绝知此事要躬行。 Python 的 re 模块提供各种正则表达式的匹配操作,和 Perl 脚本的正则表达式功能类似,使用这一内嵌于 Python 的语言工具,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息。Python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配。 正则表达式 30 分钟入门教程 P 开发运维 2022-09-30 Escape
Python文件处理 纸上得来终觉浅,绝知此事要躬行。 1. 文件打开 日常我们使用中,涉及最多就应该是对文件的处理了,其中文件的读取模式主要涉及到open函数,而该函数的参数又比较多,所以理解该函数才是文件处理的核心要点。 open:核心函数 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=Tru 开发运维 2022-09-30 Escape
Python错误和异常 纸上得来终觉浅,绝知此事要躬行。 写程序的时候,经常会写出一些低级错误的代码,则会导致错误和异常的出现,而如何快速定位问题所在就是其中最为重要的事情了。 错误:通常指的是程序运行中不可恢复的问题 异常:通常指的是可以在程序运行时恢复的错误 1. 语法格式 常见组合方式 In [1]: try: ...: pass ...: except ZeroDivisionError as e: ...: p 开发运维 2022-09-30 Escape
Python调试方法简介 纸上得来终觉浅,绝知此事要躬行。 日常我们写代码时,很容易导致程序出错,而且有些原因很难被我们发现,所以如何调试检查出问题所在是一个关键的技巧。 常见调试方法 print pdb ipython ide 调试经验总结 调试只是开发时的使用的方法,线上环境应该记录业务日志,也应该是用sentry搜集错误日志,通过这些日志去回溯问题,不应该等出了问题进行线上调试。 参考链接 pdb — Python 开发运维 2022-09-30 Escape
Python调试之IPython工具 Python工程师需要快速验证代码的运行结果是否符合预期,最为方便的做法就是使用Python自带的交互式解释器,但是因为其有很多弊端,所以IPython就是不二的选择了。 IPython 的官方文档地址 使用 IPython 有哪些好处 自带 Python 解释器的弊端 不能在退出时保存历史记录以备未来查询 不支持Tab自动补全,其实是可以支持的 不方便在交互式环境下执行Shell命令 不能快速获 开发运维 2022-09-30 Escape
IPython并行计算工具 纸上得来终觉浅,绝知此事要躬行。 解决并行计算和分布式计算的问题 运行解释说明 一直以来Python的并发问题都会被大家所诟病,正是因为全局解释锁的存在,导致其不能够真正的做到并发的执行。所以,我们就需要ipyparallel的存在来帮助我们处理并发计算的问题了。 在ipyparallel中,可以利用多个engine同时运行一个任务来加快处理的速度。集群被抽象为view,包括direct_view 开发运维 2022-09-30 Escape
Jupyter入门指南 **Jupyter**项目是一系列旨在提供一个通用的多语言交互环境,项目的前身是ipython项目。现如今它已经支持许多编程语言了并且对python的支持相当成熟。除了提供交互环境,还提供了一种非常实用的数据格式notebook,现在学界和工业界很多时候用它研究算法原型。 基于 Web 的交互式环境 Jupyter 工具 在 Ipython Notebook 中的代码调试与优化 Jupyter 的 开发运维 2022-09-30 Escape
Python面向对象编程 纸上得来终觉浅,绝知此事要躬行。 1. 面向对象的基础知识 Python 中一切皆对象 面向过程编程 可以使用在函数中调用其他函数的方式设计我们的程序,这叫做面向过程的编程。它的特点是把程序分成多个步骤,用函数把这些步骤一步一步实现,使用的时候串行依次调用。 面向对象编程 面向对象编程(OOP)是一种程序设计思想,把对象作为程序的基本单元,一个对象可能是包含了数据、属性和操作数据的方法。 1.1 开发运维 2022-09-30 Escape
Python魔法方法入门 纸上得来终觉浅,绝知此事要躬行。 引子 Python 中所有的魔术方法均在 Python 官方文档中有相应描述,但是对于他们的描述比较混乱而且组织比较松散,我决定给 Python 中的魔术方法提供一些用平淡的语言和实例驱使的文档。 在Python语言中存在一系列特殊的方法可以增强class的效果,它们在Python界中被称为**Dunder Methods,是double under method 开发运维 2022-09-30 Escape
Python魔法方法进阶 纸上得来终觉浅,绝知此事要躬行。 在Python中,所有以__双下划线包起来的方法,都统称为“魔术方法”。比如我们接触最多的__init__。有些魔术方法,我们可能一辈子都不会再遇到了。而有些魔术方法,巧妙使用它可以构造出非常优美的代码,比如将复杂的逻辑封装成简单的API。介绍的顺序大概是:常见的先介绍,越少见的越靠后讲。 魔术方法 调用方式 解释 __new__(cls [,...]) inst 开发运维 2022-09-30 Escape
Python函数式编程 纸上得来终觉浅,绝知此事要躬行。 1. 基础知识 函数式编程(functional programming)是一种编程范式。 理解函数式编程的行为 函数式编程不依赖于外部变量,而是返回一个新的值给你,所以没有任何副作用。即保证每次输入的值不变,输出的值一定也不会发生改变。 非函数式编程中my_inc会修改全局变量中的x变量的值,而函数式编程中my_inc只依赖于我们输出时传入的x值,给出我们计算之 开发运维 2022-09-30 Escape
Python装饰器 纸上得来终觉浅,绝知此事要躬行。 1. 装饰器的基础知识 在Java语言中装饰器是一种设计模式,而Python则原生就支持这样使用方式。 装饰器的引入 面向切面的编程范式就是在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程,更通俗一点就是通过在现有代码中添加额外行为而不修改代码本身。 装饰器就是通过这样的面向切面的编程的思路进行设计的,不改变现有代码的前提下,对其功 开发运维 2022-09-30 Escape
Python入门第二次练习 纸上得来终觉浅,绝知此事要躬行。 光说不练假把式,所以还是需要找点题目来巩固一下自己博客中写到的基础知识,而且长时间不去复习的话很容易就会遗忘了。这样,就会让我们产生书到用时方恨少的感觉,所以练习和复习都是十分十分重要的。 1. 匹配 URL 地址 需求说明 支持如www.google.com、http://www.example/file.html等URL的匹配。 标准实现 import re 开发运维 2022-09-30 Escape
Python迭代器生成器和协程 纸上得来终觉浅,绝知此事要躬行。 1. 迭代器 在 Python 这门语言中,迭代器毫无疑问是最有用的特性之一,所以为了更好的理解生成器,我们就需要好好的从基础开始说起。 [1] 可迭代 - Iterable 迭代器协议是指对象需要提供next方法,它要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代。 在Python中任意的对象,只要它定义了可以返回一个迭代器的__ 开发运维 2022-09-30 Escape