本书的学习将近尾声,但对于Python学习,这不是结束,而是开始。
More
到目前已经学习了将来要用的Python的大部分方面,这章学习让我们知识更广泛的内容。
Passing tuples around(传输元组环绕?不知道怎么译恰当)
利用元组可以从一个函数中返回两个不同类型的值
>>>def get_error()
...retun(2,'detail')
...
>>>errnum,errstr=get_error()
>>>errnum
2
>>>errstr
'detail'
同样,我们也可以用最快的方法交换两个值
>>>a=5;b=8
>>>a,b
(5,8)
>>>a,b=b,a
>>>a,b
(8,5)
这比C#中用第三值来替换要方便的多,而且不同数据类型的也可以直接换。
Special Methods(特殊方法)
在类中有一些例如__init__
、__del__
等有特殊意义的方法。
可以用来模拟某些嵌入类型的行为。比如想用x[key]索引操作,那么用__getitem__()
方法即可实现。特殊的还有__str__
、__lt__
、__len__
等。
Single Statement Blocks(单语句块)
每个块语言我们都以缩进开头,但如果只是单语句的话,可以放在同一行,一个条件语句或循环语句,如下:
>>>flag=True
>>>if flag:print('Yes')
...
Yes
虽然这可以让编程变小,但除非是用于错误检查,强烈建议避免这样写,因为用缩进更容易加其他语句。
Lamnda Forms(匿名形式)
lambda用来创建新函数对象
points=[{'x':2,'y':3},{'x':4,'y':1}]
points.sort(key=lambda i:i['y']
print(points)
List Comprehension(列表含义)
用于从现存列表引申出新的列表。
listone=[2,3,4]
listtwo=[2*i for i in listone if i>2]
print(listtwo)
Output:
[6,8]
原列表中大于2的项目都乘以2在新列表中。
Receiving Tuples and Dictionaries in Functions(在函数中接收元组和字典)
利用或*前缀,将参数作为元组或字典接收给一个函数。这在函数中有可变数量的语句时有用。
>>>defpowersum(power,*args):
...'''Returnthesumofeachargumentraisedtospecifiedpower.'''
...total=0
...for i in args:
...total+=pow(i,power)
...return total
...
>>>powersum(2,3,4)
25
>>>powersum(2,10)
100
The Assert Statement(维护语句)
assert语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表
中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么
assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个
AssertionError。
Decorators(装潢工)
Decorators提供打包函数,可以一遍遍的用同样的代码“打包”函数。
Python 2和3之间的区别(略)
这一节学习了解了更多Python的特征,但肯定不是全部。可以开始创建我们想做的编程了。