string - python 如何计算字符串输入并检查它是否为十进制

  显示原文与译文双语对照的内容
96 2

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

我知道这个标题可能会让我觉得我还没有听说过。 isdecimal()方法,但实际上我试图允许用户输入一些数字作为小数,包括句点,这似乎使评价变得困难。

例如,

dec = input( )

dec.isdecimal( )

如果我有输入0.5,则返回False我可能会将输入转换为小数,但如果我不想将用户的输入限制为整数,我不确定我怎么能接近这个评估。

时间:原作者:0个回答

81 2

可能尝试将字符串解析为 float,如果成功则返回 True

def stringIsFloat(s):
 try:
 float(s)
 return True
 except ValueError:
 return False
原作者:
77 5

可能使用 Decimal 构造函数

from decimal import Decimal
user_input = input()
try:
 dec = Decimal(user_input)
except:
 dec = None

那么,如果在输入错误值之后程序执行不可能,你可能会选择引发这个错误。

原作者:
56 5

你也可以使用 正规表达式 而不是 try catch来查找输入的文本是否为小数 。

import re
s = input('Enter demical value')
if re.match(r'^d*.d+$', s):
 print('Decimal Value')
else:
 print('Not a decimal')
原作者:
95 4

IIUC你只想检查你的字符串中是否有小数 。在这种情况下,你可以简单地执行以下操作。

inp_string = input()
def check_decimal(inp_string):
 return ('.' in inp_string)
check_decimal(inp_string)
原作者:
106 5

你要求用户 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
原作者:
...