【发布时间】:2013-11-05 11:46:29
【问题描述】:
我需要编写一个将十六进制转换为十进制的函数,并且我知道如何做到这一点,但我被困在了第一位。到目前为止,我正在接受用户输入并以十六进制返回它,但这仅在我一次输入 1 件事时才有效。代码是:
def hex(x):
if x == "0":
return 0
elif x == "1":
return 1
elif x == "2":
return 2
elif x == "3":
return 3
elif x == "4":
return 4
elif x == "5":
return 5
elif x == "6":
return 6
elif x == "7":
return 7
elif x == "8":
return 8
elif x == "9":
return 9
elif x == "A":
return 10
elif x == "B":
return 11
elif x == "C":
return 12
elif x == "D":
return 13
elif x == "E":
return 14
elif x == "F":
return 15
print hex(raw_input().upper())
如果我输入例如 C 则它会返回 12,但如果我输入 8C 则它不起作用。我不知道为什么会这样。
【问题讨论】:
-
如果
x等于字符串8C,您认为您的大if ... elif语句的哪个分支会被采用?如果你能回答这个问题,那么你就会明白为什么你的代码不起作用了。 -
您需要为用户输入中的每个字符调用
hex()函数;然后收集并打印结果。
标签: python python-2.7