美文网首页
python找茬系列04--int()与eval()的区别

python找茬系列04--int()与eval()的区别

作者: young十三 | 来源:发表于2019-07-31 11:47 被阅读0次

一、描述

1、int()函数

\color{blue}{int() 函数}用于将一个字符串或数字转换为整型。

2、eval()函数

\color{blue}{eval() 函数}用来执行一个字符串表达式,并返回表达式的值。

二、语法

1、int()函数

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

class int(x, base=10)

参数

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

返回值

  • 返回\color{red}{整型数据}

2、eval()函数

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

eval(expression[, globals[, locals]])

参数

  • expression -- 表达式。
  • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

返回值
返回表达式计算结果。

三、实例对比

1、int()函数

>>>int()               # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)  
10  
>>> int('10',8)  
8

2、eval()函数

>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

四、总结

1、eval()第一个参数\color{red}{必须为字符串},并把'2+2'作为表达式求值,而int()调用失败;

2、int支持不同进制转换为10进制,eval()不支持;

3、针对小数字符串(比如'3.2'),int()调用失败,eval输出3.2,类型为float。

相关文章

网友评论

      本文标题:python找茬系列04--int()与eval()的区别

      本文链接:https://www.haomeiwen.com/subject/uhszrctx.html