20210209py由N进制转化为10进制(遇到问题尝试自己解决想法)

我自己写的:

a,b=map(int,input().split(","))
p=1
sum=0
while a>0:
    sum=sum+p*(a%10)
    p=p*b
    a=int(a/10)
print("%d"%sum)

上网查的:

s=input()

a=s.split(',')

print(int(a[0],int(a[1])))

我自己写的那个很简单,就不多说了

上网查的这个我真是一头雾水,python我是自学,很多用法我都不知道或者被我快速忘了。
于是我打算自己琢磨这些都是什么意思
首先1.
s=input()
嗯, 一个输入
其次2.
a=s.split(’,’)
s是前面的输入,split也知道是什么意思,用来自定义分隔的(自己理解的,不知道准确说法,说错了见谅)
接着3.
print里面的就是让人理解不了的地方
a我们知道是什么,那a[0]和a[1]估计就是刚才分隔出的东西
括号有点多,一个个看
最里面的是int(a[1])这个是将a[1]强制转换为整型,不然默认是字符(我去掉int试了一下~)
接着第二个括号是int(a[0],int(a[1]))这个居然想把整个弄为整型,我们可以知道a[0]是N进制下的数字,a[1]是N,于是将int(a[1])改成8,发现答案一样,又将8改成别的数字,发现这个位置是表示前面的数是几进制。突然感觉好像曾经看到过这个知识点(笑)
至于为什么a[0]不用int而a[1]要,我还不知道,原本我以为是N进制是一个数字,而要转化的东西不管是字符还是数字,括号外面有int强制转换就无所谓,以为字母也是有像c语言有ASCII对应,但将a[0]改成字母后就报错,具体有没有什么表对应还不知道,还需要去出查或问。但起码现在我现在知道了这个用法
这就是我自己琢磨的过程,我知道只靠自己琢磨肯定不能学好python,但自己的思考也是必不可少的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值