Python:自定义Stack类实现任意进制转换及测试
首先,我们需要定义一个Stack类,包含私有属性data和top,以及无参构造方法。然后,我们需要实现push、pop、isempty、gettop和getlen这些公共方法。 ```python class Stack: def __init__(self): self.__data = [] self.__top = -1 def push(self, value): self.__data.append(value) self.__top += 1 def pop(self): if self.isempty(): return None else: value = self.__data[self.__top] self.__data.pop() self.__top -= 1 return value def isempty(self): return self.__top == -1 def gettop(self): if self.isempty(): return None else: return self.__data[self.__top] def getlen(self): return self.__top + 1 ``` 接下来,我们需要定义一个函数,利用自定义的Stack类进行进制转换。我们可以使用栈来存储余数,然后将栈中的元素依次出栈,转换为字符串返回给调用者。 ```python def base_conversion(number, base): stack = Stack() digits = "0123456789ABCDEF" while number > 0: remainder = number % base stack.push(remainder) number //= base result = "" while not stack.isempty(): result += digits[stack.pop()] return result ``` 我们需要定义一个测试函数来进行测试。 ```python def test(): number = int(input("请输入要转换的数字:")) base = int(input("请输入要转换的进制:")) result = base_conversion(number, base) print("转换后的结果为:", result) if __name__ == "__main__": test() ``` 运行test()函数,输入要转换的数字和进制,即可得到转换后的结果。 ######[AI写代码神器 | 493点数解答 | 2024-06-13 19:16:00]
- C++:用自定义双栈实现中缀表达式到后缀表达式的转换(阿里通义 | 877点数解答 | 2024-10-18 02:23:48)282
- C++:巧用两个栈实现队列功能及代码示例(字节豆包 | 372点数解答 | 2024-10-17 10:43:11)260
- 利用栈实现字符处理:解析main.cpp中的输入输出逻辑(GPT | 518点数解答 | 2024-10-25 17:28:04)249
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)495
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)378
- 括号序列合法性判断代码:潜在问题分析、修正及解释,增强程序健壮性(字节豆包 | 685点数解答 | 2025-12-04 18:51:20)49
- Android开发自定义 Handler :七大策略有效规避内存泄漏!(百度文心 | 526点数解答 | 2023-11-09 17:34:21)304
- Python 实战:学生信息列表转字典、遍历、深拷贝及数据修改全流程(GPT | 422点数解答 | 2024-10-29 15:43:54)449
- Python实战:学生成绩列表转字典,深拷贝与数据修改操作全解析(字节豆包 | 254点数解答 | 2024-10-29 16:01:39)440
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)348
- Java调用Python接口中文乱码?设置UTF - 8编码一招解决!(讯飞星火 | 263点数解答 | 2024-06-06 17:07:59)420
- 解决Java调用Python接口中文乱码问题:设置UTF - 8编码全攻略(讯飞星火 | 160点数解答 | 2024-06-06 17:18:39)443