小白兔入手:Python进制转换问题(二进制、八进制、十进制、十六进制)

在学习Python时,遇到input函数与进制转换的交互问题,发现input默认返回字符串类型导致编译错误。解决方法是进行类型转换。Python提供了bin()、oct()、eval()和hex()函数进行二进制、八进制、十进制和十六进制之间的转换。通过这些函数,可以方便地进行进制间的互相转换。
摘要由CSDN通过智能技术生成

巩固完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博客

本文为博主原创文章,未经允许不得转载、盗用,欢迎大家一起交流学习!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值