1

如果不使用我们尚未“学习”的任何东西,我很难让这项任务发挥作用......

我必须有一个全局定义的变量,例如:

x = [80, 70, 65, 60, 50, 40, 45, 40, 35, 7, 0]

给定这个全局变量,我需要用条件语句调用它的值来给出一个特定的结果。根据我们在课堂上的经历,我能想到的只有

x = [80, 70, 65, 60, 50, 40, 45, 40, 35, 7, 0]

if x >= 50:
    print("Good")
else:
    print("Bad")

这根本行不通……但是我必须要做的是:

for x in [80, 70, 65, 60, 50, 40, 45, 40, 35, 7, 0]:
    if x >= 50:
        print("Good")
    else:
        print("Bad")

显然,这对于赋值来说是不可接受的,因为全局变量没有按应有的方式定义。此外,分配处理海龟模块,海龟的特征将根据列表中的整数值而改变。

所以现在我已经在这里给出了一个与作业更直接相关的例子的答案。

import turtle

def drawBar(t, height):
    t.begin_fill()
    t.left(90)
    t.forward(height)
    t.write('  '+ str(height))
    t.right(90)
    t.forward(40)
    t.right(90)
    t.forward(height)
    t.left(90)
    t.end_fill()
    if height >= 50:
        t.fillcolor("blue")
    elif height < 50 and height >= 30:
        t.fillcolor("yellow")
    else:
        t.fillcolor("red")

xs = [80, 70, 65, 60, 50, 40, 45, 40, 70, 7, 0]

maxheight = max(xs)
numbars = len(xs)
border = 10

bob = turtle.Turtle()
bob.color("blue")
bob.pensize(3)

wn = turtle.Screen()
wn.bgcolor("lightgreen")
wn.setworldcoordinates(0-border,0-border,40*numbars+border,maxheight+border)

for a in xs:
    drawBar(bob, a)

wn.exitonclick()

所以现在我已经到这里了,if 语句并不能准确地反映程序中每个条的高度,它似乎给出了几乎随机的颜色,但颜色总是组合在一起(它们不应该是)。我需要每个条根据其高度为某种颜色,例如高于 50 为蓝色,低于 50 但等于或超过 30 为黄色,其他一切为红色。

4

2 回答 2

4
for a in x:
    if a >= 50:
        print("Good")
    else:
        print("Bad")

这是你想要的?

确保您的“a”变量实际上是一个整数:

>>> str(1)>=5
True
于 2013-01-06T02:29:37.757 回答
2

您可以直接在for循环中使用列表,如下所示:

for y in x:
    if y >= 50:
        print("Good")
    else:
        print("Bad")

更新 :

这是更新的drawBar功能。问题是,你必须设置fillcolor之前的绘图。

def drawBar(t, height):
    if height >= 50:
        t.fillcolor("blue")
    elif height < 50 and height >= 30:
        t.fillcolor("yellow")
    else:
        t.fillcolor("red")

    t.begin_fill()
    t.left(90)
    t.forward(height)
    t.write('  '+ str(height))
    t.right(90)
    t.forward(40)
    t.right(90)
    t.forward(height)
    t.left(90)
    t.end_fill()

输出:

在此处输入图像描述

于 2013-01-06T02:31:15.427 回答