Beginning Python Chapter3

来源:互联网 发布:xilica xd4080软件 编辑:程序博客网 时间:2024/06/11 08:04
  • 所有标准的序列操作(索引,分片,乘法,判断成员资格,求长度,取最值)对字符串同样适用,但是,字符串是不可变的,因此通过分片对字符串进行复制是不合法的。
  • 格式化字符串的%部分称为转换说明符,他们标记需要插入值的位置,格式类型如下

    转换类型 含义 d,i 带符号的十进制数 o 不带符号的八进制数 u 不带符号的十进制数 x 不带符号的十六进制数(小写) X 不带符号的十六进制数(大些) e 科学计数法标识的浮点数(小写) E 科学计数法标识的浮点数(大写) c 单个字符 r 使用repr转换的任意字符串对象 s 使用str转换的任意字符串对象

    print '%d+%d = %d' % (1, 1, 2)

  • 字符串方法

    函数名 函数说明 find 查找字符串,存在返回字符串索引,不存在返回-1 '123455'.find('123') join 拼接字符串,split的逆方法 ['1','2','3'].join('+') lower 返回字符串的小写形式 'ABCD'.lower() replace 替换字符串 'abcde'.replace('a', '1') split 分割字符串,如果不提供任何参数,将默认分割标记为空格 strip 去掉字符串两侧的空格
  • 字典是python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的Key中,键可以是数字,字符串,甚至是元组。一个key可以对应多个值,此时可以将多个值存入一个序列中。python的字典是{key:value, key:value}形式,字典的键类型可以是任意类型,当键不存在时,使用索引直接赋值,会将这个key添加到字典中,当使用关键字 in 验证字典时,验证的是key是否在字典中。

dic = {'name' : 'king', 'age' : 12}print 'my name is %(name)s, age is %(age)s' % dicmy name is king, age is 12注意 %(name)s后面的s不能去掉,否则报错

字典的方法:

函数名 说明 clear 清除字典中的所有项,这个clear是直接清除字典指向的数据,而不是对字典赋值一个{}的字典 copy 对字典的拷贝,这个是浅拷贝,拷贝出来的对象和之前指向同一块地址空间 deepcopy 对字典的拷贝,深拷贝 fromkey 使用给定的键创建新的字典,创建字典的一种便捷操作{}.fromkey(['a','b','c']), {}.fromkey('abc')效果一样,结果都是 {'a':None, 'b':None, 'c':None}, 如果不希望默认值为None,可以指定默认值,{}.fromkey('abc','unknow'), {'a' : 'unknow', 'b' : 'unkonw', 'c' : 'unknow'},使用fromkey指定默认值时,默认值只能设置一个,不能设置多个 get 得到一个指定键的值,当在字典中这个键值不存在时返回None,不会抛出异常。get也可以指定默认值{a:'a'}.get('b':'NoKey') 结果为NoKey has_key 判断字典中是否存在key效果和in相同,在Python3.0中不在包含这个函数 item, iteritems items方法将所有的字典项以列表方式返回,列表的每一项都来自于(键,值) key, iterkeys 返回字典中所有的key pop 获取指定键的值,并同时将这个键从字典中删 popitem 随机删除一个key和value的值,并将对应的值返回 setdefault 设置key对应的值,当键不存在时,setdefault返回默认并且相应的更新字典,如果键存在,那么就返回与其对应的值,单不改变字典,默认值是可选的,如果不设定默认使用None update 利用一个字典去更新另一个字典, a.update(b), 使用b的键值信息更新a, 改变的是a的键值信息 value, itervalue 返回字典中值得集合
dic = {'name' : 'king', 'age' : 12}dica = {'name' : 'sky', 'sex':'boy'}dic.update(dica)print dicprint dicafor item in dic.key():    print item + ' ' + str(dic[item])print dic.get('name')dic.pop('name')print dic{'age':12, 'name':'king', 'name':'sky', 'sex':'boy'}{'name':'sky', 'sex':'boy'}age 12name kingname skysex boysky{'age':12, 'name':'king', 'sex':'boy'}
  • 当把其他模块的某些函数导入到当前文件中时,可以给指定的函数起一个别名,这和mysql的别名机制很相似,import math as mymath
  • python允许同时对多个变量赋不同的值,这个在交换两个变量值时候非常方便

    a, b, c = 1, 2, 3
    print a, b, c
    a, b = b, a
    print a, b, c
    1 2 3
    2 1 3


    a, b, c, *d = [1,2,3,4,5,6]
    print a,b,c,d
    1 2 3 [4,5,6]
    python3.0的解包特性,并未实际编码测试过,答案不确定正确。
  • python支持链式赋值,即x = y = z = 1
  • python中的布尔值,标准值False和None,所有类型的数字0(包括浮点型,长整形和其他类型),空序列,以及空的字典都可以作为False,但是尽管[]和”“都是假值,但是他们本身并不相等,也就是说[] != “”,对于其他类型的假值对象也是如此。
  • 循环遍历数组
for key, value in {'name' : 'king', 'age', 12}.items():    print key, value
  • zip函数可以将多个列表进行压缩合并成一个列表,方便进行并行迭代
name = ['king', 'sky']age = [12, 13]print zip(name, age)[('king', 12), ('sky', 13)]name = ['king', 'sky', 'array']age = [12, 13]print zip(name, age)[('king', 12), ('sky', 13)]name = ['king', 'sky']age = [12, 13, 14]print zip(name, age)[('king', 12), ('sky', 13)]相当于按照位置对应出的结果,并不是获得的笛卡儿积,当长度不想等时,最小的序列用完时候就停止了。
  • 列推倒式是一个轻量级的循环,是利用其他列表创建新列表的一种方法,
    [0, 2, 4, 6, 8]
  • exec和eval: 简单的说是将字符串当作python语句来执行
    eval('1 + 2')    输出结果3
0 0
原创粉丝点击