16 進数を 10 進数に変換する関数を作成する必要があり、その方法はわかっていますが、最初のビットで行き詰まっています。これまでのところ、ユーザー入力を取得して16進数で返していますが、これは一度に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 と入力すると機能しません。これがなぜなのかわかりません。