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 に答える