学习Python是一个循序渐进的过程,需要逐步掌握基本语法和数据类型、控制流程语句、文件操作、面向对象编程等知识点,并且需要通过不断的实践来加深理解和提高技能。学习过程需要注重细节和基础,同时也需要保持好奇心和探索精神,不断尝试新的方法和技术,才能更好地掌握Python编程。在学习的过程中,可以通过阅读官方文档、参加在线教程、阅读书籍、练习题目、参与开源项目等多种方式来提升自己的编程能力和经验。最终,只有不断努力和坚持学习,才能掌握Python编程,成为一个优秀的Python开发者。今天继续来分享Python基础的干货。
1.枚举对象
返回一个可以枚举的对象,该对象的next()方法将返回一个元组。
In [1]: s = ["a","b","c"]
...: for i ,v in enumerate(s,1):
...: print(i,v)
...:
1 a
2 b
3 c
2.计算表达式
将字符串str 当成有效的表达式来求值并返回计算结果取出字符串中内容
In [1]: s = "1 + 3 +5"
...: eval(s)
...:
Out[1]: 9
3.转为浮点类型
将一个整数或数值型字符串转换为浮点数
In [1]: float(3)
Out[1]: 3.0
如果不能转化为浮点数,则会报ValueError:
In [2]: float('a')
ValueError Traceback (most recent call last)
<ipython-input-11-99859da4e72c> in <module>()
----> 1 float('a')
ValueError: could not convert string to float: 'a'
4.创建属性的两种方式
返回 property 属性,典型的用法:
class C:
def __init__(self):
self._x = None
def getx(self):
return self._x
def setx(self, value):
self._x = value
def delx(self):
del self._x
# 使用property类创建 property 属性
x = property(getx, setx, delx, "I'm the 'x' property.")
使用python装饰器,实现与上完全一样的效果代码:
class C:
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self, value):
self._x = value
@x.deleter
def x(self):
del self._x
5.创建迭代器类型
使用iter(obj, sentinel), 返回一个可迭代对象, sentinel可省略(一旦迭代到此元素,立即终止)
In [1]: lst = [1,3,5]
In [2]: for i in iter(lst):
...: print(i)
...:
1
3
5
In [1]: class TestIter(object):
...: def __init__(self):
...: self.l=[1,3,2,3,4,5]
...: self.i=iter(self.l)
...: def __call__(self): #定义了__call__方法的类的实例是可调用的
...: item = next(self.i)
...: print ("__call__ is called,fowhich would return",item)
...: return item
...: def __iter__(self): #支持迭代协议(即定义有__iter__()函数)
...: print ("__iter__ is called!!")
...: return iter(self.l)
In [2]: t = TestIter()
In [3]: t() # 因为实现了__call__,所以t实例能被调用
__call__ is called,which would return 1
Out[3]: 1
In [4]: for e in TestIter(): # 因为实现了__iter__方法,所以t能被迭代
...: print(e)
...:
__iter__ is called!!
1
3
2
3
4
5
6.反向迭代器
In [1]: rev = reversed([1,4,2,3,1])
In [2]: for i in rev:
...: print(i)
...:
1
3
2
4
1