首页 > 文章列表 > python之int与eval函数的区别

python之int与eval函数的区别

Python int函数 eval函数
450 2022-08-07

趁着前几篇讲过int()函数大家还有印象,小编简单带大家回顾后,就讲讲int与eval函数的区别。

1.eval()函数

eval(<字符串>)能够以Python表达式的方式解析并执行字符串,并将返回结果输出。eval()函数将去掉字符串的两个引号,将其解释为一个变量。

作用:

a. 处理数字

单引号,双引号,eval()函数都将其解释为int类型;三引号则解释为str类型。

b.处理字符串类型的字符串

对于eval()括号中的的字符串(非数字),如果字符串带的是单引号或者是双引号都会引起NameError,这是因为eval()函数在处理字符串时会去掉其两个引号。正确应该使用一个单引号包含一个双引号组成的三引号来包含字符串。

2.int()函数

int()函数可以将一个数转化为整数。

>>> int('12',16) 18

这里有两个地方要注意:

1)12要以字符串的形式进行输入,如果是带参数base的话

2)这里并不是将12转换为16进制的数,而是说12就是一个16进制的数,int()函数将其用十进制数表示,如下

>>> int('0xa',16) 10 >>> int('10',8) 8

Python中的eval方法接受一个字符串参数,并且把字符串里面的内容当成Python代码来执行;

eval的缺点是执行速度慢,并且会有安全风险。

对比后不难发现,使用eval()函数有诸多问题要注意,不然容易出现问题。

(推荐操作系统:windows7系统、Python 3.9.1,DELL G3电脑。)