找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 100|回复: 3

[求助] 初学小白求助在佬关于eval的问题

1

主题

1

帖子

1

积分

贫民

积分
1
sh1230 发表于 2020-10-15 17:57:57 | 显示全部楼层 |阅读模式
我是一个初学python的小白。现遇到一个问题,来求助各位大佬。我下面这几行代码。在运行时,当我输入的是整数或者小数时不会报错,当输入的是字符时却会报错。望大佬帮我看一下错在什么地方。我这是是想让程序判断输入的是不是整数。。

A=input("请输入")
A=eval(A)
print(type(A))
回复

使用道具 举报

0

主题

724

帖子

724

积分

圣骑士

积分
724
sheeboard 发表于 2020-10-16 10:58:50 | 显示全部楼层
isinstance(A, int)
回复 支持 反对

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
白嫖小废物 发表于 2020-10-16 20:58:16 | 显示全部楼层
输入字符串时,eval认为是变量名,但有找不到变量的值
上面老哥的方法就可以,
如果执意要这样的话,可以加异常判断,或是这样的 .方法有很多
A="input('请输入')"
A=eval(A)
if A.isdecimal():
     print(type(int(A)))
else:print(type((A)))
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
爬爬 发表于 7 天前 | 显示全部楼层
只判断整数的话不用eval,直接A.isdigit()就可以,会检查字符串A的每一位是否是数字。
print(A.isdigit())

如果要考虑小数的话,先可以替换一个小数点
A = A.replace('.', '', 1)
print(A.isdigit())

如果再考虑正负号可以用A.startswith('-')的判断,或者写正则匹配。
参考:PYTHON 判断是否是数字
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表