带有random.randint的Python if/elif问题

带有random.randint的Python if/elif问题,python,python-3.x,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.")

这是一个更大问题的一部分,但我对这个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代表分数。我不确定我到底做错了什么。

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

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

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

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

如果0将整数与列表进行比较

    if 0 <= i < 20:
        print("You caught nothing!")
    elif 20 <= i < 40:
        print("You caught a Minnow! +10 points.")
        score += 10
要做你想做的事,有一种方法:

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

您正在将整数与列表进行比较

    if 0 <= i < 20:
        print("You caught nothing!")
    elif 20 <= i < 40:
        print("You caught a Minnow! +10 points.")
        score += 10
要做你想做的事,有一种方法:

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

您要做的是:

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
如果i<20:
打印(“你什么也没抓到!”)
其他:
打印(“你捉到了一条小鱼!+10点。”)
分数+=10

您要做的是:

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
如果i<20:
打印(“你什么也没抓到!”)
其他:
打印(“你捉到了一条小鱼!+10点。”)
分数+=10

i
是一个
int
,如果要将
int
int
列表进行比较,您应该:

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

i
是一个
int
,如果要将
int
int
列表进行比较,您应该:

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

您的问题与
random.randint
无关,与if/elif逻辑无关;这与比较数值有关。清楚地思考你期望的
i==[0,19]
是什么意思,以及为什么它应该是这个意思。你的问题与
random.randint
无关,与if/elif逻辑无关;这与比较数值有关。清楚地想想你期望的
i==[0,19]
是什么意思,以及为什么它应该是这个意思。