python2.x基础学习笔记(一)

python文件格式

第一行指定脚本运行环境的python路径(可选)

第二行指定文件编码

需要添加模块注释(一个文件就是一个模块),方便使用 __doc__ 调取

需要为每个函数与类添加注释,使用三引号,方便使用 __doc__ 调取

使用四个空格的缩进,不需要花括号

#!/Users/nizhenyang/Python_Envs/python2.7/bin/python
# -*- coding:utf-8 -*

"""this is a test module"""

def test():
    """test is a test function"""
    pass

class TestClass (object):
    """TestClass is a test class"""
    pass

# 使用这个语句判断其是否为主模块
if __name__ == '__main__':
    foo = TestClass()
    test()

获取模块与方法的帮助

  • module.__doc__
  • func.__doc__
  • dir(module)
  • help(module)
  • help(func)

python中变量为对对象的引用

变量只是一个对对象的引用,类似于c中的指针,只不过其可以指向任何对象的地址

使用 id() 获取对象的地址

num = 2
var1 = num
var2 = num
print "id(var1): %d, id(var2): %d,  %s" % (id(var1), id(var2), id(var1) == id(var2))
# id(var1): 140354092286448, id(var2): 140354092286448,  True
print var1 is var2
# True

使用 copy.deepcopy 进行深复制


python的核心数据类型

  • 数字 int long float complex bool
  • 字符 str unicode
  • 列表 list
  • 字典 dict
  • 元祖 tuple
  • 文件 file
  • 集合 set frozenset
  • 类类型
  • None
  • 管道 pipes fifos
  • sockets

数据类型之间的转换

  • str() repr() format(): * –> string (注:str是给人用的,repr是给编译器用的 eval)
  • int() float(): * –> number
  • list(): string –> list
  • tuple(): string –> tuple
  • set(): string –> set
  • dict(d): (k, v)序列 [(‘a’, 1), (‘b’, 2), (‘c’, 3)]

  • chr(): int –> char

  • ord(): char –> int
  • hex(): int –> 十六进制
  • bin(): 二
  • oct(): 八

number之间的一些运算

  • 4.2 // 1.2 计算出的结果不包括小数
  • 1 ^ 2 异或
  • 1 ** 2 乘方
  • 1 & 2 按位与运算
  • ^ 1 取反
  • 1 | 2 按位或运算
  • math 内建模块

number科学计数输出

num = 4.6
print "%f, %e, %g" % (num, num, num)
# 4.600000, 4.600000e+00, 4.6

string的相关使用

使用unicode:在文件开始处加上# -*- coding:utf-8 -* 或在字符串前加’u’ u'共产党万岁'

对字符串进行切片

str = '0123456789'
print str[:]
print str[1:4]
print str[1:]
print str[1::3]
print str[-5:]
print str[-1::-1]

# 输出结果
#0123456789
#123
#123456789
#147
#56789
#9876543210

一些常用方法

  • 首字母大写
    • str.capitalize()
  • 子串首先出现的位置
    • str.index()
  • 连接 “”.join([1,2,3,4])
    • str.join()
  • 替换
    • str.replace()
  • 划分
    • str.split()
  • trim
    • str.strip()

序列类型 list tuple set

通用方法

  • 切片
  • len()
  • min()
  • max()
  • sum()
  • all()
  • any()
  • +
  • *
  • in
  • not in

可变序列的用通用操作

  • s[i]=v 元素复制
  • s[i:j] = t 切片赋值
  • del s[i]
  • del s[i:j]
  • del s[i:j:stride]

list

容器类型,通过索引访问,可变对象,异构,任意嵌套

  • append() 添加
  • extend() 原处扩展列表
  • insert() 插入
  • pop() 按索引删除
  • remove() 按元素删除
  • range(10) ==> [0, 1, …. 8, 9]
  • 复制 list ll[:] | copy.deepcopy()

tuple

与list相似,但是不可变,长度固定 支持切片

元祖本身不可变,但是其中嵌套的可变


set

一组无序排列的可哈希的值,支持集合关系测试 交并补差,不支持索引,元素获取,切片,没有特定语法格式,只能通过工厂函数创建

  • s.copy
  • s.difference 差集
  • s.intersection & 交集
  • s.symmetric_difference() ^ 对称差
  • s1 | s2 并集
  • pop

dict

键值组合,关联数组,散列表

len(dict) 字典中元素的个数

dd = {}

  • 清空 d1.clear()
  • 复制 d2 = d1.copy()
  • 获取 d1.get(k) : 无异常抛出 比较 d1[k]
  • 判断是否有key d1.has_key(k)
  • 键值为元祖的列表 d1.items() t1, t2 = d1.items() - pack
  • 键列表,值列表 d1.keys() d1.values()
  • 随机弹出键值映射 d1.popitem()
  • 类似于extend d1.update()
  • 迭代器 ddd = d1.iteritems() ddk = d1.iterkeys()
  • 显示构造 d1.viewitems() d1.viewkeys() d1.viewvalues-
  • 快速构建字典 zip : dict(zip(‘xzy’, ‘123’)) ==> {‘y’: ‘3’, ‘x’: ‘1’, ‘z’: ‘2’}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值