如何用Python实现任意八进制字符串转十进制数的功能?
八进制字符串转十进制字符串实现方案
思路说明
你的整体思路方向是正确的,只需要调整两个细节:
- 分割后的列表要作为循环遍历对象,而不是原始输入字符串
- 计算数位权重时,八进制数最右侧的数位是8的0次方,需要从右往左计算数位位置,避免权重计算错误
完整代码实现
版本1:手动循环实现(符合你要求的for循环逻辑)
def oct_str_to_dec(oct_input: str) -> str: # 按空格分割输入为单个八进制字符串列表 oct_items = oct_input.split() dec_result = [] for oct_num in oct_items: current_dec = 0 # 反转八进制字符串,从最低位开始遍历 for pos, digit_char in enumerate(reversed(oct_num)): digit = int(digit_char) current_dec += digit * (8 ** pos) dec_result.append(str(current_dec)) # 用空格拼接结果返回 return ' '.join(dec_result)
版本2:内置方法简洁实现
Python的int()方法支持指定进制直接转换,代码更简洁:
def oct_str_to_dec(oct_input: str) -> str: return ' '.join(str(int(item, 8)) for item in oct_input.split())
测试示例
print(oct_str_to_dec("14 27")) # 输出 12 23 print(oct_str_to_dec("10")) # 输出 8 print(oct_str_to_dec("12 23")) # 输出 10 19
内容的提问来源于stack exchange,提问作者user7770390
相关产品推荐
相关产品推荐

