画一个“kpointed”星,其中“k”由美国传递给该计划

2024-06-26 02:26:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我想画一个K点星,其中K是经过用户的。你知道吗

我尝试过turtle,但不起作用:

import turtle

def star(turtle,n,d):
    sum=0
    for i in range(n):
        angle=180.0-180.0/n
        turtle.forward(d)
        turtle.right(angle)
        turtle.forward(d)
        sum=sum+d
    print("Area is",sum)

k=input()
star(200,k,4)
Traceback (most recent call last):
  File "kpoint.py", line 12, in <module>
    star(200,k,4)
  File "kpoint.py", line 4, in star
    for i in range(n):
TypeError: 'str' object cannot be interpreted as an integer

Tags: 用户inpyimportfordeflinerange
2条回答

您的错误是str类型不能解释为intinput()函数返回一个str类型。可以通过使用int()函数将str类型转换为int来解决此问题。这样做:

k = int(input())

更改:

k = input()

收件人:

k = int(input())

是必需的,但不足以运行此代码。其他问题包括:

  • star()的调用参数与其声明的参数不匹配 参数。(即200不是一只海龟

  • 你的sum计算面积是一厢情愿的。

  • 这段代码只能处理奇数值k

  • angle可以在循环之前作为该循环中的nothing进行计算 计算更改。

把这些放在一起,我们得到:

import turtle

def star(n, d):
    angle = 180 - 180 / n

    for i in range(n):
        turtle.forward(d)
        turtle.right(angle)
        turtle.forward(d)

k = int(input("Points (odd number): "))

star(k, 200)

turtle.done()

相关问题 更多 >