python基础整理

转自本人旧博客


title: python
date: 2018-01-10 14:32:06
tags:
categories:


python核心

1. python基础

查漏补缺:

数字:

  • python长整型仅受限于用户计算机的虚拟内存总数
  • 第六种数字类型:decimal,用于十进制浮点数。不是內建类型,得先导入decimal模块

字符串

  • 索引操作费([])和切片操作符([:])

列表、元祖

  • 元祖不可修改,可看成是只读的列表

range() 、 enumerate()

  • range()函数常和len()函数一起用于字符串索引
  • enumerate()

for 索引, 元素 in enumerate(‘abcdef’):

文件:open()、file()

  • open(filename, access_mode=‘r’)
    • 默认是’r’
  • 对于很大文件,最好一次读一行
  • 文件中每行文本自带转行字符

  • 类是面向对象编程的核心,扮演相关数据及逻辑容器的角色
  • 当一个类实例被创建时, init()方法会自动执行,在类实例创建完毕后执行,类似构造器。
  • self:是类实例自身的引用

模块

变量赋值

  • 是将该对象的引用(并不是值)赋值给变量

标识符

  • 是计算机语言中允许作为名字的有效字符串集合。
  • 其中有一部分是关键字,构成语言的标识符
  • 规则:
    • 首字符:字母或下划线
    • 其他字符:字母、下划线、数字
    • 大小写敏感
  • 专用下划线标识符
    • _xxx_ 系统定义名字
    • _xxx 类中的私有变量名

模块构造和布局

  • 尽量用局部变量代替全局变量

测试代码

  • unittest模块,有时候被称为PyUnit,是一个测试框架

内存管理

  • 一个对象引用计数减少的情况:
    • 一个本地引用离开了其作用范围
    • 对象的别名被显式销毁:del y # or del x
    • 对象的一个别名被赋值给其他对象
    • 对象被从一个窗口对象中移除: myList.remove(x)
    • 窗口对象本身被销毁: del myList
  • 任何追踪或调试程序会给一个对象增加一个额外的引用,这会推迟对象被回收的时间。
  • 在函数中频繁使用一个属性,建议为该属性取一个本地变量别名。查找速度回快很多
    • 在查找全局变量前,总是先查找本地变量,是让程序跑更快的技巧

2. python对象

  • 所有类型对象的类型都是type
  • 帧对象:表示python的执行栈帧
  • 在预定义缓存字符串表之外的字符串,如果不再有任何引用指向它,那这个字符串将不会被缓存

标准类型內建函数

  • type()

  • cmp()

    • 用于比较两个对象。obj1 < obj2,返回负整型;obj1 > obj2,返回正整型;obj1 = obj2,返回0
    • python3没有
  • str()、repr()(及``反引号操作符)

    • rept()输出对python比较友好,str()输出对用户比较友好
  • type()和isinstance()

    • isinstance()判断对象类型,(

    isinstance(a, str)

标准类型的分类

  • 基本: python提供的标准或核心类型
  • 內建: python默认提供的
  • 数据: 用于一般数据存储
  • 对象: 是数据和功能的默认抽象
  • 原始: 这些类型提供的是最底层的粒度数据存储
  • 类型: 是数据类型

3. 数字

复数

  • 复数的內建属性
    • 复数的实部 num.real
    • 虚部: num.imag
    • 共轭复数: num.conjugate()

操作符

序列

cmp

  • python3中由operator.eq()函数代替

其它

1. “_” 、 “_ _” 和 ‘_ _XX_ _’

1)"_" :
  • python中不存在真正意义上的私有方法或属性,"_"只表示你不应该去访问这个方法或属性
2)"_ _"
  • 避免子类覆盖父类
3)"_ _XX_ _"
  • 魔法函数
  • 表示这是python自己调用的。

2. 发布第三方包时,限制外部调用接口,_ _init_ _ .py中加_ _all_ _属性

from base import APIBase
...

__all__ = ['APIBase', ...]

3. 字符串格式化

>>>name = 'yq'
>>>"my name is {name}".format(name=name)
'my name is yq'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值