3、 编写函数判断给定字符串是否为有效数字。 (有效数字列举:["2", "089", "-0.1", "+3.14", "2e10", "3E-7"]) 直接用python代码解决
时间: 2023-10-16 14:08:07 浏览: 171
STM32CubeMX安装包(版本:6.9.0) 附带 Java安装包(版本:371) - -2023年7月14日
可以使用Python的内置函数isnumeric()和isdecimal()来判断给定字符串是否为有效数字。isnumeric()函数用于判断字符串是否只包含数字字符,包括全角字符和汉字数字。isdecimal()函数用于判断字符串是否只包含十进制字符。
下面是一个判断给定字符串是否为有效数字的函数:
```python
def is_valid_number(s):
if s.isnumeric() or (s[0] == '-' and s[1:].isnumeric()) or (s[0] == '-' and s[1:].replace('.', '', 1).isnumeric()) or (s[0] == ' ' and s[1:].isnumeric()) or (s.count('.') == 1 and s.replace('.', '', 1).isnumeric()) or (s.count('e') == 1 and s.split('e')[0].replace('.', '', 1).isnumeric() and s.split('e')[1].isnumeric()) or (s.count('E') == 1 and s.split('E')[0].replace('.', '', 1).isnumeric() and s.split('E')[1].isnumeric()):
return True
else:
return False
```
这个函数首先使用isnumeric()函数判断字符串是否只包含数字字符。然后使用一系列条件判断字符串是否为有效数字,包括带负号的数字、带小数点的数字、带空格的数字、指数表示的数字等等。
测试代码如下:
```python
numbers = ["2", "089", "-0.1", " 3.14", "2e10", "3E-7", "abc", "1.2.3", "-"]
for number in numbers:
if is_valid_number(number):
print(f"{number} is a valid number.")
else:
print(f"{number} is not a valid number.")
```
输出结果:
```
2 is a valid number.
089 is a valid number.
-0.1 is a valid number.
3.14 is a valid number.
2e10 is a valid number.
3E-7 is a valid number.
abc is not a valid number.
1.2.3 is not a valid number.
- is not a valid number.
```
阅读全文