巩固完C语言和C++的相关算法后,开始学习这个号称简洁、功能强大、无所不能的Python语言,真是稀奇啊!!
这次来总结一下关于进制问题在Python中如何实现的,以及为什么当我就输入input函数时,调用相关函数时为啥出现了编译错误。来看看吧。
首先,我们就来测试一下上面出现的问题的原因:
我们先按正常简单想法打上代码:
test=input()
print(bin(test))
结果一运行发现出现错误:
发现test好像是字符类型,所以我们测试一下类型:
a=input()
print(type(a))
b=int(input())
print(type(b))
得到结果:
所以得知:默认的input函数时字符类型,而我们的进制转换直接用input可能会出错,需要用到强制转换。
这个问题解决完后,就可以将目标引到进制的转换上面了,而Python中可以使用自带的bin()(代表二进制)、oct()(代表八进制)、eval()(代表十进制)、hex()(代表十六进制)来进行相关的转换,我们就可以直接输入来得到我们想要的结果:
a=int(input())
b=str(a) #为eval函数做参数
print(type(a))
print(bin(a)) #二进制
print(oct(a)) #八进制
print(eval(b)) #十进制 这里注意,eval函数的参数是原始input的str类型,不然出错
print(hex(a)) #十六进制
注意eval的函数使用是input原始的str类型
相同的,可以得到这样的输入,输出:
for i in range (0,4):
a=input() #键盘输入得到十进制下的数
print(eval(a))
嘿嘿嘿,成功解决了进制的互相转换以及产生错误的原因,又get到一个点,开森啊!!!
小白到大神,日积月累的你一定可以!
本文链接:小白兔入手:Python进制转换问题(二进制、八进制、十进制、十六进制)_Rainbow_Zhenjie的博客-CSDN博客
本文为博主原创文章,未经允许不得转载、盗用,欢迎大家一起交流学习!