Python 判断字符串是二进制还是十六进制,并转换为整数
要判断一个字符串是二进制还是十六进制,可以使用 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 异常。
原文地址: https://www.cveoy.top/t/topic/puIq 著作权归作者所有。请勿转载和采集!