我自己写的:
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,但自己的思考也是必不可少的。