python判断字符串开头是否为数字
时间: 2023-10-18 07:22:43 浏览: 65
可以使用字符串的`isdigit()`方法来判断字符串开头是否为数字。
示例代码:
```python
s = "123abc"
if s[0].isdigit():
print("开头为数字")
else:
print("开头不为数字")
```
输出结果为:
```
开头为数字
```
注意:`isdigit()`方法只能判断整个字符串是否全部由数字组成,不能判断字符串中间是否含有数字。如果要判断字符串中间是否含有数字,可以使用正则表达式。
相关问题
python 正则表达式 判断字符串是否为数字
可以使用正则表达式的方式判断字符串是否为数字,具体实现代码如下:
```python
import re
def is_number(s):
pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
return bool(re.match(pattern, s))
print(is_number('123')) # True
print(is_number('-123.45')) # True
print(is_number('1.23e-4')) # True
print(is_number('1.2.3')) # False
print(is_number('abc')) # False
```
其中,正则表达式 `r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'` 的含义是:
- `^` 匹配字符串的开头。
- `[-+]?` 表示正负号可选。
- `[0-9]*` 表示匹配0个或多个数字。
- `\.?` 表示小数点可选。
- `[0-9]+` 表示匹配1个或多个数字。
- `([eE][-+]?[0-9]+)?` 表示科学计数法可选。
- `$` 匹配字符串的结尾。
最后使用 `bool(re.match(pattern, s))` 判断是否匹配成功,返回 True 或 False。
python判断字符串是否为c++合法十进制浮点数字面值
可以使用正则表达式来判断字符串是否为C++合法的十进制浮点数字面值。以下是一个例子:
```python
import re
def is_valid_float(str):
# 匹配C++合法的十进制浮点数字面值的正则表达式
pattern = r'^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$'
return bool(re.match(pattern, str))
# 测试
print(is_valid_float("3.14")) # True
print(is_valid_float("-3.14")) # True
print(is_valid_float("1.23e-4")) # True
print(is_valid_float("abc")) # False
print(is_valid_float("1.23e")) # False
```
正则表达式`^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$`表示:
- `^`:匹配字符串的开头。
- `[-+]?`:可选的正负号。
- `[0-9]*`:可选的整数部分。
- `\.?`:可选的小数点。
- `[0-9]+`:必须的小数部分。
- `([eE][-+]?[0-9]+)?`:可选的指数部分,其中`[eE]`表示指数符号,`[-+]?`表示可选的正负号,`[0-9]+`表示指数的值。
- `$`:匹配字符串的结尾。