oj平台python_python OJ

输入

oxA

输出

10

十六进制转成10进制

方法1

import math

dict1={}

dict1['A']=10

dict1['B']=11

dict1['C']=12

dict1['D']=13

dict1['E']=14

dict1['F']=15

while True:

try:

result=0#返回的十进制数字

num=input()

num2=num[2:] #获取十六进制数值,去掉0x

#print(num2)

#从最右边开始,数字*16 0次方

#数字*16 1次方

#数字*16 2次方

i=len(num2)-1#最后一个字符下标

j=0#16的次方,从0开始

while(i>=0):#从最后一个,到最前面一个

if(num2[i] in ['A','B','C','D','E','F']):

n=dict1[num2[i]]

else:

n=int(num2[i])

result =result+n*math.pow(16,j)

j=1+j

i=i-1

print(int(result))

except:

break

方法2

while True:

try:

print(int(input(),16))

except:

break

简短

简短

简短

int 是一个类,

class int

里面有一个方法,可以直接把输入的16进制,变成10进制的int(x, base=10) -> integer

x 是一个string

base 提供是什么进制的数字

int("0xA",16)

把16进制数字0xA转十进制数字

>>> int(input(),16)

0xA

10

>>> int(input(),16)

0xB

11

>>> int(input(),16)

0x19A

410

>>> int(input(),2)

1

1

>>> int(input(),2)

10

2

>>> 10

10

>>> int(input(),2)

总结:

元芳,这两位程序员的代码,你怎么看

方法2,直接了当就用了一条语句,实现了功能。

说明他对python的int类型,很熟悉。

很可能他就知道这个语句,

看不到多少他编程的功力,这方面还没有展现。

方法1,

说明他对python里面的int类型不熟悉。

不知道还有这样的操作。

这样的语句。

所以,他没法想到用这条语句。

但他知道一个东西,他知道进制是如何转换的。

他根据这个原理,写了代码

他写的代码更多,体现的逻辑思维更强。

处理的非常的细致。

涉及到进制转换的细节。

有一种程序设计的思维。

但他不知道偷懒,不知道这些事情不需要自己做。

早就有人做了。

直接拿来调用一条语句,就可以了呀

干嘛浪费时间呢。

1

已经有现成的代码,要复用。

直接调用。不需要自己再去实现。

高效率。

但用方法1的人,不知道存在这样的一条语句。

所以他要自己造。

方法2的人,知道,

所以他自己不用造,复用。

轻松感就是这么获得的。

2

如果没有现成的代码,需要自己去实现,自己搞懂逻辑。

就需要方法1这样的细致。

方法1虽然是自己造,很受累。

但是其展现的程序设计思维,还是值得肯定的。

但思维要用到合适的地方,发挥更大的作用。

最好不用在重复做过的事情上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值