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;它将布尔逻辑应用于整数的各个位。
代码如下:
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;它将布尔逻辑应用于整数的各个位。