Python之eval函数的用法

本文深入讲解了Python中eval函数的功能和使用方法,包括如何将字符串转换为列表、字典和整数,以及在实际场景中如何利用eval解决类型转换问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能驾驶小管家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值