显示:输入的数非正数或进制数字输入错误 [],怎么解决
时间: 2024-10-01 07:04:06 浏览: 23
C语言-数字转换函数大全-综合文档
为了改进上述代码,当遇到非正数或进制输入错误时,可以添加更详细的错误消息提示,并提供一些指导用户改正错误的方式。可以在处理异常的地方做出相应调整:
```python
def base_conversion():
while True:
try:
num = int(input("请输入一个正整数:"))
if num <= 0:
raise ValueError("输入的数值必须是正数,请输入一个正整数。")
base = int(input("请输入要转换的进制 (2, 8, 16): "))
if base < 2 or base > 16:
raise ValueError("无效的进制,只接受2、8和16。")
result_list = []
for digit in str(num):
result_list.append(chr(ord('0') + int(digit) % base))
num //= base
if num == 0:
result_list.reverse()
print(f"转换后的数字({base} 进制): {''.join(result_list)}")
break
except ValueError as e:
print(e)
# 继续询问直到输入正确
continue
# 执行转换函数
base_conversion()
```
现在,如果用户输入了非正数或不支持的进制,程序会直接显示错误信息,并在下一次循环中继续提示,直到输入满足条件为止。
阅读全文