Beginning Python Chapter3

  • 所有标准的序列操作(索引,分片,乘法,判断成员资格,求长度,取最值)对字符串同样适用,但是,字符串是不可变的,因此通过分片对字符串进行复制是不合法的。
  • 格式化字符串的%部分称为转换说明符,他们标记需要插入值的位置,格式类型如下

    转换类型含义
    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' % dic
my 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, iteritemsitems方法将所有的字典项以列表方式返回,列表的每一项都来自于(键,值)
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 dic
print dica
for 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 12
name king
name sky
sex boy
sky
{'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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值