Python之eval函数的用法

Python之eval函数的用法

  • 功能:将字符串str当成有效的表达式来求值并返回计算结果。

  • 语法: eval(source[, globals[, locals]]) -> value

  • 参数:

    1. source:一个Python表达式或函数compile()返回的代码对象
    2. globals:可选。必须是dictionary
    3. locals:可选。任意map对象
      示例 :
>>> a = '[1,2,3]'
>>> type(a)
<class 'str'>
>>> type(eval(a)) #将字符串转换为列表
<class 'list'>
>>> b = '1000'
>>> type(b)
<class 'str'>
>>> type(eval(b)) #将字符串转换为整形
<class 'int'>
>>> c = "{1: 'a', 2: 'b'}"
>>> type(c)
<class 'str'>
>>> type(eval(c)) #将字符串转换为字典
<class 'dict'>

今天学习遇到的函数,eval()就是将字符串转换为它所代表的值,比如说下面的应用场景,输入人民币值转换为美元,中间有个汇率计算,input()返回的值为字符串,所以该值不能进行后面的汇率计算。

rmb_value = input('请输入人民币金额:')
usd_vs_rmb = 6.77
usd_value = rmb_value / usd_vs_rmb
print('美元金额是:',usd_value)

运行结果报错:

Traceback (most recent call last):
  File "h.py", line 4, in <module>
    usd_value = rmb_value / usd_vs_rmb
TypeError: unsupported operand type(s) for /: 'str' and 'float'

加入eval()转换函数:

rmb_value = input('请输入人民币金额:') #返回字符型
rmb_value = eval(rmb_value) #转换为数字
usd_vs_rmb = 6.77
usd_value = rmb_value / usd_vs_rmb
print('美元金额是:',usd_value)

运行结果:

请输入人民币金额:5
美元金额是: 0.7385524372230429

猜你喜欢

转载自blog.csdn.net/weixin_39549161/article/details/86363152