2011-11-13 13 views
1

これはもっと大きな問題の一部ですが、もし/ elif関数の場合にはいくつか問題があります。/elifの問題がrandom.randintの場合

def fish(): 
    import random 

    score = 0 

    i = random.randint(0,39) 

    if i == [0,19]: 
     print("You caught nothing!") 
    elif i == [20,39]: 
     print("You caught a Minnow! +10 points.") 
     score += 10 
    print(i) 
    print(score) 
fish() 

これを実行すると、ランダント番号が得られ、スコアは0になります。私はここで何が間違っているのか正確には分からない。

+1

問題は、「random.randint」とは関係なく、/ elifロジックの場合とは関係ありません。それは値を比較することと関係がある。あなたが期待していることについて、i == [0,19] 'が意味することを明確に考え、それがなぜそれを意味するのかを明確に考えてください。 –

答えて

1

整数をリストと比較しています。あなたが何をしようとして行うには

は、ここに一つの方法です:

if i in range(0, 20): 
    print("You caught nothing!") 
elif i in range(20, 40): 
    print("You caught a Minnow! +10 points.") 
    score += 10 
6

ええと、そういうわけではありません。整数をリストと比較しています。

if 0 <= i < 20: 
     print("You caught nothing!") 
    elif 20 <= i < 40: 
     print("You caught a Minnow! +10 points.") 
     score += 10 
+0

ああ、ありがとう。私は明らかにこれに新しいです。 – apichel

0

あなたが何をしたいです:

if i in range(20): 
    print("You caught nothing!") 
elif i in range(20,40): 
    print("You caught a Minnow! +10 points.") 
    score += 10 

それとも、より良い:

if i < 20: 
    print("You caught nothing!") 
else: 
    print("You caught a Minnow! +10 points.") 
    score += 10 
0

iintです。intと012のリストを比較していますs:

if i in range(19) 
... 
elif i in range(20,39): 
関連する問題