用python实现isNum()函数,从键盘输入一个数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False 使用两种方法
时间: 2024-09-23 09:16:06 浏览: 42
Python 中可以使用正则表达式以及内置的 `try-except` 结构来实现 `isNum()` 函数,分别检测输入的字符串是否能转换为整数、浮点数或复数。以下是两种方法的示例:
方法一:利用正则表达式
```python
import re
def is_num(s):
pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$' # 检查整数和浮点数
complex_pattern = r'^[-+]?\d+(\.\d*)?([jJ])$' # 检查复数(仅考虑形如 '1.2j' 的形式)
if re.match(pattern, s) or (re.match(complex_pattern, s) and len(s.split('j')) == 2):
return True
else:
return False
# 测试
input_str = input("请输入一个数:")
print(is_num(input_str))
```
方法二:使用 try-except 结构
```python
def is_num(s):
try:
float(s) # 尝试将字符串转换为浮点数
if '.' in s: # 如果有小数点,可能需要检查复数情况
parts = s.split('+', 1)
if len(parts) > 1 and parts[1].endswith('j'):
return True
else:
float(parts[0]) + 0j # 如果不是 '1.2j' 形式的复数,这会抛出异常
except ValueError:
pass
try:
complex(s) # 尝试转换为复数
except ValueError:
pass
return False
# 测试
input_str = input("请输入一个数:")
print(is_num(input_str))
```
阅读全文