【Python蓝桥杯】十六进制转八进制 给定n个十六进制正整数,输出它们对应的八进制数。

最近在刷蓝桥杯题目,按题目做一下笔记整理,顺便分享交流一下,有更好的解决方案欢迎大家共同提出探讨,以下源代码为系统提交满分答案

十六进制转八进制

问题描述

资源限制
Python时间限制:5.0s、
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274

源代码

n = int(input())
li = []     #  创建列表
for i in range(n):
    li.append(input())		#  输入数据
for num in li:
    if len(num) <= 100000:		#  判断长度是否符合要求
            print(oct(int(num,16))[2:])		#  将元素转换为十进制后转换为八进制,从第三位开始取数并输出

问题分析

本题中将十六进制转换为八进制,考虑到需要将十六进制转为十进制,再转为八进制int(num,16)表示将十六进制的数转换为十进制,如果不在后赘述16,直接使用int(num)表示将字符串转为整型,转换结果会出错,oct()表示将十进制数值转换为八进制,转换完成后八进制数前有0o前缀,使用[2:]从第三位开始取值,从而去掉0o

测评结果
在这里插入图片描述

更多题目,点击查看
Python蓝桥杯 基础练习题目整理
Python蓝桥杯 算法训练题目整理
Python蓝桥杯 算法提高题目整理
Python蓝桥杯 历届真题题目整理
Python蓝桥杯 练习系统题目整理(全)

你可能感兴趣的:(Python蓝桥杯——基础练习,蓝桥杯,职场和发展)