python中的多边形创建

时间:2018-04-17 20:11:07

标签: python polygon

我无法完成创建多边形的代码。目标是能够创建任何多边形,但我一直在我的(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'

1 个答案:

答案 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

的整数来更正此问题