Python 编码需要帮助



我的代码有问题,我不知道我能做什么。我的代码有一个变量"bheight",它会自动分成几部分(我已经编码并且很好(,但我想要它,所以每当它通过"def Building((:"代码时,它会在 bheight[0] 上添加 1,所以当它下次循环通过时,它将是 bheight[1]。

import turtle
turtle.bgcolor("orange")
blist = input('Please enter builidng heights e.g. "50 30 60"')
leo = turtle.Turtle()
bsplit = blist.split()
bheight = list(map(int, bsplit))
size = len(bsplit)
def Water():
leo.penup()
leo.goto(-200,0)
leo.fillcolor('midnightblue')              
leo.begin_fill()
for a in range (1,3):
leo.forward(400)
leo.right(90)
leo.forward(150)
leo.right(90)
leo.end_fill()
leo.pendown()
def Building():
for x in range (0,int(size)):
leo.fillcolor('darkslategrey')
leo.begin_fill()
leo.left(90)
leo.forward(bheight[-1+1])
leo.right(90)
leo.forward(20)
leo.right(90)
leo.forward(bheight[-1+1])
leo.left(90)
leo.end_fill()

def Reset():
leo.towards(leo)  
Water()
Building()

我同意@maverick的索引修复,但首先认为不需要索引。 而不是:

for x in range (0,int(size)):
...
leo.forward(bheight[x])

这真的应该是:

for x in range(size):
...
leo.forward(bheight[x])

为什么不简单地做:

for height in bheight:
...
leo.forward(height)

具有此样式修复和其他各种样式修复的重制代码:

from turtle import Turtle, Screen
def Water():
leo.penup()
leo.setx(-200)
leo.fillcolor('midnightblue')
leo.begin_fill()
for _ in range(2):
leo.forward(400)
leo.right(90)
leo.forward(150)
leo.right(90)
leo.end_fill()
leo.pendown()
def Building():
leo.fillcolor('darkslategrey')
for height in bheight:
leo.begin_fill()
leo.left(90)
leo.forward(height)
leo.right(90)
leo.forward(20)
leo.right(90)
leo.forward(height)
leo.left(90)
leo.end_fill()
blist = input('Please enter building heights e.g. "50 30 60": ')
bsplit = blist.split()
bheight = list(map(int, bsplit))
screen = Screen()
screen.bgcolor("orange")
leo = Turtle()
Water()
Building()
screen.mainloop()

更改 def 建筑规范:-

def Building():
for x in range (0,int(size)):
leo.fillcolor('darkslategrey')
leo.begin_fill()
leo.left(90)
leo.forward(bheight[x])
leo.right(90)
leo.forward(20)
leo.right(90)
leo.forward(bheight[x])
leo.left(90)
leo.end_fill()

您的代码中发生的事情是,每次您在哪里执行 -1+1 时,它将在第 0 个索引处获得值。而只是添加"x"。

最新更新