爱吃鱼的馒头 发表于 2020-10-20 21:42:54

好像有点问题,小数不也是数字吗?大佬有更好解法吗

输入10个数字,超过10个数字就跳出循环
count=0
while True:
num=input("请输入数字”)
if num. isdigit() :
count=count+1
if num. isdigit()==False:
print("非法输入")
if count==10:
break

kogawananari 发表于 2020-10-20 22:02:29

num=eval(input("请输入数字”))

笨鸟学飞 发表于 2020-10-20 22:49:37

本帖最后由 笨鸟学飞 于 2020-10-20 22:52 编辑

=======不用模块可以这么干=========
num=input("请输入数字”)
if '.' in num:                              #如果输入内容有点
    if num!='.' and num[-1]!='.' :#小数一头一尾不能是‘.’
      a = num.replace('.','0',1)#把点替换成0后应该全为数字
      if a.isdigit():
            print('输入为小数')
      else:
            print('输入错误')
   else:
         print('输入错误')
elif not num.isditie():      #输入内容无点,但不全为数字,则错误
      print('输入错误')
else:                            #输入内容无点,全数字,就是整数
      print('输入为整数')
==========PS:负数也可以参考一下思路,如果你不用模块的话========

疾风怪盗 发表于 2020-10-22 15:33:10

好像没有想isdigit()这样现成的函数来判断是否是小数,isdigit()是判断字符串是否是纯数字,小数点也参加判断,因为不是纯数字,所以是False
可以尝试用eval转换,再依据数值类型来判断

# 输入10个数字,超过10个数字就跳出循环
count = 0
while True:
    num = input("请输入数字")
    print(type(eval(num)))
    if type(eval(num)) in :
      count = count + 1
    else:
      print("非法输入")
    if count == 10:
      break
页: [1]
查看完整版本: 好像有点问题,小数不也是数字吗?大佬有更好解法吗