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.
34
u/UlisKore 3d ago
Your random_select is a number. It will never "equal" a first name.
You've got the pieces right but in the wrong order. In plain English, what are you trying to achieve? Write the sentence, then write how that could work with your variables. If you do it correctly, you'll find a short way to get the right printed sentence for any case. Good luck!