【问题标题】:TypeError in Jython?Jython 中的类型错误?
【发布时间】:2013-11-26 03:56:32
【问题描述】:

我试图在一个圆上画两条线,就像一个 X。因为它是一个 X,为了找到 (x,y),我只是将 sqrt(2)/2 乘以半径,然后从半径中添加或减去它(x,y) origin 取决于它在圆的哪个角落。但是我不断收到 TypeError '错误是:不能将第二个 arg 强制转换为 int' 这就是我所拥有的:

#starting/ending points of the line
a1 = z - ((sqrt(2) / 2)*(r1))
b1 = w - ((sqrt(2) / 2)*(r1))
a2 = z + ((sqrt(2) / 2)*(r1))
b2 = w + ((sqrt(2) / 2)*(r1))
c1 = z - ((sqrt(2) / 2)*(r1))
d1 = w + ((sqrt(2) / 2)*(r1))
c2 = z + ((sqrt(2) / 2)*(r1))
d2 = w - ((sqrt(2) / 2)*(r1))
pic.addLine(black, a1, b1, a2, b2)
pic.addLine(black, c1, d1, c2, d2)

...其中 z 是 x 原点,w 是 y 原点,r1 是半径。 我在这里做错了什么?这就是我得到的:

【问题讨论】:

  • 您是否尝试过将a1b1a2b2 等参数转换为整数? int(a1), int(b1), int(a2), int(b2)?
  • 如果您在致电pic.addLine 之前执行print type(a1) 会显示什么?
  • 谢谢@Martijn,这行得通。

标签: java python jython typeerror jes


【解决方案1】:

通过使用sqrt(),您最终会得到浮点值,但您调用的方法只需要整数。在将值传递给 pic.addLine() 之前调用 int()

pic.addLine(black, int(a1), int(b1), int(a2), int(b2))
pic.addLine(black, int(c1), int(d1), int(c2), int(d2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 2011-03-02
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2014-08-05
    • 1970-01-01
    相关资源
    最近更新 更多