python学习

基础

  • 就目前而言, 应使用小写的Python变量名。 在变量名中使用大写字母虽然不会导致错误, 但避免使用大写字母是个不错的主意。
  • 如果你要从列表中删除一个元素, 且不再以任何方式使用它, 就使用del 语句; 如果你要在删除元素后还能继续使用它, 就使用方法pop()。 你不知道要从列表中删除的值所处的位置。 如果你只知道要删除的元素的值, 可使用方法remove() 。方法remove() 只删除第一个指定的值。
  • sort()方法将永久的改变列表元素的排序。sort函数中加入参数,改变排序的正反。
  • sorted()函数临时性改变列表元素的排序。
  • 每当需要访问最后一个列表元素时, 都可使用索引-1 。 这在任何情况下都行之有效, 即便你最后一次访问列表后, 其长度发生了变化。
  • python的切片用于处理部分元素,例如:list[8:]表示从下标是8的元素到最后的一个元素,输出名单上的最后三名队员, 可使用切片players[-3:] 。
  • 切片可以用于复制,这个复制是深度复制,是创建一个新的,而不是指向原来的。
  • 很多Python程序员都建议每行不超过80字符。PEP 8还建议注释的行长都不超过72字符。
  • 要判断特定的值是否已包含在列表中, 可使用关键字in 。
  • if-elif-else 结构
  • 键—值对的排列顺序与添加顺序不同。 Python不关心键—值对的添加顺序
  • 传递任意数量的实参: def make_pizza(*toppings) 星号让Python创建一个名为toppings 的空元组, 并将收到的所有值都封装到这个元组中。def build_profile(first, last, **user_info):两个星号让Python创建一个名为user_info的空字典, 并将收到的所有名称—值对都封装到这个字典中。
  • Python不能直接将包含小数点的字符串’1127437398.85751’ 转换为整数,先将字符串转换为浮点数, 再将浮点数转换为整数。

类知识

  • __init__()是初始化方法
  • 类名应采用驼峰命名法 , 即将类名中的每个单词的首字母都大写, 而不使用下划线。实例名和模块名都采用小写格式, 并在单词之间加上下划线。
  • 类中的方法的第一个参数都是self,它是一个指向实例本身的引用
  • 定义子类时, 必须在括号内指定父类的名称。 方法__init__() 接受创建父类实例所需的信息
  • try-except-else 代码块的工作原理大致如下: Python尝试执行try 代码块中的码; 只有可能引发异常的代码才需要放在try 语句中。 有时候, 有一些仅在try 代块成功执行时才需要运行的代码; 这些代码应放在else 代码块中。 except 代码块诉Python, 如果它尝试运行try 代码块中的代码时引发了指定的异常, 该怎么办。
  • 类的变量名以__开头,变量就是私有的,外部无法访问。
  • 有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。
  • 动态语言的鸭子类型(并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子)特点决定了继承不像静态语言那样是必须的。
  • 实例属性属于各个实例所有,互不干扰;类属性属于类所有,所有实例共享一个属性;不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误。
  • MixIn的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个MixIn的功能,而不是设计多层次的复杂的继承关系。

绘图

最流行的工具之一是matplotlib, 它是一个数学绘图库, 我们将使用它来制作简单的图表, 如折线图和散点图。

Pygal包, 它专注于生成适合在数字设备上显示的图表。 通过使用Pygal, 可在用户与图表交互时突出元素以及调整其大小, 还可轻松地调整整个图表的尺寸, 使其适合在微型智能手表或巨型显示器上显示。

#编程注意点

def add_end(L=[]):
    L.append('END')
    return L

多次调用结果:

add_end()
['END']
add_end()
['END', 'END']

定义默认参数要牢记一点:默认参数必须指向不变对象!

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

  1. 凡是可作用于for循环的对象都是Iterable类型;
  2. 凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
  3. 集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

在代码运行期间动态增加功能的方式,称之为装饰器(Decorator)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值