如何评估字符串输入并检查它是否为小数

时间:2019-04-25 19:07:21

标签: python string input decimal evaluation

我使用python 3并试图弄清楚如何评估用户输入的字符串并检查某些字符。

我知道这个标题可能会让我听起来好像没有听说过.isdecimal()方法,但实际上我试图让用户输入一些数字作为十进制,包括期间,这似乎使评估变得困难。

例如

dec = input()

dec.isdecimal()

如果输入为0.5,则返回False 我可以将输入转换为十进制,但是如果我不想将用户的输入限制为整数,则不确定如何进行此评估。

4 个答案:

答案 0 :(得分:0)

也许尝试将字符串解析为float并在成功的情况下返回True

def stringIsFloat(s):
    try:
        float(s)
        return True
    except ValueError:
        return False

答案 1 :(得分:0)

也许使用Decimal构造函数


from decimal import Decimal

user_input = input()
try:
    dec = Decimal(user_input)
except:
    dec = None

如果输入错误的值后无法执行程序,则可以选择引发该错误。

答案 2 :(得分:0)

您问了一个用户Enter number:,并且用户回答了oh man i think my number is 5.3, good?

要从用户的情感回答中提取数字5.3,应使用regex

import re

text = 'oh man i think my number is 5.3, good?'
num = re.search(r'\d+.?\d+', text).group()
print(float(num))

输出:

5.3

答案 3 :(得分:-1)

IIUC,您只想检查字符串中是否包含小数。在这种情况下,您只需执行以下操作即可。

inp_string = input()

def check_decimal(inp_string):
    return ('.' in inp_string)

check_decimal(inp_string)