贴士#11. 检查 Python 中的对象
我们可以通过调用 dir() 方法来检查 Python 中的对象,下面是一个简单的例子:
test=[1,3,5,7]
print(dir(test))
['__add__','__class__','__contains__','__delattr__','__delitem__','__delslice__','__doc__','__eq__','__format__','__ge__','__getattribute__','__getitem__','__getslice__','__gt__','__hash__','__iadd__','__imul__','__init__','__iter__','__le__','__len__','__lt__','__mul__','__ne__','__new__','__reduce__','__reduce_ex__','__repr__','__reversed__','__rmul__','__setattr__','__setitem__','__setslice__','__sizeof__','__str__','__subclasshook__','append','count','extend','index','insert','pop','remove','reverse','sort']
贴士#12. 简化 if 语句
我们可以使用下面的方式来验证多个值:
ifmin[1,3,5,7]:
而不是:
ifm==1orm==3orm==5orm==7:
或者,对于
in
操作符我们也可以使用
''
而不是
'[1,3,5,7]'
,因为
set
中取元素是 O(1) 操作。
贴士#13. 运行时检测 Python 版本
当正在运行的 Python 低于支持的版本时,有时我们也许不想运行我们的程序。为达到这个目标,你可以使用下面的代码片段,它也以可读的方式输出当前 Python 版本:
import sys
#Detect the Python version currently in use.
print("Sorry, you aren't running on Python 3.5n")
print("Please upgrade to 3.5.n")
sys.exit(1)
#Print Python version in a readable format.
print("Current Python version: ",sys.version)
或者你可以使用
sys.version_info >= (3, 5)
来替换上面代码中的
,这是一个读者的建议。
在 Python 2.7 上运行的结果:
Python
Python2.7.10(default,Jul142015,19:46:27)
[GCC4.8.2]on linux
Sorry,you aren'trunning on Python3.5
Please upgrade to3.5.
在 Python 3.5 上运行的结果:
Python
Python3.5.1(default,Dec2015,13:05:11)
[GCC4.8.2]on linux
Current Python version:3.5.2(default,Aug222016,21:11:05)
[GCC5.3.0]
贴士#14. 组合多个字符串
如果你想拼接列表中的所有记号,比如下面的例子:
>>>test=['I','Like','Python','automation']
现在,让我们从上面给出的列表元素新建一个字符串:
>>>print''.join(test)
贴士#15. 四种翻转字符串/列表的方式
# 翻转列表本身
testList=[1,3,5]
testList.reverse()
print(testList)
#-> [5, 3, 1]
# 在一个循环中翻转并迭代输出
forelement inreversed([1,3,5]):
print(element)
# 一行代码翻转字符串
"Test Python"[::-1]
输出为 “nohtyP tseT”
# 使用切片翻转列表
[1,3,5][::-1]
上面的命令将会给出输出 [5,3,1]。
贴士#16. 玩转枚举
使用枚举可以在循环中方便地找到(当前的)索引:
testlist=[10,20,30]
fori,value inenumerate(testlist):
print(i,': ',value)
#1-> 0 : 10
#2-> 1 : 20
#3-> 2 : 30
贴士#17. 在 Python 中使用枚举量
我们可以使用下面的方式来定义枚举量:
classShapes:
Circle,Square,Triangle,Quadrangle=range(4)
print(Shapes.Circle)
print(Shapes.Square)
print(Shapes.Triangle)
print(Shapes.Quadrangle)
贴士#18. 从方法中返回多个值
并没有太多编程语言支持这个特性,然而 Python 中的方法确实(可以)返回多个值,请参见下面的例子来看看这是如何工作的:
# function returning multiple values.
defx():
return1,2,3,4
# Calling the above function.
a,b,c,d=x()
print(a,b,c,d)
#-> 1 2 3 4
贴士#19. 使用
*
运算符(splat operator)来 unpack 函数参数
*
运算符(splat operator)提供了一个艺术化的方法来 unpack 参数列表,为清楚起见请参见下面的例子:
def test(x,y,z):
print(x,y,z)
testDict={'x':1,'y':2,'z':3}
testList=[10,20,30]
test(*testDict)
test(**testDict)
test(*testList)
#1-> x y z
#2-> 1 2 3
#3-> 10 20 30
贴士#20. 使用字典来存储选择操作
我们能构造一个字典来存储表达式:
stdcalc={
'sum':lambdax,y:x+y,
'subtract':lambdax,y:x-y
}
print(stdcalc['sum'](9,3))
print(stdcalc['subtract'](9,3))
领取专属 10元无门槛券
私享最新 技术干货