Python常用内置函数(二)

Python exec函数 exec()# 执行简单的函数定义greet("Alice") # 输出:Hello, Alice在这个示例中,使用exec()函数执行了一个简单的函数定义,定义了一个名为greet的函数,然后在之后的代码中调用了这个函数。通过本文,已经了解了exec()函数的基本用法、安全性考虑、实际应用场景,并掌握了如何在实际编程中使用它。exec()函数是Python中一个非常强大但也容易被误用的函数,它可以用于执行存储在字符串或代码对象中的Python代码,并且可以修改当前的全局和局部命名空间。 阅读详情

了解更多的Python相关知识可以访问我的网站

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
点击此处跳转我的网站

dict()

作用:用来创建字典

dict1 = dict()  # 传一个空字典

print(dict1)

dict2 = dict({1: "登录", 2: "退出"})  # 传一个字典

print(dict2)

dict3 = dict(x=1, y=2)  # 传关键字
print(dict3)

dict4 = dict([(1, "登录"), (2, "退出")])  # 传一个包含一个或多个元祖的列表

print(dict4)

dict5 = dict(zip([1, 2], ["登录", "退出"]))  # 传一个zip()函数

print(dict5)

输出结果:
{}
{1: '登录', 2: '退出'}
{'x': 1, 'y': 2}
{1: '登录', 2: '退出'}
{1: '登录', 2: '退出'}


dir()

作用:

找到模块内定义的所有名称。以一个字符串列表的形式返回。

  • 如果对象是模块对象,则列表包含模块的属性名称。

  • 如果对象是类型或类对象,则列表包含它们的属性名称,并且递归查找所有基类的属性。

  • 否则,列表包含对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性。

1. 直接调用

import sys

print(dir())

return:
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'sys']

2. 传参某个模块
import sys

print(dir(sys))

return:
['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_base_executable', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_enablelegacywindowsfsencoding', '_framework', '_getframe', '_git', '_home', '_xoptions', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth', 'getallocatedblocks', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'platlibdir', 'prefix', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions', 'winver']

可以看到其中包括了所有的sys可调用的方法,如sys.path,sys.exit等
3. 传某个实例化的类

class Shape:
	def __dir__(self):
		return ['area', 'perimeter', 'location']
		
s = Shape()

print(dir(s))

return: ['area', 'location', 'perimeter']

如果: 类中不带__dir__函数,那么

class Shape:
    # def __dir__(self):
    #     return ['area', 'perimeter', 'location']

    def add(self):
        return 3
		
s = Shape()

print(dir(s))

给出的是类的方法
return: ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add']

divmod()

  • 中文说明:divmod(a,b)方法返回的是a//b(商)以及a%b(余数),返回结果类型为tuple
例:
a = 25
b = 3

print(divmod(a, b))

结果:
(8, 1)

enumerate()

  • enumerate()用于将一个可遍历的数据对象(如列表、元组或字符串等)组合为一个索引序列,同时列出数据和数据下标,多用于for循环
源码欣赏:
def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1
语法:

enumerate(a,start)
a是可迭代对象,start是计数起始数字

li = ["a", "b", "c", "d", "e", "f"]

for i, j in enumerate(li):
    print({i: j})
	
结果:

{0: 'a'}
{1: 'b'}
{2: 'c'}
{3: 'd'}
{4: 'e'}
{5: 'f'}

li = ["a", "b", "c", "d", "e", "f"]

for i in enumerate(li, 1):
    print(i)
	
结果:
下标从1开始计数
(1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
(6, 'f')

eval()

作用:相当于去皮,使用果肉

使用场景介绍:

First:

a=10;
print(eval("a+1"))

结果:11
在这种情况下,后两个参数省略了,所以eval中的a是前面的10。对于eval,它会将第一个expression字符串参数的引号去掉,然后对引号中的式子进行解析和计算。
Second:

a=10;
g={'a':4}
print(eval("a+1",g))

结果:5
在这次的代码中,我们在 eval中提供了globals参数,这时候eval的作用域就是g指定的这个字典了,也就是外面的a=10被屏蔽掉了,eval是看不见的,所以使用了a为4的值。
Third:

a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))

结果:116

此次执行的结果中,a是6,b是100,c是10。我们首先来看一下,对于a为6我们是没有疑问的,因为在上个例子中已经说了,g会屏蔽程序中的全局变量的,而这里最主要的是为什么b是100呢?还记得我们在参数介绍的时候说过,当locals和globals起冲突时,locals是起决定作用的,这在很多编程语言里都是一样的,是作用域的覆盖问题,当前指定的小的作用域会覆盖以前大的作用域,这可以理解为一张小的纸盖在了一张大的纸上,纸是透明的,上面写的东西是不透明的,而它们重合的地方就可以理解成两个作用域冲突的地方,自然是小的显现出来了。

参考地址: https://blog.youkuaiyun.com/qq_29883591/article/details/53443062


exec()

  • exec()函数能执行储存在字符串或文件中的 Python 语句,相比于 eval()函数,exec可以执行更复杂的 Python 代码。

  • 语法:exec(object[, globals[, locals]])

  • 返回值为None

object — 必选,表示需要被指定的Python代码。它必须是字符串或代码对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个代码对象,那么它只是被简单的执行。

globals — 可选,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。

locals — 可选,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。

exec ('print("你好,深圳!")') # 单行语句字符串
#  多行语句字符串
exec ("""                    
def sum(a,b):
    return a+b
print("a+b=%s"%sum(10,20))
""")

结果:

你好,深圳!
a+b=30

总结

  • 1、exec函数执行的是python语句,没有返回值,eval函数执行的是python表达式,有返回值;

  • 2、exec函数和eval函数都可以传入命名空间作为参数,实际上,可以向exec函数和eval函数提供两个命名空间,他们的函数定义为:
    exec(source, globals=None, locals=None)
    eval(source, globals=None, locals=None)
    其中globals和locals都是可选参数,globals表示全局命名空间,必须是字典,locals表示局部命名空间,可以是任何映射。

  • 3、需要注意的是,exec函数和eval函数都是将用户提供的字符串作为代码执行,将无法控制代码的行为,会带来严重的安全隐患,使用的时候要慎重。


filter(function, iterable)

官方说法:用 iterable 中函数 function 返回真的那些元素,构建一个新的迭代器。

terable 可以是一个序列,一个支持迭代的容器,或一个迭代器。如果 function 是 None ,则会假设它是一个身份函数,即 iterable 中所有返回假的元素会被移除。

def is_odd(n):
    return n % 2 == 1


newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

print(f'odd:{list(newlist)}')

结果:odd:[1, 3, 5, 7, 9]
23.Python中的exec函数 《Python编程的术与道:Python语言进阶》视频课程 《Python编程的术与道:Python语言进阶》视频课程链接:https://edu.youkuaiyun.com/course/detail/28618 exec函数 exec是Python的内置函数,能够执行储存在字符串或文件中的 Python 语句。 eval()函数只能执行计算数学表达式的结果的功能,而exec()能够动态地执行复杂的Python代码, exec做的是编译和评估字符串中的语句。 首先,我们可以看到它可以完成eval所做的相同工作,例如 阅读详情

相关推荐

利用python-docx提取word的高亮部分

利用python-docx提取word的高亮部分 没有找到分享的文档,于是就自己研究了一下。 可以通过python里的python-docx去提取word内的高亮文本。 file=docx.Document(filepath) for para in file.paragraphs: for i in para.runs: #i.font.highlight_color设置了高亮颜色 if i.font.highlight_color is not None:

double_0221的博客 1810

python的exec函数

由于它可以执行任意代码,因此在接受外部输入或不可信来源的代码时,应谨慎使用,并确保对输入进行适当验证和过滤,以避免代码注入等安全问题。是 Python 内置的一个函数,用于在运行时执行动态生成的 Python 代码。它以字符串形式接收一个代码块,并将其编译并执行为可执行的 Python 代码。(可选):一个字典,用于指定全局命名空间的符号表。可迭代对象:包含 Python 语句的字符串列表或包含语句的代码对象列表。:必需,表示要执行的代码块。字符串:包含要执行的 Python 代码的字符串。

笔记 1万+

D类功放几种常见“爆破音”问题根源与改善措施

在数字D类功放刚上电或功放播放状态切换时,人耳偶尔会听到“嘣”的声音,我们把这个爆破的Pop Noise。数字功放Pop Noise 出现的原因有很多,本文主要分析Pop Noise 出现原因,并提供相应解决方法。

qq_26815321的博客 3594

Python的exec

目录 exec()简单使用 动态执行简单的字符串代码 动态执行较复杂的代码 执行文件中的Python代码 在exec中传参 ​ 使用中遇到的问题 参考 exec()简单使用 个人比较喜欢用Python里面的exec(),可以用来动态执行字符串代码,在for循环里面能快速执行大量类似于list1= 1,list2=2,list3=3..这样的语句,使代码显得更加简洁。 首...

暗焰之珩的博客 1万+

最新Mamba环境配置教程:从CUDA到causal-conv1d的完整安装流程

本文提供最新Mamba环境配置教程,涵盖从CUDA到causal-conv1d的完整安装流程。针对深度学习领域的长序列处理需求,详细指导如何正确配置CUDA工具链、安装PyTorch及关键依赖causal-conv1d,解决常见报错问题,并验证mamba-ssm集成效果。

bush的博客 418

⭐️Python内置函数exec()详解 基本用法 示例 使用场景 安全注意事项 总结——《跟老吕学Python编程》

exec()是一个强大的内置函数,允许你执行存储在字符串或对象代码中的Python代码。然而,由于它可以执行任意的Python代码,因此在使用时必须格外小心,以避免安全风险。在处理用户输入或不可信的来源的代码时,你应该遵循最佳实践来确保应用程序的安全性。如果需要更深入的了解Python内置函数exec()Python内置函数exec()——《Python内置函数手册》Python老吕编著博主:Python老吕优快云网站为我们搭建了一个如此卓越的学习平台,使我们有机会分享知识与经验。

Python老吕的博客 5378

华为OD机试 - 仓库查询 - 树状数组(Java 新系统 200分)

华为OD机试 新系统 题库疯狂收录中,刷题。

学Java,找哪吒 158

python常用内置函数(二)

python常用内置函数(二)help()id()dir() help() 功能:用于查看函数或模块用途的详细说明。 参数:一个对象 实例 print(help('keyword')) print(help(list)) print(help(list.append)) 输出 Help on module keyword: NAME keyword - Keywords (from ...

antRain的博客 248

python实现MACD策略背离点的判断 (附完整源码)

python实现MACD策略背离点的判断 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 672

Python 爬虫实战:爬取股票数据做 K 线图可视化

摘要:本文介绍基于Python的股票数据爬取与K线图可视化全流程技术方案。通过Requests库抓取东方财富网股票数据,使用Pandas进行清洗处理,并利用mplfinance库实现专业K线图绘制。文章详细讲解了数据爬取接口分析、反爬策略配置、K线图绘制方法(包含基础K线图和带均线的进阶版本),以及核心统计指标计算。该方案可应用于股票价格趋势分析,为投资决策提供数据支持,同时强调了数据使用的合规性和技术优化方向。

2503_91057718的博客 2050

python内置函数表示二的十次幂_Python 常用内置函数 (二)

pow(x,y) x的y次幂,相当于x**yx = 2y = 3print pow(x, y)range(),产生一个序列默认从0开始xrange(),与range功能相同,但是并不会立即创建一个列表,而是在每次迭代的时候生成一个值,在数据量较大时使用会节省内存print range(2,5)for i in xrange(2,5):print iround()对一个数四舍五入print rou...

weixin_39830175的博客 1840

34、实数域上高效负循环卷积算法解析

本文介绍了一种高效的实数域负循环卷积算法,通过引入离散傅里叶负循环变换(DFNT)避免传统方法的冗余,显著提升计算效率。文章详细分析了算法原理、误差传播机制,并推导出误差与方差界,提出无误差和基于3σ规则的参数设置方案。结合Cooley-Tukey与Gentleman-Sande FFT路径优化,实验验证了算法在不同精度和多项式长度下的性能优势与结果正确性,为密码学与信号处理等领域提供了高精度、高性能的卷积计算解决方案。

salt的博客 115

Python 常用内置函数 (二)

pow(x,y)  x的y次幂,相当于x**y  x = 2 y = 3 print pow(x, y) range(),产生一个序列默认从0开始 xrange(),与range功能相同,但是并不会立即创建一个列表,而是在每次迭代的时候生成一个值,在数据量较大时使用会节省内存 print range(2,5) for i in xrange(2,5):print i round(

魔法学徒de专栏 1926

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python内置函数(二)(常用篇)

python常用内置函数讲解

weixin_60884460的博客 799

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Python数据分析】Python常用内置函数(二)

讲解Python中的基本内置函数:input()、print()、range()、zip()、map()、reduce()、filter()函数。

m0_56262476的博客 956

Python3 常用的内置函数(二)

cmp() 函数 描述 cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 语法 cmp( x, y ) 参数 x – 数值表达式。 y – 数值表达式。 返回值 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 print "cmp(80, 1...

SML_SeaRover的博客 283

python常用内置函数可以操作字符串_Python常用内置函数(二)

字符串处理方法1.str.capitalize: 将字符串首字母大写str.capitalize('abc')'Abc'2. str.replace(old,new,[,count]): 替换字符,count定义替换的次数,默认是全替换str1 = 'hello,world'str1.replace('o','O')'hellO,wOrld'str1.replace('o','O',1) ...

weixin_39713805的博客 132

百万年薪python之路 -- 内置函数二 -- 最常用的内置函数

1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话函数。 现在有一个需求:你们写一个函数,此函数接收两个int参数,返回 和的值。 def func(a,b): return a+b print(func(3,4)) 那么 接下来我...

banjiao2904的博客 138

python instanceid_python入门(二):isinstance、内置函数、常用运算等

1. isinstance(变量名,类型) #判断什么类型ps:只支持输入两个参数,输入3个参数会报错>>> isinstance (a,int,float)Traceack (most recent call last):File "", line 1, in TypeError: isinstance expected...

weixin_42360977的博客 576

python入门(二):isinstance、内置函数、常用运算等

1. isinstance(变量名,类型) #判断什么类型 ps: 只支持输入两个参数,输入3个参数会报错 >>> isinstance (a,int,float) Traceack (most recent call last): File "<stdin>", line 1, in...

weixin_34006468的博客 677

Python常用的内置函数总结

常用函数一 函数名 参数 介绍 返回值 举例 abs Number返回 数字绝对值 正数字 abs(-10) all List 判断列表内容是否全是true Bool all([’’, ‘123’]) help object 打印对象的用法 无 help(list) enumerate iterable 迭代时记录索引 无 for index,item in enumerate(list) input Str 命令行输出消息 Str lnput(‘请输出信息’) In [

Insane_Loafer的博客 167
上一篇: Python常用内置函数(一)
下一篇: 【附源码】pytest多并发实践
晴时初遇雨
博客等级 码龄7年 1253粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值