实现isNum()函数,参数作为一个字符串,如果这个字符串属于整数,浮点数或复数的表示,则返回True,否则返回False
时间: 2024-11-15 17:30:48 浏览: 37
实现`isNum()`函数可以使用Python的正则表达式库`re`来进行匹配,检查输入的字符串是否符合整数、浮点数或复数的格式。这里是一个简单的示例:
```python
import re
def is_num(s):
# 判断是否为整数或浮点数
pattern_int = r'^[-+]?[0-9]+$'
pattern_float = r'^[-+]?[0-9]*\.?[0-9]+(\,[0-9]+)?$'
# 如果只包含整数或小数
if re.match(pattern_int, s) or re.match(pattern_float, s):
return True
# 判断是否为科学计数法形式的浮点数
pattern_float_sci = r'^[-+]?[0-9]+e[-+]?[0-9]+$'
if re.match(pattern_float_sci, s):
return True
# 复数的判断,格式如 'a+bj' 或 'c-dj'
pattern_complex = r'^[-+]?[0-9]+\s*([+\-]?\d+[ij])$'
complex_match = re.match(pattern_complex, s)
# 如果是复数形式,需要额外处理分隔符的情况
if complex_match and len(complex_match.groups()) == 2 and all(isinstance(num, str) for num in complex_match.groups()):
return True
# 如果所有模式都不匹配,返回False
return False
# 测试示例
print(is_num("123")) # True
print(is_num("456.78")) # True
print(is_num("-98.0")) # True
print(is_num("1.23e-4")) # True
print(is_num("1 + 2i")) # True
print(is_num("abc")) # False
print(is_num("1.2.3")) # False
阅读全文