【发布时间】:2018-04-22 20:12:34
【问题描述】:
我一直在尝试在 Python 中绘制分形外壳,我必须在其中输入级别的大小和数量。每次我尝试实现代码时都会出现错误。我已经尝试研究如何在 Python 中绘制一个 shell,看看我可以修复什么,但我似乎找不到任何有用的东西。对此的任何帮助都会很棒。
这是我目前的代码:
import math
import turtle
from turtle import*
turtle = turtle.Turtle()
t= turtle
t.speed(1000)
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(int(z),int(a))
if x=="2":
f=input("Please input a size")
j=input("Please input a level")
fractalshell(int(f),int(j))
if x=="3":
b=input("Please input a length")
snowflake(int(b))
if x=="4":
fractaltree()
if x=="5":
t.hideturtle()
done()
def polygon(n,l):
f = (n - 2) * 180/n
for i in range(n):
t.forward(l)
t.right(180 - f)
def fractalshell(size, level):
def curve(size):
t.right(45)
for curve in range(0.1 *(size)):
t.forward(0.1*(size))
t.right(15)
t.right(170)
for curve in range(0.12*(size)):
t.forward(0.1*(size))
t.left(15)
if (level > 0):
t.forward(size)
curve(size)
t.right(45)
fractalshell = (0.93 * (size), level - 1)'
这是不断出现的错误:
Traceback (most recent call last):
File "/Users/isabelavaldes/Dropbox/Recursion.py", line 113, in <module>
main()
File "/Users/isabelavaldes/Dropbox/Recursion.py", line 27, in main
fractalshell(int(f),int(j))
File "/Users/isabelavaldes/Dropbox/Recursion.py", line 59, in
fractalshell
curve(size)
File "/Users/isabelavaldes/Dropbox/Recursion.py", line 50, in curve
for curve in range(0.1 *(size)):
TypeError: 'float' object cannot be interpreted as an integer
【问题讨论】:
-
错误信息很好理解:
0.1*size是浮点数(当然),而range不喜欢浮点数。检查size是什么 -if 0.1*size可以设为整数,然后这样做;否则你必须决定你想用非整数值发生什么。 -
“shell”标签不太合适。
标签: python turtle-graphics fractals