我想绘制一个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
答案 0 :(得分:0)
您的错误表明无法将str
类型解释为int
。 input()
函数返回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()