1
Python编程从入门到实践
1.6.5.2 2.5.2 eval()函数
2.5.2 eval()函数

eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容,使用方式如下:

变量=eval(字符串)

其中,变量用来保存对字符串内容进行Python运算的结果,例如:

上述第一个例子中,eval()函数去掉了字符串“1.2”最外侧引号,结果赋值给a,a表示一个浮点数1.2;第二个例子中,eval()函数去掉了字符串“1.2+3.4”最外侧引号,将其内容当作Python语句进行运算,运算结果为4.6,保存到变量a中。

再观察如下实例:

当eval()函数处理字符串“pybook”时,字符串去掉两个引号后,Python语句将其解释为一个变量,由于之前没有定义过变量pybook,因此解释器报错。如果定义变量pybook并赋值为123,则再运行这个语句将没有问题,a的输出结果是123。当eval()函数处理字符串‘pybook’时,eval()函数去掉最外侧双引号后,内部还有一个引号,‘pybook’被解释为字符串。

eval()函数经常和input()函数一起使用,用来获取用户输入的数字,使用方式如下:

变量=eval(input(提示性字符串文字))

此时用户输入的数字包括小数和负数,input()解析为字符串,经由eval()去掉字符串引号,将被直接解析为数字保存到变量中,例如:

上述程序等价于: