实现isNum( )函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False。(要求:程序代码写注释)
时间: 2024-05-30 09:13:01 浏览: 84
Java判断字符串是否是整数或者浮点数的方法
5星 · 资源好评率100%
def isNum(s):
"""
判断字符串s是否为整数、浮点数或复数的表示
:param s: 待判断的字符串
:return: 若s为整数、浮点数或复数的表示,则返回True,否则返回False
"""
# 判断字符串是否为空或者只有空格
if s.strip() == '':
return False
# 判断字符串是否只有一个字符,如果只有一个字符且不是数字,则返回False
if len(s) == 1 and not s.isdigit():
return False
# 判断字符串是否以'+'或'-'开头
if s[0] == '+' or s[0] == '-':
# 如果字符串只有一个'+''-'符号,则返回False
if len(s) == 1:
return False
# 判断字符串是否为纯数字
if s[1:].isdigit():
return True
# 判断字符串是否为浮点数
elif s[1] == '.' and s[2:].isdigit():
return True
# 判断字符串是否为复数
elif 'j' in s[1:]:
# 判断字符串是否为实部为0的复数
if s[1] == '0' and 'j' in s[2:]:
return False
# 判断字符串是否为虚部为0的复数
elif 'j' in s[1:-1] and s[-1] != 'j':
return False
else:
return True
else:
return False
# 判断字符串是否为纯数字
elif s.isdigit():
return True
# 判断字符串是否为浮点数
elif '.' in s and s.count('.') == 1 and s.replace('.', '').isdigit():
return True
# 判断字符串是否为复数
elif 'j' in s:
# 判断字符串是否为实部为0的复数
if s[0] == '0' and 'j' in s[1:]:
return False
# 判断字符串是否为虚部为0的复数
elif 'j' in s[:-1] and s[-1] != 'j':
return False
else:
return True
else:
return False
阅读全文