如何在Python中编写一个函数,用于将一个整数转换为二进制、八进制或十六进制?
发布时间:2023-06-27 00:47:48
在Python中,我们可以使用内置的函数bin()、oct()、hex()将整数转化为二进制、八进制和十六进制。
1. 转换为二进制
使用内置函数bin()可以将整数转换为二进制。函数的语法如下:
bin(number)
其中,number代表需要转换的整数。函数返回的是一个以“0b”为前缀的字符串(表示二进制),例如:
num = 10 binary_num = bin(num) print(binary_num) # output: 0b1010
可以发现,函数返回的字符串以“0b”为前缀,这代表着该字符串是一个二进制数。
2. 转换为八进制
使用内置函数oct()可以将整数转换为八进制。函数的语法如下:
oct(number)
其中,number代表需要转换的整数。函数返回的是一个以“0o”为前缀的字符串(表示八进制),例如:
num = 10 octal_num = oct(num) print(octal_num) # output: 0o12
可以发现,函数返回的字符串以“0o”为前缀,这代表着该字符串是一个八进制数。
3. 转换为十六进制
使用内置函数hex()可以将整数转换为十六进制。函数的语法如下:
hex(number)
其中,number代表需要转换的整数。函数返回的是一个以“0x”为前缀的字符串(表示十六进制),例如:
num = 10 hex_num = hex(num) print(hex_num) # output: 0xa
可以发现,函数返回的字符串以“0x”为前缀,这代表着该字符串是一个十六进制数。
综上所述,我们可以写一个函数convert(num, base),表示将整数num转换为指定进制base的字符串,代码如下:
def convert(num, base):
if base == 2:
return bin(num)
elif base == 8:
return oct(num)
elif base == 16:
return hex(num)
else:
return "Invalid base"
print(convert(10, 2)) # output: 0b1010
print(convert(10, 8)) # output: 0o12
print(convert(10, 16)) # output: 0xa
print(convert(10, 3)) # output: Invalid base
在该函数中,我们使用了if-elif-else语句,根据输入的进制base选择使用哪个内置函数进行转换,并将转换后的结果返回。在调用函数时,我们可以输入需要转换的整数num和指定的进制base,然后得到转换后的结果。
