【超全面】Python内置函数详解(二)

简介: 【超全面】Python内置函数详解(二)

【超全面】Python内置函数详解(一):https://developer.aliyun.com/article/1540492

23、exec()

**描述:**执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。

*语法:exec(*object, globals, locals)

参数:

  • object– 要执行的表达式。
  • globals – 可选。包含全局参数的字典。
  • locals – 可选。包含局部参数的字典。

案例:

执行字符串或compile方法编译过的字符串,没有返回值
s = "print('helloworld')"
r = compile(s,"<string>", "exec")
exec(r)
helloworld

x = 10
expr = """
z = 30
sum = x + y + z
print(sum)
"""
def func():
    y = 20
    exec(expr)
    exec(expr, {'x': 1, 'y': 2})
    exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
    
func()
60
33
34

24、filter()

**描述:**filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。


该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。


过滤器,构造一个序列,等价于:[ item for item in iterables if function(item)]


在函数中设定过滤条件,逐一循环迭代器中的元素,将返回值为True时的元素留下,形成一个filter类型数据。


**语法:**filter(function, iterable)


参数:

  • function – 判断函数。
  • iterable – 可迭代对象。

案例:

fil = filter(lambda x: x>10,[1,11,2,45,7,6,13])

fil
 <filter at 0x28b693b28c8>
list(fil)
[11, 45, 13]

def is_odd(n):
    return n % 2 == 1
 
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(list(newlist))
[1, 3, 5, 7, 9]

25、float()

**描述:**将一个字符串或整数转换为浮点数

**语法:**class float([x])

**参数:**x – 整数或字符串

案例:

float(3)
3.0


float('123')     # 字符串
 123.0

26、format()

**描述:**Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。基本语法是通过 {} 和 : 来代替以前的 % 。使用format()来格式化字符串时,使用在字符串中使用{}作为占位符,占位符的内容将引用format()中的参数进行替换。可以是位置参数、命名参数或者兼而有之。


format 函数可以接受不限个参数,位置可以不按顺序。


**语法:**format(value, format_spec)


参数:


案例:

# 位置参数
'{}:您{}购买的{}到了!请下楼取快递。'.format('快递小哥','淘宝','快递')
'快递小哥:您淘宝购买的快递到了!请下楼取快递。'
#给批量客户发短息
n_list=['马云','马化腾','麻子','小红','李彦宏','二狗子']
for name in n_list:
    print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(name))
马云:您淘宝购买的快递到了!请下楼取快递!
马化腾:您淘宝购买的快递到了!请下楼取快递!
麻子:您淘宝购买的快递到了!请下楼取快递!
小红:您淘宝购买的快递到了!请下楼取快递!
李彦宏:您淘宝购买的快递到了!请下楼取快递!
二狗子:您淘宝购买的快递到了!请下楼取快递!
    
#名字进行填充    
for n in n_list:
    print('{0}:您淘宝购买的快递到了!请下楼取快递!'.format(n.center(3,'*')))
    
*马云:您淘宝购买的快递到了!请下楼取快递!
马化腾:您淘宝购买的快递到了!请下楼取快递!
*麻子:您淘宝购买的快递到了!请下楼取快递!
*小红:您淘宝购买的快递到了!请下楼取快递!
李彦宏:您淘宝购买的快递到了!请下楼取快递!
二狗子:您淘宝购买的快递到了!请下楼取快递!
'{0}, {1} and {2}'.format('gao','fu','shuai')
'gao, fu and shuai'

x=3
y=5
'{0}+{1}={2}'.format(x,y,x+y)


# 命名参数
'{name1}, {name2} and {name3}'.format(name1='gao', name2='fu', name3='shuai')
'gao, fu and shuai'
# 混合位置参数、命名参数
'{name1}, {0} and {name3}'.format("shuai", name1='fu', name3='gao')
'fu, shuai and gao'
#for循环进行批量处理
["vec_{0}".format(i) for i in range(0,5)]
['vec_0', 'vec_1', 'vec_2', 'vec_3', 'vec_4']


['f_{}'.format(r) for r in list('abcde')]
['f_a', 'f_b', 'f_c', 'f_d',

27、frozenset()

**描述:**frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。


**语法:**class frozenset([iterable])


**参数:**iterable – 可迭代的对象,比如列表、字典、元组等等。


案例:

创建一个不可修改的集合。
frozenset([1,1,3,2,3])
frozenset({1, 2, 3})

28、getattr()

**描述:**获取对象的属性

**语法:**getattr(object, name[, default])

参数:

  • object – 对象。
  • name – 字符串,对象属性。
  • default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

案例:

class Age(object):
      age = 1
  
my_a = Age()
getattr(my_a, 'age')        # 获取属性 bar 值
 1
getattr(my_a, 'age1')
'Age' object has no attribute 'age1'

29、gobals()

描述: 函数会以字典类型返回当前位置的全部全局变量。

**语法:**globals()

参数:无

案例:

a='runoob'
print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量

30、hasattr()

**描述:**函数用于判断对象是否包含对应的属性。

**语法:**hasattr(object, name)

参数:

  • object – 对象。
  • name – 字符串,属性名。

案例:

class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 
print(hasattr(point1, 'x'))
True
print(hasattr(point1, 'y'))
True
print(hasattr(point1, 'z'))
True
print(hasattr(point1, 'no'))  # 没有该属性
Falseclass Coordinate:    x = 10    y = -5    z = 0 point1 = Coordinate() print(hasattr(point1, 'x'))Trueprint(hasattr(point1, 'y'))Trueprint(hasattr(point1, 'z'))Trueprint(hasattr(point1, 'no'))  # 没有该属性False

31、hash()

**描述:**返回对象的哈希值

**语法:**hash(object)

**参数:**object – 对象;

案例:

hash() 函数可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。
在 hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关。
class Test:
    def __init__(self, i):
        self.i = i
for i in range(10):
    t = Test(1)
    print(hash(t), id(t))
    
hash(point1)
16294976

hash('返回对象的哈希值')
4919828709165481160

hash() 函数的用途
hash() 函数的对象字符不管有多长,返回的 hash 值都是固定长度的,也用于校验程序在传输过程中
是否被第三方(木马)修改,如果程序(字符)在传输过程中被修改hash值即发生变化,如果没有被
修改,则 hash 值和原始的 hash 值吻合,只要验证 hash 值是否匹配即可验证程序是否带木马(病毒)。
 
name1='正常程序代码'
name2='正常程序代码带病毒'
 
print(hash(name1)) # -3048480827538126659
print(hash(name2)) # -9065726187242961328

32、help()

**描述:**返回对象的帮助文档

**语法:**help([object])

**参数:**object – 对象

案例:

help('sys')             # 查看 sys 模块的帮助
help('str')             # 查看 str 数据类型的帮助
a = [1,2,3]
help(a)                 # 查看列表 list 帮助信息
 
help(a.append)       # 显示list的append方法的帮助

33 、id()

**描述:**id() 函数返回对象的唯一标识符,标识符是一个整数。CPython 中 id() 函数用于获取对象的内存地址。

**语法:**id([object])

**参数:**object – 对象。

案例:

返回对象的内存地址
a = 'runoob'
id(a)
260316720

34、input()

**描述:**Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。获取用户输入内容

**语法:**input([prompt])

**参数:**prompt: 提示信息

案例:

a = input("input:")
input:1234
print(a)
123

35、int()

**描述:**int() 函数用于将一个字符串或数字转换为整型。 x可能为字符串或数值,将x 转换为一个普通整数。如果参数是字符串,那么它可能包含符号和小数点。如果超出了普通整数的表示范围,一个长整数被返回。


**语法:**int(x, base =10)

参数:

  • x – 字符串或数字。
  • base – 进制数,默认十进制。

案例:

int('12',16)
18

int('12',10)
12

36、isinstance()

**描述:**isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

isinstance() 与 type() 区别:

type() 不会认为子类是一种父类类型,不考虑继承关系。

isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

**语法:**isinstance(object, classinfo)

参数:


object – 实例对象。

classinfo – 可以是直接或间接类名、基本类型或者由它们组成的元组。

案例:

a = 2
isinstance (a,int)
True
isinstance (a,str)
False
isinstance (a,(str,int,list))#是元组中的一个返回 True
True

37、issubclass()

**描述:**issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。如果class是classinfo类的子类,返回True:


**语法:**issubclass(class, classinfo)


参数:

  • class – 类。
  • classinfo – 类。

案例:

class A:
    pass
class B(A):
    pass
    
print(issubclass(B,A))    # 返回 True

38、iter()

**描述:**iter() 函数用来生成迭代器。

**语法:**iter(object[, sentinel])

参数:

  • object – 支持迭代的集合对象。
  • sentinel – 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object。返回一个可迭代对象, sentinel可省略,sentinel 理解为迭代对象的哨兵,一旦迭代到此元素,立即终止:

案例:


lst = [1,3,5]
iter(lst)
<list_iterator at 0xf8359e8>


for i in iter(lst):
    print(i)
1
3
5

39、len()

**描述:**len() 函数返回对象(字符、列表、元组等)长度或项目个数。

**语法:**len(s)

**参数:**s – 对象。

案例:

#字典的长度
dic = {'a':1,'b':3}
len(dic)
2

#字符串长度
s='aasdf'
len(s)
5

#列表元素个数
l = [1,2,3,4,5]
len(l)

40、list()

**描述:**list() 函数创建列表或者用于将元组转换为列表。

**语法:**list( tup )

**参数:**tup – 要转换为列表的元组。

案例:

atuple = (123, 'xyz', 'zara', 'abc')
aList = list(atuple)

aList
[123, 'xyz', 'zara', 'abc']

41、map()

**描述:**map() 会根据提供的函数对指定序列做映射。返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器


**语法:**map(function, iterable, …)


参数:


  • function – 函数
  • iterable – 一个或多个序列

案例:

def square(x) :            # 计算平方数
    return x ** 2
list(map(square, [1,2,3,4,5]))   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]


list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]


# 提供了两个列表,对相同位置的列表数据进行相加
list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
[3, 7, 11, 15, 19]


list(map(lambda x: x%2==1, [1,3,2,4,1]))
[True, True, False, False, True

42、max()

**描述:**max() 方法返回给定参数的最大值,参数可以为序列。

**语法:**max( x, y, z, … )

参数:

  • x – 数值表达式。
  • y – 数值表达式。
  • z – 数值表达式。

案例:

最大值:
max(3,1,4,2,1)
4

di  {'a':3,'b1':1,'c':4}
max(di)
'c'

43、min()

**描述:**min() 方法返回给定参数的最小值,参数可以为序列。

**语法:**min( x, y, z, … )

参数:

  • x – 数值表达式。
  • y – 数值表达式。
  • z – 数值表达式。

案例:

min(80, 100, 1000)
80
min([80, 100, 1000])
80


【超全面】Python内置函数详解(三):https://developer.aliyun.com/article/1540494?spm=a2c6h.13148508.setting.27.36474f0evjrly2

相关文章
|
10天前
|
Python
高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作
【6月更文挑战第20天】高阶函数如`map`, `filter`, `reduce`和`functools.partial`在Python中用于函数操作。装饰器如`@timer`接收或返回函数,用于扩展功能,如记录执行时间。`timer`装饰器通过包裹函数并计算执行间隙展示时间消耗,如`my_function(2)`执行耗时2秒。
16 3
|
4天前
|
Python
python之print函数
python之print函数
11 0
|
7天前
|
测试技术 开发者 Python
Python中的装饰器:提升函数的灵活性和可重用性
在Python编程中,装饰器是一种强大的工具,它可以在不修改函数本身的情况下,动态地扩展函数的功能。本文将介绍装饰器的工作原理及其在实际开发中的应用,帮助读者更好地理解和利用这一特性。
|
4天前
|
分布式计算 算法 Python
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
|
6天前
|
存储 Python
在Python中,匿名函数(lambda表达式)是一种简洁的创建小型、一次性使用的函数的方式。
【6月更文挑战第24天】Python的匿名函数,即lambda表达式,用于创建一次性的小型函数,常作为高阶函数如`map()`, `filter()`, `reduce()`的参数。lambda表达式以`lambda`开头,后跟参数列表,冒号分隔参数和单行表达式体。例如,`lambda x, y: x + y`定义了一个求和函数。在调用时,它们与普通函数相同。例如,`map(lambda x: x ** 2, [1, 2, 3, 4, 5])`会返回一个列表,其中包含原列表元素的平方。
20 4
|
7天前
|
JSON 数据格式 索引
Python内置函数如`print()`输出信息,`len()`计算长度
【6月更文挑战第23天】Python内置函数如`print()`输出信息,`len()`计算长度,`type()`识别类型,`range()`生成序列,`sum()`求和,`min()`和`max()`找极值,`abs()`取绝对值,`round()`四舍五入,`sorted()`排序,`zip()`和`enumerate()`组合及遍历,`map()`和`filter()`应用函数。标准库如`os`用于操作系统交互,`sys`处理解释器信息,`math`提供数学运算,`re`支持正则表达式,`json`处理JSON数据。学习这些能提升编程效率。
22 5
|
6天前
|
Python
在Python中,高阶函数是指那些可以接受一个或多个函数作为参数,并返回一个新的函数的函数。
【6月更文挑战第24天】Python的高阶函数简化代码,增强可读性。示例:`map()`检查用户名合法性,如`[&quot;Alice&quot;, &quot;Bob123&quot;, &quot;Charlie!&quot;, &quot;David7890&quot;]`;`reduce()`与`lambda`结合计算阶乘,如1到10的阶乘为3628800;`filter()`找出1到100中能被3整除的数,如[3, 6, 9, ..., 99]。
14 3
|
6天前
|
分布式计算 大数据 调度
MaxCompute产品使用问题之为什么用python写的udf函数跑起来比本地还要慢
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
10天前
|
数据安全/隐私保护 Python
Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。
【6月更文挑战第20天】Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。例如,`@simple_decorator` 包装`my_function`,在调用前后添加额外操作。装饰器还能接受参数,如`@logged(&quot;INFO&quot;, &quot;msg&quot;)`,允许动态定制功能。
16 6