蓝桥杯练习系统十六进制转八进制(python)

问题描述

给定n个十六进制正整数,输出它们对应的八进制数。

输入格式

输入的第一行为一个正整数n (1<=n<=10)。即一共有n个待转换进制的数
接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式

输出n行,每行为输入对应的八进制正整数。

参考代码

n = int(input())
num_list = []
for i in range(n):
	num_list.append(input())
for j in range(n):
	m = oct(int(num_list[j], 16))
	print(m.replace("0o", ""))

考察知识点

1.在直接回车的情况下,input函数保存的是空字符串
如果是一行输入n个数的话,通常用空格分隔输入参数,这个时候需要使用input().split()
2.向列表中追加元素的方法:
1>append() 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型 。
2>extend() 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数, 且该参数只能为列表list形式。
3>insert(index,value) 将一个元素插入到列表中,有参数有两个,第一个参数index是索引点,即插入的位置,第二个参数value是插入的元素。其中,index的起始位置从0开始。
4>"+"号,将两个列表list相加连接起来,会返回给一个新的list对象。(和extend有点像)
3.int 可以将 2 进制到 36 进制的字符串、字节串(bytes)或者字节数组(bytearray)实例转换成对应的 10 进制整数。具体的调用形式为:int(x, base=10),其中 x 即为字符串、字节串或字节数组的实例。ase 默认是 10,还可以取 0 以及 2 到 36,不能是 1,因为没有 1 进制。
base 为 0 的时候会按照代码字面量(code literal)解析,即只能把 2、8、10、16 进制数字表示转换为 10 进制。对于 2、8、16 进制必须指明相应进制的前缀,否则会按照 10 进制解析。
关于int函数的详细用法可以参考Python 中 int 用法详解
4.oct() 函数将一个整数转换成 8 进制字符串
5.replace()函数把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

str.replace(old, new[, max])

关于 string 的 replace 方法,需要注意 replace 不会改变原 string 的内容。

temp_str = 'this is a test'
print(temp_str.replace('is','IS'))
print(temp_str)

#输出
thIS IS a test
this is a test

一点心得

刷基础题更像是在积累,很多函数都是第一次用,但是不要放弃啊

你可能感兴趣的:(蓝桥杯python,蓝桥杯,python)