编写代码,实现将用户输入的十进制整数转换为指定进制(二进制、八进制、十六进制)的功能。要求分别用到%格式化、format()方法、f-string三种方式进行输出。python
时间: 2024-09-26 14:17:47 浏览: 32
C++实现十六进制字符串转换为十进制整数的方法
当然可以。以下是用Python实现这个功能的示例代码,分别采用`%`格式化、`format()`方法以及`f-string`的方式:
1. 使用 `%` 格式化:
```python
def convert_to_base(num, base):
if base == 2:
return bin(num)[2:]
elif base == 8:
return oct(num)[2:]
elif base == 16:
return hex(num)[2:]
decimal_num = int(input("请输入十进制整数: "))
base = int(input("请输入目标进制(2, 8, 16): "))
# 输出转换结果
print("二进制: %s" % convert_to_base(decimal_num, base))
print("八进制: %s" % convert_to_base(decimal_num, base))
print("十六进制: %s" % convert_to_base(decimal_num, base))
```
2. 使用 `format()` 方法:
```python
def convert_to_base(num, base):
return {
2: lambda x: '0b{}'.format(x),
8: lambda x: '0o{}'.format(x),
16: lambda x: '0x{}'.format(x)
}[base](num)
decimal_num = int(input("请输入十进制整数: "))
base = int(input("请输入目标进制(2, 8, 16): "))
# 输出转换结果
print(f"二进制: {convert_to_base(decimal_num, base)}")
print(f"八进制: {convert_to_base(decimal_num, base)}")
print(f"十六进制: {convert_to_base(decimal_num, base)}")
```
3. 使用 `f-string` (Python 3.6 及以上版本):
```python
def convert_to_base(num, base):
return {
2: f"{bin(num)[2:]}",
8: f"{oct(num)[2:]}",
16: f"{hex(num)[2:]}"
}[base]
decimal_num = int(input("请输入十进制整数: "))
base = int(input("请输入目标进制(2, 8, 16): "))
# 输出转换结果
print(f"二进制: {convert_to_base(decimal_num, base)}")
print(f"八进制: {convert_to_base(decimal_num, base)}")
print(f"十六进制: {convert_to_base(decimal_num, base)}")
```
阅读全文