Python中的三元转换效果不佳。为什么?

时间:2016-10-05 21:17:05

标签: python ternary

我试图在Python上创建一个三元计算器,还有一些其他函数,如hex,bin和oct以及内置函数。三元没有一个,所以我建了一个。

def ternary(n):
    e = n/3
    q = n%3
    e = n/3
    q = e%3
    return q

i = int(input("May you please give me a number: "))
print("Binary "+bin(i))
print("Octal "+oct(i))
print("Hexadecimal "+hex(i))
print("Ternary "+ternary(i))
enter code here

但它不起作用。为什么?问题在哪里?

1 个答案:

答案 0 :(得分:0)

您的代码中有一些错误,其他人在评论中指出了这些错误,但我会重申它们

  • 如果要使用整数除法(在Python 3中),则使用常规除法。
  • 您将从函数返回一个整数,而binocthex都返回字符串。

此外,即使错误已修复,您的三元功能也不正确。为您自己编写基本转换函数的最佳方法是使用递归。

def ternary(n):
    if n == 0:
        return ''
    else:
        e = n//3
        q = n%3
        return ternary(e) + str(q)