我无法完成创建多边形的代码。目标是能够创建任何多边形,但我一直在我的(def多边形)上得到错误,但其他一切都有效。我知道我需要尝试在开始时输入我输入的边数和长度,但我无法弄清楚如何。代码允许我从菜单中选择一个数字,并输入边的长度和数量,但之后它停止工作,我得到一个错误。这就是我所拥有的:
import math
import turtle
print("MENU")
def main():
print ("1. Polygon Fractal")
print("2. Fractal Shell")
print("3. Snowflake")
print("4. Fractal Tree")
print("5. Exit")
x=input("Please select a number")
if x=="1":
z=input("Please input the number of sides")
a=input("Please input length")
polygon(z,a)
def polygon(n,l):
f = (n - 2) * 180/n
for i in range(n):
t.forward(l)
t.right(180 - f)
main()
输入1为多边形以及长度和边后,这是我一直得到的错误:
Traceback (most recent call last):
File "/Users/isabelavaldes/Documents/polygon extra.py", line 27, in <module>
main()
File "/Users/isabelavaldes/Documents/polygon extra.py", line 17, in main
polygon(z,a)
File "/Users/isabelavaldes/Documents/polygon extra.py", line 21, in polygon
f = (n - 2) * 180/n
TypeError: unsupported operand type(s) for -: 'str' and 'int'
答案 0 :(得分:0)
input()
的结果是一个字符串。将z
传递给polygon()
时,polygon
是一个字符串,因此在2
的第一行中,您试图从字符串中减去一个整数(n
)"5" - 2
1}})。
您的代码会产生类似5 - 2
而不是TypeError: unsupported operand type(s) for -: 'str' and 'int'
的内容。这解释了z
。
您可以通过将a
(和polygon(int(z),int(a))
)转换为TextView