python中eval与int的区别浅析

python中eval和int的区别是什么?下面给大家介绍一下:

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的缺点是执行速度慢,并且会有安全风险

总结

以上就是python中eval和int的区别的详细内容,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • Python中的exec、eval使用实例

    通过exec可以执行动态Python代码,类似Javascript的eval功能:而Python中的eval函数可以计算Python表达式,并返回结果(exec不返回结果,print(eval("-"))打印None): 复制代码 代码如下: >>> exec("print(\"hello, world\")") hello, world >>> a = 1 >>> exec("a

  • python类型强制转换long to int的代码

    python2.4版本以后,如果int的值超出范围不会溢出,而是内部转换为long,在网上没有找到从long型强制转换成int的代码,这里所说的int取值范围是和java里一致,即用四个字节表示.自己写了一个函数,勉强可以用,供大家参考. 复制代码 代码如下: import sysdef LongToInt(value):    assert isinstance(value, (int, long))    return int(value & sys.maxint) 经过测试,在32位和64

  • python 中的int()函数怎么用

    int(x, [base]) 功能: 函数的作用是将一个数字或base类型的字符串转换成整数. 函数原型: int(x=0) int(x, base=10),base缺省值为10,也就是说不指定base的值时,函数将x按十进制处理. 适用Python版本: Python2.x Python3.x 注意: 1. x 可以是数字或字符串,但是base被赋值后 x 只能是字符串 2. x 作为字符串时必须是 base 类型,也就是说 x 变成数字时必须能用 base 进制表示 Python英文文档解释

  • Python 执行字符串表达式函数(eval exec execfile)

    仔细研读后学习了三个函数: eval:计算字符串中的表达式 exec:执行字符串中的语句 execfile:用来执行一个文件 需注意的是,exec是一个语句,而eval()和execfile()则是内建built-in函数. Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits

  • python 为什么说eval要慎用

    eval前言 In [1]: eval("2+3") Out[1]: 5 In [2]: eval('[x for x in range(9)]') Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8] 当内存中的内置模块含有os的话,eval同样可以做到命令执行: In [3]: import os In [4]: eval("os.system('whoami')") hy-201707271917\administrator Out[4]:

  • Python之eval()函数危险性浅析

    一般来说Python的eval()函数可以把字符串"123"变成数字类型的123,但是PP3E上说它很危险,还可以执行其他命令! 对此进行一些试验.果然,如果python写的cgi程序中如果使用eval()而非int()来转换诸如年龄这样的输入框中的内容时是非常危险的.不仅可以看见列出系统的全部文件,还可以执行删除文件,察看文件源代码等危险操作! 试着写了个程序,想把本地的脚本文件同过这样的形式一行一行的写到服务器的某个文件里,可最后失败在无法输入换行符"/n",在

  • python学习笔记之调用eval函数出现invalid syntax错误问题

    pytho的使用和分发完全是免费的,它是一种面向对象的语言,它的.它的类模块支持多态,操作符重载和多重继承等高级概念,并且以python特有的简洁的语法和类型,OOP十分易于使用.python内置了众多预编译并可移植的功能模块,这些功能模块叫做标准库(standard library).python可以调用C和C++的库,可以被C和C++的程序调用,可以与java组件集成,可以和COM和.Net等框架进行通信,并且可以通过SOAP.XML-RPC和CORBA等接口与网络进行交互,所以,pytho

  • 浅谈python 四种数值类型(int,long,float,complex)

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据类型存储数值.他们是不可改变的数据类型,这意味着改变数字数据类型的结果,在一个新分配的对象的值. Number对象被创建,当你给他们指派一个值.例如: var1 = 1 var2 = 10 您也可以删除数字对象的参考,使用del语句. del语句的语法是: del var1[,var2[,var3[

  • python中int与str互转方法

    最近学习python中的数据类型时,难免联想到java中的基本型数据类型与引用型数据类型.于是对python中的int与str做了简单赋值输出,出现了意料之外的事情. >>> a = 4 >>> b = int('4') >>> id (a) 1440608144 >>> id (b) 1440608144 >>> 使用int(object)后,a与b的地址是一样的. >>> c = 'e e' &

  • 详解python eval函数的妙用

    python eval函数功能:将字符串str当成有效的表达式来求值并返回计算结果. 函数定义: eval(expression, globals=None, locals=None) 将字符串str当成有效的表达式来求值并返回计算结果.globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型:如果提供了locals参数,那么它可以是任意的map对象. python的全局名字空间存储在一个叫globals()的dict对象中:局部名字空间存储在

随机推荐