我读过并理解浮点舍入问题,例如:
>>> sum([0.1] * 10) == 1.0
False
>>> 1.1 + 2.2 == 3.3
False
>>> sin(radians(45)) == sqrt(2) / 2
False
Run Code Online (Sandbox Code Playgroud)
我还知道如何使用math.isclose()和cmath.isclose()解决这些问题。
问题是如何将这些解决方法应用到 Python 的 match/case 语句中。我希望这个工作:
match 1.1 + 2.2:
case 3.3:
print('hit!') # currently, this doesn't match
Run Code Online (Sandbox Code Playgroud) python floating-point complex-numbers approximate structural-pattern-matching
我有一个字符串,我正在尝试针对一些正则表达式模式进行验证,并且我希望由于模式匹配在 3.10 中可用,我可能能够使用它而不是创建 if-else 块。
考虑一个字符串“validateString”,其可能值为 1021102、1.25.32、string021。
我尝试的代码如下所示。
match validateString:
case regex1:
print('Matched regex1')
case regex2:
print('Matched regex2')
case regex3:
print('Matched regex3')
Run Code Online (Sandbox Code Playgroud)
对于正则表达式 1、2 和 3,我尝试过字符串正则表达式模式以及 re.compile 对象,但它似乎不起作用。
我一直在尝试在互联网上找到这方面的示例,但似乎找不到任何涵盖正则表达式模式匹配与新的 python 模式匹配的示例。
关于如何让它发挥作用有什么想法吗?
谢谢!