2020年3月25日
摘要: 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration),也就是遍历。 在Python中,迭代是通过for ... in来完成的。Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。 可迭 阅读全文
posted @ 2020-03-25 15:32 麦克煎蛋 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 列表推导是一种从其他列表创建列表的方式,类似于数学中的集合推导。 列表推导的使用方式非常简单,有点类似于for循环。 >>> [x * x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 如果想打印那些能被3整除的平方值呢?这时候可以 阅读全文
posted @ 2020-03-25 15:31 麦克煎蛋 阅读(197) 评论(0) 推荐(0) 编辑
  2020年3月23日
摘要: Python中有一个被称为属性函数(property)的概念,可以做一些很实用的事情。1、将类方法转换为只读属性2、重新实现一个属性的setter和getter方法 一、装饰器 1、基本的@property使用,可以把函数当做属性用 使用属性函数的最简单的方法之一是将它作为一个方法的装饰器。这可以将 阅读全文
posted @ 2020-03-23 15:36 麦克煎蛋 阅读(236) 评论(0) 推荐(0) 编辑
  2020年3月21日
摘要: 集合(set)是一个无序的不重复元素序列。当集合中的元素存在与否比其出现次序、出现次数更加重要时,我们就会使用集合。通过使用集合,你可以测试某些元素的资格或情况,检查它们是否是其它集合的子集,找到两个集合的交集等; 一、创建集合 可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个 阅读全文
posted @ 2020-03-21 14:07 麦克煎蛋 阅读(209) 评论(0) 推荐(0) 编辑
  2020年3月20日
摘要: 一、什么是模块 随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 为了编写可维护的代码,我们根据业务逻辑的不同把函数或类分组,分别放到不同的文件里。 逻辑上来说模块就是一组功能的组合;实际上在Python中,一个.py文件就称之为一个模块(Module)。 二、使用模块的好处 阅读全文
posted @ 2020-03-20 14:28 麦克煎蛋 阅读(186) 评论(0) 推荐(0) 编辑
  2020年3月19日
摘要: 编写计算机程序时,总会碰到一些异常事件。 如果在每个可能发生这些事件的地方都使用条件语句,不仅效率低下、缺乏灵活性,还可能导致程序的可读性比较差。 好在Python提供了功能强大的异常处理机制。 一、异常是什么 Python使用异常对象来表示异常状态,并在遇到错误时引发异常。异常对象未被处理或捕获时 阅读全文
posted @ 2020-03-19 15:21 麦克煎蛋 阅读(241) 评论(0) 推荐(0) 编辑
  2020年3月18日
摘要: 一、作用域 作用域针对变量而言,指申明了变量在程序里的可应用范围。 只有函数,类,模块会产生作用域,代码块不会产生作用域。例如for循环,if判断都不产生作用域。 二、作用域链 Python中作用域链,变量会由内到外去找,先去自己的作用域找,自己没有在去上级去找,一直到找不到报错。 特性:函数未执行 阅读全文
posted @ 2020-03-18 13:58 麦克煎蛋 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 一、命名空间是什么 官方文档的一段话: A namespace is a mapping from names to objects. Most namespaces are currently implemented as Python dictionaries。 命名空间是一个字典(dictio 阅读全文
posted @ 2020-03-18 11:10 麦克煎蛋 阅读(216) 评论(0) 推荐(0) 编辑
  2020年3月17日
摘要: 在Python中, 对于琐碎又不太重要的访问函数, 你应该直接使用公有变量来取代它们, 这样可以避免额外的函数调用开销.。当添加更多功能时, 你可以用属性(property)来保持语法的一致性。 如果访问更复杂, 或者变量的访问开销很显著, 那么你应该使用像 get_foo() 和 set_foo( 阅读全文
posted @ 2020-03-17 19:52 麦克煎蛋 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1、 所谓"内部(Internal)"表示仅模块内可用, 或者, 在类内是保护或私有的。 2、 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含)。 3、 用双下划线(__)开头的实例变量或方法表示类内私有。 4、 将相关的类和顶级函数放在同一个 阅读全文
posted @ 2020-03-17 19:50 麦克煎蛋 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 一、模块 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)。 # 正确的模块名 import decoder import html_parser # 不推荐的模块名 import Decoder 二、类名 1、 类名使用驼峰(CamelCase)命名风格,首 阅读全文
posted @ 2020-03-17 19:48 麦克煎蛋 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 作为文档注释的Docstring一般出现在模块头部、函数和类的头部,这样在Python中可以通过对象的__doc__对象获取文档。编辑器和IDE也可以根据Docstring给出自动提示。 1、 文档注释以 """ 开头和结尾, 首行不换行, 如有多行, 末行必需换行, 以下是Google的docst 阅读全文
posted @ 2020-03-17 19:47 麦克煎蛋 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 1、 块注释 “#”号后空一格,段落间用空行分开(同样需要“#”号)。 # 块注释 # 块注释 # # 块注释 # 块注释 2、 行注释 至少使用两个空格和语句分开,注意不要使用无意义的注释。 # 正确的写法 x = x + 1 # 边框加粗一个像素 # 不推荐的写法(无意义的注释) x = x + 阅读全文
posted @ 2020-03-17 19:45 麦克煎蛋 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 1、在文件和sockets结束时, 显式的关闭它。 2、除文件外, sockets或其他类似文件的对象在没有必要的情况下打开, 会有许多副作用。 推荐使用 "with"语句 以管理文件。 对于不支持使用"with"语句的类似文件的对象,使用 contextlib.closing()。 阅读全文
posted @ 2020-03-17 19:43 麦克煎蛋 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1、字符串格式化 Yes: x = a + b x = '%s, %s!' % (imperative, expletive) x = '{}, {}!'.format(imperative, expletive) x = 'name: %s; score: %d' % (name, n) x = 阅读全文
posted @ 2020-03-17 19:41 麦克煎蛋 阅读(284) 评论(0) 推荐(0) 编辑
摘要: docstring规范中最基本的两点: 1、所有的公共模块、函数、类、方法,都应该写 docstring 。私有方法不一定需要,但应该在 def 后提供一个块注释来说明。 2、docstring 的结束"""应该独占一行,除非此 docstring 只有一行。 """Return a foobar 阅读全文
posted @ 2020-03-17 19:39 麦克煎蛋 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: 1、 在二元运算符两边各空一格[=,-,+=,==,>,in,is not, and]: # 正确的写法 i = i + 1 submitted += 1 x = x * 2 - 1 hypot2 = x * x + y * y c = (a + b) * (a - b) # 不推荐的写法 i=i+ 阅读全文
posted @ 2020-03-17 19:38 麦克煎蛋 阅读(2027) 评论(0) 推荐(0) 编辑
摘要: 1、 import 语句应该分行书写 # 正确的写法 import os import sys # 不推荐的写法 import sys,os # 正确的写法 from subprocess import Popen, PIPE 2、 import语句应该使用 absolute import # 正确 阅读全文
posted @ 2020-03-17 19:36 麦克煎蛋 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 1、 缩进 用4个空格来缩进代码。 绝对不要用tab, 也不要tab和空格混用.。对于行连接的情况, 你应该要么垂直对齐换行的元素, 或者使用4空格的悬挂式缩进(这时第一行不应该有参数): Yes: # 与起始变量对齐 foo = long_function_name(var_one, var_tw 阅读全文
posted @ 2020-03-17 19:35 麦克煎蛋 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 1、 如无特殊情况, 文件一律使用 UTF-8 编码。 2、 如无特殊情况, 文件头部必须加入#-*-coding:utf-8-*-标识。 3、 文件头注释格式: # -*- encoding: utf-8 -*- """ Copyright(C) 2018-2019 TEST All rights 阅读全文
posted @ 2020-03-17 19:34 麦克煎蛋 阅读(195) 评论(0) 推荐(0) 编辑
  2020年3月16日
摘要: 一、基础规范 Python编码规范01--基础规范--文件 Python编码规范02--基础规范--代码格式 Python编码规范03-基础规范--import语句 Python编码规范04-基础规范--空格 Python编码规范05-基础规范--文档字符串(docstring) Python编码规 阅读全文
posted @ 2020-03-16 16:46 麦克煎蛋 阅读(590) 评论(0) 推荐(0) 编辑
摘要: Python与C++、Java等众多语言一样,被视为一种面向对象的语言。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。 一、类定义 一个简单的类定义如下: cla 阅读全文
posted @ 2020-03-16 14:20 麦克煎蛋 阅读(232) 评论(0) 推荐(0) 编辑
  2020年3月13日
摘要: 本节介绍如何将语句组合成函数。函数执行特定的操作并返回一个值,你可以调用它。 一、自定义函数 1、def语句 使用def语句表示定义函数。 def hello(name): return 'Hello, ' + name + '!' 可以直接调用这个函数: >>> print(hello('worl 阅读全文
posted @ 2020-03-13 16:22 麦克煎蛋 阅读(203) 评论(0) 推荐(0) 编辑
  2020年3月11日
摘要: 一、while循环 while语句非常灵活,可用于在条件为真时反复执行代码块。 x = 1 while x <= 100: print(x) x += 1 二、for循环 为序列(或其他可迭代对象)中每个元素执行代码块。 numbers = [1, 2, 3, 4, 5] for number in 阅读全文
posted @ 2020-03-11 16:50 麦克煎蛋 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 现在让程序选择是否执行特定的语句块。 一、关于布尔值 标准布尔值为True和False。实际上,True和False不过是0和1的别名。 用作布尔表达式(如if语句中的条件)时,下面的值都视为假: False None 0 "" () [] {} 二、if语句 if语句让你能够有条件地执行代码。 n 阅读全文
posted @ 2020-03-11 14:45 麦克煎蛋 阅读(269) 评论(0) 推荐(0) 编辑
  2020年3月10日
摘要: Python的赋值语句有一些使用窍门。 一、序列解包 序列解包:将一个序列解包,并将得到的值存储到一系列变量中。 >>> x, y, z = 1, 2, 3 >>> print(x, y, z) 1 2 3 >>> values = 1, 2, 3 >>> values (1, 2, 3) >>> 阅读全文
posted @ 2020-03-10 20:11 麦克煎蛋 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 字典是Python中唯一的内置映射类型。 Python3.6(包含)之后,所有的普通dict()字典都变为有序的了。 参考文章:https://www.kingname.info/2019/07/13/python-dict/ 一、创建字典 1、字典由键及其对应的值组成 >>> dict = {'M 阅读全文
posted @ 2020-03-10 17:01 麦克煎蛋 阅读(268) 评论(0) 推荐(0) 编辑
  2020年3月6日
摘要: 将值转换为字符串并设置其格式是一个重要的操作。 一、精简版 1、使用字符串格式运算符 % >>> format = "Hello, %s!" >>> value = "Python" >>> format % value 'Hello, Python!' %s称为转换说明符,s意味着将值视为字符串进 阅读全文
posted @ 2020-03-06 19:46 麦克煎蛋 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 所有的标准序列操作(索引、切片、相乘、成员资格检查、长度、最大和最小值)都适用于字符串。 但字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。 字符串方法 字符串的很多方法是从模块string“继承”而来的,这里仅介绍一些最有用的。 1、center 方法center通过在两边添加填充字符( 阅读全文
posted @ 2020-03-06 15:31 麦克煎蛋 阅读(210) 评论(0) 推荐(0) 编辑
  2020年3月5日
摘要: 与列表一样,元组也是序列,唯一的差别在于元组是不能修改的。 元组语法很简单,只要将一些值用逗号分隔,就能创建一个元组。 >>> 1, 2, 3 (1, 2, 3) 元组还可用圆括号括起,这是通常采用的做法。 >>> (4, 5, 6) (4, 5, 6) >>> ('aa', 'bb', 'cc') 阅读全文
posted @ 2020-03-05 16:16 麦克煎蛋 阅读(204) 评论(0) 推荐(0) 编辑