#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.")
score = 10
print(i)
print(score)
fish()
Когда я запускаю это, все, что я получаю, это число randint и 0 для оценки. Я не совсем уверен, что я здесь делаю не так.
Комментарии:
1. Ваша проблема не имеет ничего общего с
random.randint
и никак не связана с логикой if / elif; она связана со сравнением значений. Четко подумайте о том, что вы ожидаетеi == [0, 19]
иметь в виду, и почему это должно так означать.
Ответ №1:
Да, эм … это не так, как это работает. Вы сравниваете целое число со списком.
if 0 <= i < 20:
print("You caught nothing!")
elif 20 <= i < 40:
print("You caught a Minnow! 10 points.")
score = 10
Ответ №2:
Вы сравниваете целое число со списком.
Чтобы сделать то, что вы пытаетесь сделать, вот один из способов:
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
Ответ №3:
Что вы хотите сделать, это:
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
Ответ №4:
i
является int
, вы сравниваете int
со списком int
, вы должны:
if i in range(19)
...
elif i in range(20,39):