我需要为用户定义的输入中所有匹配的浮点数打印(True),如果输入不是浮点数,则打印(False)。
到目前为止,我提出了以下建议:
import re
user_input = input() # the input will be (+4.9, 4.0, 2.89, 4, somerandomstuff)
pattern = re.compile(r'[+-]?[0-9]+\.[0-9]+') #pattern to match floating point numbers
matches = pattern.finditer(user_input)
for match in matches:
print(bool(match))
预期结果:
input =(+4.9,4.0,2.89,4,somerandomstuff,stackoverflow)
真实 真正 真正 假 假 错误
感谢您的帮助!
答案 0 :(得分:0)
假定用户输入将始终具有您提供的格式,可以使用float
并尝试将每个值转换为浮点数。另外,要过滤出整数,您可以检查每个字符串中是否存在.
。
import re
user_input = input()
for match in user_input.strip("()").split(","):
try:
num = float(match)
print("." in match)
except ValueError:
print(False)
打印:
True
True
True
False
False
False