Python 3 给我无法解决的错误

Python 3 is giving me errors that I can't resolve

代码如下:

import turtle
import math

def drawTree(segments,size):
    """
    :param segments: refers to number of extensions from the previous
    :param size: refers to the length of the initial extension
    """
    if (segments < 0.0 | size < 0.0):
        print("Invalid Input")
    elif (segments == 0 | size == 0):
        pass
    elif segments > 0:
        i = 1
        for i in range(6):
            turtle.down()
            turtle.forward(size)
            turtle.back(size)
            turtle.right(60)
            i -= 1
            if segments != 0:
                size *= (1/3)
                turtle.forward(size)
                turtle.back(size)
                segments -= 1
                drawTree(segments, size)
def main():
    drawTree(1, 200)
    input("Press ENTER to exit")

main()

这是错误列表:

Traceback (most recent call last):
  File "C:/Users/MATTHEW/PycharmProjects/snowflake/snowflake.py", line 36, in <module>
    main()
  File "C:/Users/MATTHEW/PycharmProjects/snowflake/snowflake.py", line 33, in main
    drawTree(1, 200)
  File "C:/Users/MATTHEW/PycharmProjects/snowflake/snowflake.py", line 14, in drawTree
    if (segments < 0.0 | size < 0.0):
TypeError: unsupported operand type(s) for |: 'float' and 'int'

这些错误并没有真正的解释。事实上,在我添加最后一个 for 循环之前,这段代码 运行 很好,但由于某种原因,它停止了。

您使用了错误的运算符。对于布尔 OR,使用 or operator:

if (segments < 0.0 or size < 0.0):

elif (segments == 0 or size == 0):

|运算符是一个bitwise operator;它将布尔逻辑应用于整数的各个位。