绘制一个“ k尖”星,用户将“ k”传递给程序

时间:2019-05-20 11:59:10

标签: python python-3.x turtle-graphics

我想绘制一个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

2 个答案:

答案 0 :(得分:0)

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

k = int(input())

答案 1 :(得分:0)

更改:

k = input()

收件人:

k = int(input())

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

  • 您对star()的调用参数与其声明的参数不匹配 参数。 (即200不是乌龟。)

  • 您用于计算区域sum计算是一厢情愿。

  • 此代码仅适用于k的奇数值。

  • angle可以在循环之前计算为 计算更改。

将所有这些放在一起,我们得到:

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()