Python学习第十二天——《A Byte of Python》笔记 12

The beginning of the end

本书的学习将近尾声,但对于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的特征,但肯定不是全部。可以开始创建我们想做的编程了。

你可能感兴趣的:(Python学习第十二天——《A Byte of Python》笔记 12)