Python学习笔记2—内置函数

函数的使用

官方文档:https://docs.python.org/2/library/functions.html

查看帮助

>>> help(abs)
Help on built-in function abs in module __builtin__:

abs(...)
    abs(number) -> number
    
    Return the absolute value of the argument.
(END) 

按q退出。

 

实例:

divmod()

>>> divmod(5,2)   #表示5除以2的商和余数
(2, 1)
>>> divmod(9,2)
(4, 1)

round()

>>> round(3.3456,3)   #保留3位小数,进行4舍五入
3.346

raw_input()

类似于bash中的read,注意它的输出都是Str类型的。

>>> name=raw_input("How old are you?")
How old are you?15
>>> type(name)
<type 'str'>
>>> print name
15

 ord()

求某个字符对应的ASSIC码值

>>> ord("a")
97
>>> ord("b")
98
>>> ord("A")
65

 hasattr()

判断一个对象是否有某一中属性

 

>>> a=[1,2]
>>> hasattr(a,'__iter__')         #判断是否可迭代
True
>>> hasattr(3,'__iter__')
False

 range()

>>> range(9)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> range(1,6,2)
[1, 3, 5]
>>> range(0,-9,-1)
[0, -1, -2, -3, -4, -5, -6, -7, -8

 enumerate

中文翻译是枚举的意思,

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

lambda

lambda arg1, arg2, ...argN : expression using arguments

>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]
>>> for i in lamb:
... print i(3),
...
3 9 27 81

 map

map(func,seq)

func 是一个函数,seq 是一个序列对象。在执行的时候,序列对象中的每个元素,按照从左到右的顺序,依次被取出来,并塞入到 func 那个函数里面,并将 func 的返回值依次存到一个 list 中。

 

复制代码
>>> items=[1,2,3,4]
>>> def sqr(x):return x**2
... 
>>> map (sqr,items)
[1, 4, 9, 16]

>>> map(lambda x: x**2, items) #使用lambda
[1, 4, 9, 16]

>>> [ x**2 for x in items ] #使用list解析
[1, 4, 9, 16]

复制代码

 

 

reduce

map是上下运算,reduce 是横着逐个元素进行运算。

>>> reduce(lambda x,y: x+y,[1,2,3,4,5])
15

 

filter

filter(function, iterable)

>>> numbers = range(-5,5)
>>> numbers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> filter(lambda x: x>0, numbers)
[1, 2, 3, 4]

>>> [x for x in numbers if x>0] #与上面那句等效
[1, 2, 3, 4

 

posted @   头痛不头痛  阅读(211)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩