编写程序判断数据是否是浮点数形式字符串。如果是则输出True,否则输出False。python
时间: 2023-05-21 21:04:16 浏览: 160
可以使用正则表达式来判断字符串是否是浮点数形式:
```python
import re
def is_float(s):
pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
return bool(re.match(pattern, s))
# 测试
print(is_float('1.23')) # True
print(is_float('-1.23')) # True
print(is_float('1.23e5')) # True
print(is_float('123')) # True
print(is_float('1.2.3')) # False
print(is_float('-1.23e-5.6')) # False
```
这个函数接受一个字符串参数`s`,返回`s`是否是浮点数形式的布尔值。正则表达式`pattern`的含义是:
- `^`匹配字符串的开头
- `[-+]?`表示可选的符号位,即字符串可以以`+`或`-`开头,也可以没有符号位
- `[0-9]*`表示0个或多个数字
- `\.?`表示可选的小数点,即小数部分可以没有小数点,或者有一个小数点
- `[0-9]+`表示至少一个数字
- `([eE][-+]?[0-9]+)?`表示可选的指数部分,即字符串可以以`e`或`E`开头,紧接着一个可选的符号位(也可以没有符号位),然后是一个或多个数字
- `$`表示匹配字符串的结尾
这个正则表达式可以匹配诸如`1.23`、`-1.23`、`1.23e5`、`123`等格式的字符串,但不能匹配`1.2.3`、`-1.23e-5.6`等格式的字符串。因为这些字符串不符合浮点数格式的语法规则。
阅读全文