python中什么时候用eval什么时候是input什么时候又是int?

您所在的位置:网站首页 int函数和eval函数的区别 python中什么时候用eval什么时候是input什么时候又是int?

python中什么时候用eval什么时候是input什么时候又是int?

2023-08-08 13:44| 来源: 网络整理| 查看: 265

1. eval定义

eval(expression, globals=None, locals=None)

expression:该参数是一个字符串,python会使用globals字典和locals字典作为全局和局部的命名空间,将expression当做一个python表达式进行解析和计算。

globals:该参数管控的是一个全局的命名空间,也就是我们在计算表达式的时候可以使用全局的命名空间中的函数,如果这个参数被提供了,并且没有提供自定义的__builtins__,那么会将当前环境中的__builtins__拷贝到自己提供的globals里,然后才会进行计算。关于__builtins__,它是python的内建模块,也就是python自带的模块,不需要我们import就可以使用的,例如我们平时使用的int、str、abs等都在这个模块中。关于它的说明可以参照这篇文章:点击打开链接。如果globals没有被提供,则使用python的全局命名空间。

locals:该参数管控的是一个局部的命名空间,和globals类似,不过当它和globals中有重复的部分时,locals里的定义会覆盖掉globals中的,也就是当globals和locals中有冲突的部分时,locals说了算,它有决定权,以它的为准。如果locals没有被 提供的话,则默认为globals。

实际中添加不同参数的效果,见如下的实例演示:

2. eval用法

eval() 能够以Python表达式的方式解析并执行字符串,并将返回结果输出。eval()函数将去掉字符串的两个引号,将其解释为一个变量。单引号,双引号,eval()函数都将其解释为int类型;三引号则解释为str类型。

3. input用法

在获得用户输入之前,input()函数可以包含一些提示性的文字,标准形式: = input( " 提示性的文字 " )

无论用户输入的是字符还是数字,input()函数统一按照字符串类型输出。因此input()的输出类型均是str。

在实际操作中,为了获得想要的类型,会采取一定的强制性转换措施,如下:

4、int用法

int(x, [base])功能:函数的作用是将一个数字或base类型的字符串转换成整数。函数原型:int(x=0) int(x, base=10),base缺省值为10,也就是说不指定base的值时,函数将x按十进制处理。注意:1. x 可以是数字或字符串,但是base被赋值后 x 只能是字符串2. x 作为字符串时必须是 base 类型,也就是说 x 变成数字时必须能用 base 进制表示代码实例:1. x 是数字的情况:1int(3.14) # 32int(2e2) # 2003int(100, 2) # 出错,base 被赋值后函数只接收字符串int(3.14) # 3 int(2e2) # 200 int(100, 2) # 出错,base 被赋值后函数只接收字符串2. x 是字符串的情况:1int('23', 16) # 352int('Pythontab', 8) # 出错,Pythontab不是个8进制数int('23', 16) # 35 int('Pythontab', 8) # 出错,Pythontab不是个8进制数3. base 可取值范围是 2~36,囊括了所有的英文字母(不区分大小写),十六进制中F表示15,那么G将在二十进制中表示16,依此类推....Z在三十六进制中表示351int('FZ', 16) # 出错,FZ不能用十六进制表示2int('FZ', 36) # 575int('FZ', 16) # 出错,FZ不能用十六进制表示 int('FZ', 36) # 5754. 字符串 0x 可以出现在十六进制中,视作十六进制的符号,同理 0b 可以出现在二进制中,除此之外视作数字 0 和字母 x1int('0x10', 16) # 16,0x是十六进制的符号2int('0x10', 17) # 出错,'0x10'中的 x 被视作英文字母 x3int('0x10', 36) # 42804,36进制包含字母 x



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3