好的,下面是一个用Python实现的将八进制数转换为十进制数的程序。这个程序包括一个主函数用于输入和输出结果,以及一个自定义函数用于进行转换。如果输入非法字符,会提示用户重新输入。 ```python def octal_to_decimal(octal_str): """ 将八进制字符串转换为十进制整数 :param octal_str: 八进制字符串 :return: 十进制整数 """ try: # 使用内置函数 int() 将八进制字符串转换为十进制整数 decimal_number = int(octal_str, 8) return decimal_number except ValueError: # 如果输入不是合法的八进制数,抛出异常 raise ValueError("非法输入:请输入有效的八进制数") def main(): while True: octal_input = input("请输入一个八进制数(输入 'q' 退出):") if octal_input.lower() == 'q': print("程序已退出。") break try: decimal_result = octal_to_decimal(octal_input) print(f"八进制数 {octal_input} 转换为十进制数为:{decimal_result}") except ValueError as e: print(e) if __name__ == "__main__": main() ``` 代码说明: 1. `octal_to_decimal` 函数:该函数接收一个八进制字符串作为参数,并尝试将其转换为十进制整数。如果输入的字符串不是合法的八进制数,则抛出 `ValueError` 异常。 2. `main` 函数:这是程序的主函数,负责与用户交互。用户可以输入八进制数,程序会调用 `octal_to_decimal` 函数进行转换并输出结果。如果用户输入 `'q'`,程序会退出。 3. 异常处理:在 `main` 函数中,通过 `try-except` 块捕获 `octal_to_decimal` 函数可能抛出的 `ValueError` 异常,并提示用户输入非法。 运行这个程序时,用户可以不断输入八进制数进行转换,直到输入 `'q'` 退出程序。 [2024-12-03 19:13:25 | AI写代码神器 | 543点数解答]