python实现将用户输入的十进制整数转换为指定进制(二进制、八进制、十六进制)的功能。要求分别用到%格式化、format()方法、f-string三种方式进行输出。
时间: 2024-09-27 12:04:05 浏览: 55
在Python中,你可以使用 `%` 格式化操作符、`format()` 函数以及 f-string(格式化字符串字面量)来实现这个功能。以下是三种方法的具体示例:
1. `%` 格式化操作符:
```python
decimal_num = int(input("请输入一个十进制整数: "))
base = input("请输入目标进制(2 for binary, 8 for octal, 16 for hexadecimal): ")
if base == '2':
print("%d in %s is %b" % (decimal_num, base.upper(), decimal_num))
elif base == '8':
print("%d in %s is %o" % (decimal_num, base.upper(), decimal_num))
elif base == '16':
print("%d in %s is %x" % (decimal_num, base.upper(), decimal_num))
else:
print("无效的进制选择")
```
2. `format()` 函数:
```python
decimal_num = int(input("请输入一个十进制整数: "))
base = input("请输入目标进制(2 for binary, 8 for octal, 16 for hexadecimal): ")
conversion = {
'2': "{0:b}".format(decimal_num),
'8': "{0:o}".format(decimal_num),
'16': "{0:x}".format(decimal_num)
}
print(f"{decimal_num} in {base} is {conversion[base]}")
```
3. f-string (格式化字符串字面量):
```python
decimal_num = int(input("请输入一个十进制整数: "))
base = input("请输入目标进制(2 for binary, 8 for octal, 16 for hexadecimal): ")
if base == '2':
print(f"{decimal_num} in {base} is {decimal_num:b}")
elif base == '8':
print(f"{decimal_num} in {base} is {decimal_num:o}")
elif base == '16':
print(f"{decimal_num} in {base} is {decimal_num:x}")
else:
print("无效的进制选择")
```
在这三个例子中,用户首先输入一个十进制整数,然后选择要转换成哪种进制。程序会根据用户的输入展示相应的转换结果。
阅读全文