Help in rock, paper, scissors, project

Hello, I am asked to write down a rock, paper, scissors game for school but whenever I type my decision like rock I always end up winning, and don’t lose. Not sure what is wrong.

Please don’t post screenshots; post the code, select it, and then click the </> button.

The problem is caused by the line:

computer = random.randint, var123,

computer will be a tuple that consists of the function random.randint and the value of var123.

random.choice would be a better choice. It’s in the docs.

I changed ‘randint’ to ‘choice’ but the same thing happens

Both random.randint and random.choice are functions that you should call. You’re not calling them, you’re making a tuple.

Yes, because it still means “make a tuple that contains two items: the function, and the var123 variable”, and does not mean “call the function, passing var123 as an argument”.

Put it another way - suppose I wrote this code:

users_pick = input, "-Hello, and welcome to Rock, Paper, Scissors.",

What’s wrong there?

there are no brackets, so would it be, computer = random.choice (var123)

You need to call random.choice, just as you are calling print:

computer = random.choice(var123)

If I had to guess, I’d say you are thinking “textually”, and that

computer = random.choice, var123,

would somehow combine the text used to define var123 to produce the function call, as if you had literally typed

computer = random.choice("paper", "rock", "scissors")

But that isn’t how Python works (and even if it were, you would be missing a pair of parentheses, because the correct call would be

computer = random.choice(("paper", "rock", "scissors"))


It worked and know the computer has its choice. Many answers are given " I finally lost ". Thank you so much. I will keep this in mind for other projects.