Python实现:含非法输入处理的八进制转十进制程序
好的,下面是一个用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'` 退出程序。 ######[AI写代码神器 | 543点数解答 | 2024-12-03 19:13:25]
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)496
- C++ 实现:判断 N 个数在二进制、八进制、十进制、十六进制下的可能性(字节豆包 | 812点数解答 | 2026-01-02 19:28:20)61
- Python实现:判断数字在二进制、八进制、十进制、十六进制中的可能性(字节豆包 | 405点数解答 | 2026-01-02 19:43:33)61
- 巧用 Python:判断数字在二进制、八进制、十进制、十六进制中的可能性(字节豆包 | 251点数解答 | 2026-01-02 19:44:35)61
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)380
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)449
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)441
- CentOS下Java进程出现futex_wait_queue_me问题的处理全流程(阿里通义 | 283点数解答 | 2023-11-20 14:51:26)487
- 替雷利珠单抗致免疫相关性糖尿病:病例报道与机制探讨,为临床用药敲响警钟( | 164点数解答 | 2024-10-11 14:52:52)289
- Python 代码转 C++:计算花朵鲜艳值总和(字节豆包 | 408点数解答 | 2026-04-19 21:50:57)19
- C++ 实现工厂编号二进制位设置为 1 的程序(字节豆包 | 307点数解答 | 2026-02-28 20:46:41)26
- 工厂编号位运算:将指定位置置为 0 的 C++ 实现(字节豆包 | 339点数解答 | 2026-02-28 20:48:38)27