要判断一个字符串是二进制还是十六进制,可以使用 Python 的内置函数 int() 结合异常处理来尝试将字符串转换为对应进制的整数。如果成功转换,则说明字符串是对应进制的;如果转换时抛出异常,则说明字符串不是对应进制的。

下面是一个示例代码:

def is_binary_or_hexadecimal(s):
    try:
        # 尝试将字符串转换为二进制
        decimal = int(s, 2)
        # 如果转换成功,说明是二进制
        return "binary"
    except ValueError:
        try:
            # 尝试将字符串转换为十六进制
            decimal = int(s, 16)
            # 如果转换成功,说明是十六进制
            return "hexadecimal"
        except ValueError:
            # 都无法转换,说明不是二进制也不是十六进制
            return "neither"

def convert_to_decimal(s):
    try:
        # 尝试将字符串转换为二进制
        decimal = int(s, 2)
        return decimal
    except ValueError:
        try:
            # 尝试将字符串转换为十六进制
            decimal = int(s, 16)
            return decimal
        except ValueError:
            # 都无法转换,抛出异常
            raise ValueError("Invalid input")

# 示例用法
string = "1101"
result = is_binary_or_hexadecimal(string)
print(result)  # 输出: binary

decimal = convert_to_decimal(string)
print(decimal)  # 输出: 13

在示例代码中,is_binary_or_hexadecimal() 函数用于判断字符串是二进制还是十六进制,convert_to_decimal() 函数用于将字符串转换为对应进制的整数。

注意,以上代码假设输入的字符串是有效的二进制或十六进制表示。如果输入的字符串不是有效的二进制或十六进制表示,将会抛出 ValueError 异常。

Python 判断字符串是二进制还是十六进制,并转换为整数

原文地址: https://www.cveoy.top/t/topic/puIq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录