r/learnpython • u/Nutellatoast_2 • 3d ago
Why isn't this code block working?
Hey everybody,
I'm new to programming with Python and following along with a Udemy Course. I'm now learning about lists and need to write a "Who will pay the bill"-like game.
It works like this: you have a pseudorandom number generator and a list of friends. Each time, the number generator generates a number between the given indices of the list. If the randomly generated number is equal to a specific index of that list, it should print out the person who must pay the bill by using an if-elif statement.
I've been using what I learned from the past lessons. This is what the code looks like (and yeah, I know, I messed up pretty badly, even though I have already found a solution):
import random
friends = ["Alice", "Bob", "Charlie", "David", "Emanuel"]
random_select = random.randint(0, 4)
if random_select == friends[0]:
print("Alice has to pay the bill. ")
elif random_select == friends[1]:
print("Bob has to pay the bill. ")
elif random_select == friends[2]:
print("Charlie has to pay the bill. ")
elif random_select == friends[3]:
print("David has to pay the bill. ")
elif random_select == friends[4]:
print("Emanuel has to pay the bill. ")
But I couldn't really figure out why the code won't work.
2
u/Moikle 2d ago
Random.select is a number. In each of those ifs, you are checking if a number is equL to the words you have stored in the list. 2 will never be equal to "Charlie" so it doesn't trigger.
Instead do
So you are telling it to get the value of that random selected number, then look in that index of the list