80. Python eval函数 |
您所在的位置:网站首页 › python将浮点数转化为整数型 › 80. Python eval函数 |
1. 知识回顾2. eval函数3. eval函数的语法4. 返回字符串表达式的计算结果5. eval实现数据类型之间的转换6. 知识总结1. 知识回顾 将字符串转换成能计算的数据,我们学过2个函数。 int函数:将整数类型的字符串转换为整数。 float函数:将小数类型的字符串转换为浮点数。 我们之前在学数据转换的时候,特别强调过: 小数类型的数据不能直接使用int函数进行转换。 【将整数型字符串转换为整数】 x = '15' print(int(x)) print(type(int(x)))【终端输出】 15变量x原本是字符串类型,int函数将其转换成整数类型。 int函数的作用是脱去字符串的引号。 【小数类型的字符串不能直接用int函数】 x = '15.5' print(int(x)) print(type(int(x)))【终端输出】 ValueError: invalid literal for int() with base 10: '15.5'这里的变量x也是字符串类型,但它是小数类型的字符串,就不能直接使用int函数。 运行代码程序报错:invalid literal for int() with base 10: '15.5'。 【将整数类型的数据转换成浮点数】 x = '15' print(float(x)) print(type(int(x)))【终端输出】 15.0变量x原本是字符串类型,float函数将其转换成浮点数类型。 float函数的作用是脱去字符串的引号。 原来字符的数据为整数15,使用float函数后整数15变成了浮点数15.0。 float函数改变了原有的字符串里的数据类型。 【将小数类型的数据转换成浮点数】 x = '15.5' print(float(x)) print(type(int(x)))【终端输出】 15.5变量x原本是字符串类型,float函数将其转换成浮点数类型。 float函数的作用是脱去字符串的引号。 【使用int和float函数的缺点】 需要先判断字符串里的数据是整数还是小数。 函数可能会改变原有的数据类型。我们今天来学一个函数,它不用考虑字符串里的数值是整数还是小数,也不会改变字符串里的数据类型。 2. eval函数【eval百科解释】 eval函数用于将括号内的字符串视为语句并运行。 【功能】 官方定义eval函数的功能是:执行一个字符串表达式,并返回表达式的值。 【我的概括】 eval函数的功能就是脱去字符串的引号。 如果eval函数的参数是运算表达式,那输出该表达式的计算结果。 如果eval函数的参数仅仅是一个数值的字符串,那脱去字符串的引号,直接输出该数值。整数就输出整数,浮点数就输出浮点数。【重点分析】 上面的语句我们可以提取到3个关键信息: 字符串 表达式 返回一个值大家学习的时候注意找到重点哦!!! 3. eval函数的语法eval(expression, globals=None, locals= None)expression [ɪkˈspreʃn]:表达。 globals:全局变量。 locals ['ləʊklz]:局部变量。 none[nʌn]:没有。 【eval( )函数由3部分组成】 1.函数名:eval 2.英文圆括号:( ) 3.参数 参数expression:字符串类型的表达式。 参数globals:可选参数,变量作用域,全局命名空间,如果指定该参数,必须是一个字典对象。 参数locals:可选参数,变量作用域,局部命名空间,如果指定该参数,可以是任何映射对象。 【返回值】 返回表达式的计算结果,或字符串里的数值。 【碎碎念】 学到这里大家对Python的函数应该有一个系统的理解。 Python函数通常都具有下面几个特征: 函数名。 函数名后都需要紧跟一对英文圆括号( )。 函数的参数通常都有必须参数和可选参数2种。 部分参数通常都有默认值。 函数通常都有返回,有时候返回的是值,有时候返回的是对象。大家看我的笔记会发现我不是单纯的再讲一个知识点。 我会贯穿Python的语法结构以及编写的逻辑思维。 大家刚开始学习学的是单纯知识点,后期再学习应该就把重点放在语法结构和逻辑思维上。 学一个知识点不是目的,我们要学的是一种能够自学的能力。 Python中的函数、模块成百上千,且不断更新,我写10年都不一定写得完。 但大家基础入门后,可以花一点点时间在语法结构和逻辑思维上,这样后期你会有质的提升。 当你看完源代码你就能懂这个函数、模块要实现的功能,这就是学习能力。 例如,今天你接触一个新的函数,你就应该想到他会有几个参数,哪些参数是必须的,哪些参数是可选的,函数返回的是什么。 4. 返回字符串表达式的计算结果【表达式的结果为整数】 print("1+2+3+4+5")【终端输出】 1+2+3+4+5print函数括号中的内容有引号,有引号则数据类型为字符串。 print会原样输出字符串,因此运行程序后输出的结果为"1+2+3+4+5"。 print(eval("1+2+3+4+5"))【终端输出】 15加了eval函数,则输出的就是一个值。 "1+2+3+4+5"就是eval函数的字符串表达式。即:expression="1+2+3+4+5"。 我们在print函数中学过,字符串是不能进行运算的,字符串只能进行拼接。 但有eval函数则不一样。 eval函数会识别括号中的内容为一个字符串表达式,会返回该表达式的计算结果。 因此输出的结果为15。 print(type(eval("1+2+3+4+5")))【终端输出】 class 数据表示数据类型。 int表示数据类型为整数。 如果字符串表达式的计算结果为整数,则eval函数返回的数据类型为整数。 【表达式的结果为浮点数】 print(eval("1.1+2.1+3.3+4.1+5.1")) print(type(eval("1.1+2.1+3.3+4.1+5.1")))【终端输出】 15.7如果字符串表达式的计算结果为浮点数,则eval函数返回的数据类型为浮点数。 【表达式为除法】 print(eval("1000/2"))【终端输出】 500.0"1000/2"是eval函数的字符串表达式。即:expression="1000/2"。 【表达式为乘法】 print(eval("50*2"))【终端输出】 100"50*2"是eval函数的字符串表达式。即:expression="50*2"。 【实操练习】 用input函数从终端输入一个表达:10*10 输出这个两个数的乘积。 x = input ("请输入一个表达式:") print(eval(x))【终端输出】 100注意expression参数的值要是字符串数据类型。 input函数接收的数据类型刚好就是字符串类型。 5. eval实现数据类型之间的转换a = "520" print("a的数据类型:", type(a)) print(eval(a)) print("eval后a的数据类型:", type(eval(a)))【终端输出】 a的数据类型: 520 eval后a的数据类型:a的数据类型为字符串。 字符串里的数据类型为整数。 eval函数可以将a的引号去掉,将其转换为整数。 a = "3.14" print("a的数据类型:", type(a)) print(eval(a)) print("eval后a的数据类型:", type(eval(a)))【终端输出】 a的数据类型: 3.14 eval后a的数据类型:a的数据类型为字符串。 字符串里的数据类型为浮点数。 eval函数将a的引号去掉,将其转换为浮点数。 a = "[2, 4, 6, 8]" print("a的数据类型:", type(a)) print(eval(a)) print("eval后a的数据类型:", type(eval(a)))【终端输出】 a的数据类型: [2, 4, 6, 8] eval后a的数据类型:a的数据类型为字符串。 字符串里的数据类型为列表。 eval函数将a的引号去掉,将其转换为列表。 a = "(2, 4, 6, 8)" print("a的数据类型:", type(a)) print(eval(a)) print("eval后a的数据类型:", type(eval(a)))【终端输出】 a的数据类型: (2, 4, 6, 8) eval后a的数据类型:a的数据类型为字符串。 字符串里的数据类型为元组。 eval函数将a的引号去掉,将其转换为元组。 通过上面的输出结果,我们可以发现eval的作用其实就是脱去字符串的引号,保留字符串里的内容的数据。 6. 知识总结【功能】eval函数用于执行一个字符串表达式,并返回表达式的值。 【函数语法】 eval(expression, globals=None, locals= None)参数expression:字符串类型表达式。 参数globals:可选参数,变量作用域,全局命名空间,如果指定该参数,必须是一个字典对象。 参数locals:可选参数,变量作用于,局部命名空间,如果指定该参数,可以是任何映射对象。 【代码总结】 print("返回值:", eval("1.1+2.1+3.3+4.1+5.1")) print("返回的数据类型:",type(eval("1.1+2.1+3.3+4.1+5.1"))) a = "520" print("返回值:", eval(a)) print("返回的数据类型:",type(eval(a))) a = "3.14" print("返回值:",eval(a)) print("返回的数据类型:",type(eval(a))) a = "[2, 4, 6, 8]" print("返回值:",eval(a)) print("返回的数据类型:",type(eval(a))) a = "(2, 4, 6, 8)" print("返回值:",eval(a)) print("返回的数据类型:",type(eval(a)))【终端输出】 返回值: 15.7 返回的数据类型: 返回值: 520 返回的数据类型: 返回值: 3.14 返回的数据类型: 返回值: [2, 4, 6, 8] 返回的数据类型: 返回值: (2, 4, 6, 8) 返回的数据类型:【备注】 剩下的2个参数以后用到的时候再介绍。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |