【Python基础篇011】全部内置函数详细认识(中篇)

简介: 【Python基础篇011】全部内置函数详细认识(中篇)

目录

💓前言

🍀一、exec和eval内置函数

☘️1、exec内置函数

☘️2、eval内置函数

☘️3、代码实练总结exec和eval内置函数

🍀二、compile内置函数

🍀三、complex内置函数

🍀四、 bin、oct、和hex内置函数

🍀五、abs内置函数

🍀六、divmod内置函数

🍀七、pow内置函数

🍀八、sum内置函数

🍀九、max和min内置函数

💓结语


💓前言

承接上篇博客,以下我要讲解的是Python中剩余的重要内置函数,其中比较重要的会详细讲解,比较简单的会直接结合代码进行剖析

🍀一、exec和eval内置函数

☘️1、exec内置函数

python内置函数exec支持动态执行python代码,传入exec函数的object实参可以是字符串,也可以是字节码对象。如果object实参是字符串则会被exec函数编译并执行,如果是字节码对象则会被直接执行。通常exec配合compile函数来使用。

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

语法
以下是 exec 的语法:

exec(object[, globals[, locals]])
参数
object:必选参数,表示需要被指定的 Python 代码。它必须是字符串或 code 对象。如果 object 是一个字符串,该字符串会先被解析为一组 Python 语句,然后再执行(除非发生语法错误)。如果 object 是一个 code 对象,那么它只是被简单的执行。
globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象
locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与 globals 相同的值。
返回值
exec 返回值永远为 None。

☘️2、eval内置函数

eval只能用在你明确知道你要执行的代码是什么的时候,且一般情况下不会使用

描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。

语法
以下是 eval() 方法的语法:

eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。

☘️3、代码实练总结exec和eval内置函数

  1.     eval有返回值     ————  适用于有结果的简单计算
  2.     exec没有返回值 ———— 适用于简单的流程控制

函数代码

exec('print("我是字符串内的输出")')
eval('print("我是字符串内的输出")')

print(exec('1+2+3+4'))  #exec没有返回值
print(eval('1+2+3+4'))  #eval有返回值

'''简单的流程控制'''
code = '''for i in range(4):
    print(i*'*')
'''
exec(code)

输出结果:
我是字符串内的输出
我是字符串内的输出
None
10

*
**
***

🍀二、compile内置函数

  • 描述

compile() 函数将一个字符串编译为字节代码。

计算机是不认识print等,必须将他们编译成字节码才能让计算机能够识别

  • 语法

以下是 compile() 方法的语法:

compile(source, filename, mode[, flags[, dont_inherit]])

  • 参数

source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
flags和dont_inherit是用来控制编译源码时的标志

代码理解:

>>> #流程语句使用exec
>>> code1 = 'for i in range(0,10): print (i)'
>>> compile1 = compile(code1,'','exec')
>>> exec (compile1)
1
3
5
7
9


>>> #简单求值表达式用eval
>>> code2 = '1 + 2 + 3 + 4'
>>> compile2 = compile(code2,'','eval')
>>> eval(compile2)


>>> #交互语句用single
>>> code3 = 'name = input("please input your name:")'
>>> compile3 = compile(code3,'','single')
>>> name #执行前name变量不存在
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    name
NameError: name 'name' is not defined
>>> exec(compile3) #执行时显示交互命令,提示输入
please input your name:'pythoner'
>>> name #执行后name变量有值
"'pythoner'"

🍀三、complex内置函数

描述
complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。

语法
complex 语法:

class complex([real[, imag]])
参数说明:

real -- int, long, float或字符串;
imag -- int, long, float;
返回值
返回一个复数。

代码理解:

🍀四、 bin、oct、和hex内置函数

  1. bin:返回一个整数 int 或者长整数 long int 的二进制表示。
  2. oct: 将一个整数转换成 8 进制字符串,8 进制以 0o 作为前缀表示。
  3. hex: 用于将一个指定数字转换为 16 进制数。
print(bin(10))    #二进制
print(oct(10))    #八进制
print(hex(10))    #十六进制

输出结果:
0b1010
0o12
0xa

🍀五、abs内置函数

返回数字的绝对值

print(abs(-5))
print(abs(22))

输出结果:
5
22

🍀六、divmod内置函数

Python divmod() 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。

在 python 3.x 版本该函数不支持复数。

函数语法

divmod(a, b)

参数说明:

  • a: 数字,非复数。
  • b: 数字,非复数。

如果参数 a 与 参数 b 都是整数,函数返回的结果相当于 (a // b, a % b)

如果其中一个参数为浮点数时,函数返回的结果相当于 (q, a % b),q 通常是 math.floor(a / b),但也有可能是 1 ,比小,不过 q * b + a % b 的值会非常接近 a。

如果 a % b 的求余结果不为 0 ,则余数的正负符号跟参数 b 是一样的,若 b 是正数,余数为正数,若 b 为负数,余数也为负数,并且 0 <= abs(a % b) < abs(b)。


print(divmod(5,4))
print(divmod(4,5))
print(divmod(5,-4))

输出结果:
(1, 1)
(0, 4)
(-2, -3)

🍀七、pow内置函数

pow(x,y) 方法返回 xy(x的y次方) 的值。

内置的 pow() 方法

语法:

pow(x, y[, z])

函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z

注意:

pow() 通过内置的方法直接调用,内置方法会把参数作为整型,而 math 模块则会把参数转换为 float。

print(pow(2,3))
print(pow(2,3,3))
print(pow(3,2,1))  #幂运算之后在取余

输出解果:
8
2
0

🍀八、sum内置函数

描述

sum() 方法对序列进行求和计算。

语法

以下是 sum() 方法的语法:

sum(iterable[, start])

参数

  • iterable -- 可迭代对象,如:列表、元组、集合。
  • start -- 指定相加的参数,如果没有设置这个值,默认为0。

返回值

返回计算结果。

print(sum([1,2,3,4,5,6]))
print(sum([1,2,3,4,5,6],10))

输出结果:
21
31

🍀九、max和min内置函数

描述

max() /min()方法返回给定参数的最大值/(最小值),参数可以为序列。


语法

以下是 max() /min()方法的语法:

max( x, y, z, .... )
min( x, y, z, .... )

参数

  • x -- 数值表达式。
  • y -- 数值表达式。
  • z -- 数值表达式。
    • *

返回值

返回给定参数的最大值/最小值。

print(min(1,2,3,4))
print(min([1,2,3,4]))
print(min([1,2,3,-4],key=abs))  #判断绝对值的最小值

输出结果:
1
1
1

相关文章
|
2月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
72 0
|
17天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
119 67
|
10天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
36 18
|
2天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
23 8
|
11天前
|
Python
Python中的函数
Python中的函数
26 8
|
18天前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
25天前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
38 5
|
2月前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
2月前
|
存储 数据安全/隐私保护 索引
|
1月前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。