You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中能否使用eval()函数获取多个不同数据?

Python中用eval()获取多个数据的方法

能不能用eval()获取多个数据?

没问题。eval()的核心是解析字符串形式的Python表达式,只要你传入的字符串能生成包含多个值的结构(比如元组、列表),就能一次性拿到多个数据。

举个简单例子:

# 输入格式比如:1, 2, 3
a, b, c = eval(input("输入三个数,用逗号分隔:"))
print(a, b, c)

这里输入的字符串会被eval解析成元组,直接解包给三个变量。

能不能用eval()实现类似a, b, c = map(float, input().split())的功能?

当然可以,甚至写法更灵活。分两种场景:

场景1:逗号分隔输入

直接用eval解析,自动转成浮点数:

a, b, c = eval(input("输入三个浮点数,用逗号分隔:"))

比如输入3.14, 2.718, 1.414,eval会直接解析成包含三个浮点数的元组,解包给变量。

场景2:空格分隔输入

如果习惯用空格分隔,先把空格替换成逗号,再用eval包裹成元组:

input_str = input("输入三个浮点数,用空格分隔:").replace(" ", ",")
a, b, c = eval(f"({input_str})")

这样输入3.14 2.718 1.414也能正确解析。

重要提醒

  • eval()会执行任何合法的Python表达式,绝对不要用它处理不可信的输入(比如来自陌生用户的输入),否则可能被注入恶意代码。
  • 如果输入格式错误(比如输入了非数值字符),会抛出语法或名称错误,实际使用时建议加上try-except做异常处理。

内容的提问来源于stack exchange,提问作者Nguyễn Phúc Khang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:41:03