python 判断字符串是否是二进制
时间: 2023-11-25 20:04:29 浏览: 73
可以使用Python内置的函数isinstance()来判断一个字符串是否是二进制字符串。示例代码如下:
```python
def is_binary_string(s):
if isinstance(s, bytes):
return all(c in b'01' for c in s)
return False
s = '101010'
print(is_binary_string(s)) # False
s = b'101010'
print(is_binary_string(s)) # True
```
这个函数会首先判断字符串是否是bytes类型,如果是则检查bytes中的每个字符是否都是“0”或“1”,如果都是则返回True,否则返回False。如果不是bytes类型则直接返回False。
相关问题
python 怎么判断数据是否是16进制的
在 Python 中,可以使用 `binascii` 模块来进行 16 进制字符串与二进制数据之间的转换。要判断一个字符串是否是 16 进制,可以使用 `binascii` 模块的 `unhexlify()` 方法将字符串转换成二进制,如果转换成功,则说明该字符串是 16 进制,否则不是。下面是一个示例代码:
```python
import binascii
def is_hex(s):
try:
binascii.unhexlify(s)
return True
except binascii.Error:
return False
# 测试
print(is_hex('1234ABCD')) # True
print(is_hex('1234ABCDZ')) # False
```
在上面的代码中,`is_hex()` 函数接受一个字符串作为参数,使用 `binascii.unhexlify()` 方法将其转换成二进制数据,如果转换成功则返回 `True`,否则返回 `False`。
python 二进制字符串中所有1索引
可以使用 `enumerate()` 函数来遍历二进制字符串中的每个字符,然后判断该字符是否为1,若为1则将该字符的索引位置加入到结果列表中。示例代码如下:
```
binary_str = '10011' # 二进制字符串
ones_indexes = [i for i, c in enumerate(binary_str) if c == '1'] # 找出所有1的索引位置
print(ones_indexes)
```
输出结果为:`[0, 2, 4]`,表示二进制字符串 '10011' 中所有1的索引分别为0、2、4。