Python中if/elif与random.randint的问题

1 投票
4 回答
1299 浏览
提问于 2025-04-17 06:12

这是一个更大问题的一部分,但我在这个 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()

当我运行这个代码时,我得到的只是一个随机整数,还有分数为 0。我不太确定我哪里出错了。

4 个回答

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
6

嗯...这不是正确的做法。你把一个整数和一个列表在比较。

    if 0 <= i < 20:
        print("You caught nothing!")
    elif 20 <= i < 40:
        print("You caught a Minnow! +10 points.")
        score += 10
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

撰写回答