python中eval报错_python脚本中使用eval(),运行报错的解决方法

python脚本中使用eval(),运行报错的解决方法

原代码:

20200722022248-5f17a2f8586ef.png

此代码执行后报错:

Traceback (most recent call last):

File “C:\Python27\test3-3.py”, line 2, in

x=eval(input(“请输入一个数据:”))

TypeError: eval() arg 1 must be a string or code object

经过网上查找资料,发现原因是由于python2.7里input接受到的默认是int类型,python3中是str类型,而我的python版本是2.7。

发现问题后,将input改成raw_input,就能成功运行啦:

20200722022249-5f17a2f979765.png

参考解答:http://wenda.chinahadoop.cn/question/7484

input()函数不是应该直接返回的是数字吗,为什么还要在eval转换下。

老师,您好,我在看了这个视频的时候,跟着您的代码敲的,你的代码我试过之后,就报eval()转换错误(TypeError: eval() arg 1 must be a string or code object),下面是我在百度搜索到的,input()函数是不是

只是接受的是控制台的输入,前面的“请输入人民币金额”是不是不是给前面的赋值。而我的python是2.7的,所有我的默认是int型的,你的是3 的是str型的?

答:

python input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。

raw_input() 将所有输入作为字符串看待,返回字符串类型。而 input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。

注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。

注意:python3 里 input() 默认接收到的是 str 类型。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值