- 一 、eval函数的简介和语法:
eval()函数用来执行一个字符串表达式,并返回表达式的值。还可以把字符串转化为list、tuple、dict。eval函数的语法:
eval(expression[,globals[,locals]])
参数:
expression:表达式。
globals:变量作用域,如果被提供,必须是一个字典对象。
locals:变量作用域,如果被提供,可以说任何映射对象。
- 二、 eval()函数使用实例:
1 字符串转换成列表:
a="[1,2,3,4,5]"
b=eval(a)
# a是字符串类型数据,b是列表类型数据
2 字符串转换成字典 :
a="{"name":"xia","age":25}"
b=eval(a)
# a为字符串类型数据,b为字典类型数据
3 字符串转换为元组:
a="(1,2,3,4,5)"
eval(a)
# a的数据结构是字符串 b的数据结构是元组
4 eval()返回表达式的值:
x=4
eval("3*x")
# 返回值为12
x=10
g={'a':4}
eval("a+1",g)
# 返回值为 5
x=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
eval('a+b+c',g,t)
# 返回值为116
三、与其它函数结合使用
1结合input函数使用。输入表达式,直接返回表达式的值,该代码最佳的实践是一行代码实现一个计算器。第二行相当于把引号剥去,输出表达式的值。
print(eval(input(1+2))) #输出:3
print(eval(input("(a,b)"))) #输出:(a,b)
2与while语句、input函数结合使用。计算过程具有int函数、float函数功能,不断循环计算两个参数输入的加法值,相当于计算器输入两个值相加。
#eval()返回表达式的值,输入数字的话,有点等同于下下面int()的效果。
while True:
x = eval(input('请输入数字:')) #输入x值
y = eval(input('请输入数字:')) #输入y值
z = x + y #相加
print(z) #输出z的值
#是不是相同的效果。
while True:
x = int(input('请输入数字:')) #输入x值
y = int(input('请输入数字:')) #输入y值
z = x + y #相加
print(z) #输出z的值
3与input函数以及if条件语句、while语句一起结合使用。输入成绩数值判断成绩等级。
while True:
FeiShu = eval(input('输入数值:'))
if FeiShu >= 90:
print('优秀')
elif FeiShu >=80:
print('良好')
elif FeiShu >= 70:
print('一般')
elif FeiShu >= 60:
print('及格')
else:
print('不及格')
说明:本文注重知识学习的积累并整理,部分内容来自其他博客。