Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中多边形的创建_Python_Polygon - Fatal编程技术网

python中多边形的创建

python中多边形的创建,python,polygon,Python,Polygon,我在完成创建多边形的代码时遇到问题。目标是能够创建任何多边形,但我的(def polygon)不断出错,但其他一切都可以。我知道我需要尝试在开始时输入边的数量和长度,但我就是不知道如何输入。代码允许我从菜单中选择一个数字,输入长度和边数,但之后它停止工作,我得到一个错误。以下是我所拥有的: import math import turtle print("MENU") def main(): print ("1. Polygon Fractal") print("2. Frac

我在完成创建多边形的代码时遇到问题。目标是能够创建任何多边形,但我的(def polygon)不断出错,但其他一切都可以。我知道我需要尝试在开始时输入边的数量和长度,但我就是不知道如何输入。代码允许我从菜单中选择一个数字,输入长度和边数,但之后它停止工作,我得到一个错误。以下是我所拥有的:

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'
回溯(最近一次呼叫最后一次):
文件“/Users/isabelavaldes/Documents/polygon extra.py”,第27行,在
main()
文件“/Users/isabelavaldes/Documents/polygon extra.py”,第17行,主视图
多边形(z,a)
文件“/Users/isabelavaldes/Documents/polygon extra.py”,第21行,多边形
f=(n-2)*180/n
TypeError:-:“str”和“int”的操作数类型不受支持
输入()的结果是一个字符串
z
传递给
polygon()
时是一个字符串,因此在
polygon
的第一行中,您试图从字符串(
n
)中减去一个整数(
2

您的代码会产生类似于
“5-2
的结果,而不是
5-2
。这就解释了
TypeError:-:'str'和'int'的操作数类型不受支持。


您可以通过将
z
(和
a
)强制转换为带有
多边形(int(z),int(a))的整数来更正此问题。

欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。您发布的代码不会引发给定的错误。我已尽力更正原始发布;如前所述,代码在许多缩进错误上失败。请纠正我的猜测。你似乎有一个小小的习惯,就是问问题,然后一有答案就删除它们。只是想确保你意识到SO应该是一个好问题和答案的存储库,而不是一个快速完成作业然后删除所有痕迹的方法。