Python如果/ elif与random.randint一起出现问题

时间:2011-11-13 02:58:20

标签: python python-3.x

这是一个更大问题的一部分,但我在使用if / elif函数时遇到了一些问题。

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()

当我运行时,我得到的是randint数字,得分为0。我不确定我在这里做错了什么。

4 个答案:

答案 0 :(得分:6)

是的,嗯......这不是它的工作原理。您正在将整数与列表进行比较。

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

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

iint,您要将intint列表进行比较,您应该:

if i in range(19)
...
elif i in range(20,39):