# How to use list in roulette game?

I've just started learning Python so apologies if I am missing anything obvious here.

I am trying to create a roulette game based off a question on Code Academy. I have decided to use a list rather than randomint because I want to add 00 to the list. That is the first thing I'm struggling with as I have used append to try and add 00 but it only adds it as 0.

The second thing I'm struggling with is fixing this error:

TypeError: unsupported operand type(s) for %: 'list' and 'int'

My code is below so it is the roulette_number part which is not working as it's come from a list and is therefore not being recognised as an int. Any suggestions would be much appreciated!

``````from random import seed
from random import sample

# seed random number generator

seed (1) # Seed is a reference to your random number so if you reference the same seed you will always get the same random number. Even having this randint doesn't make a difference. So in that case it doesn't matter what number you put in the brackets next to the seed?

# prepare a sequence
n = 1
sequenceroulette = [i for i in range(37)] * n #The sequence is starting from 0 to 36
sequenceroulette.append(00) ## Try to work out how to add this as a double zero rather than one zero

print (sequenceroulette)

#select a subset without replacement

subset = sample(sequenceroulette,1) # we only want to pick 1 number a time from the list
print(subset)

roulette_number = subset

print (roulette_number)

money = 100

def roulette (Bet,Guess1, Guess2):
if roulette_number % 2 == 0 and Guess1 == "Even" and Guess2 == "N/A":
return (money - Bet) + (Bet * 2)
elif roulette_number % 1 == 1 and Guess1 == "Odd" and Guess2 == "N/A":
return (money - Bet) + (Bet * 2)
elif roulette_number == Guess1 and Guess2 == "N/A":
return (money - Bet) + (Bet *37)
elif roulette_number == Guess1 or roulette_number == Guess2:
return (money - Bet) + (Bet * 18.5)
else:
return money

print (roulette(10,"Even","N/A"))
``````

Replace this line:

``````roulette_number = subset
``````

By:

``````roulette_number = subset[0]
``````

Since subset if a list of one value you must get it to make the % operation

In Python, leading 0's are omitted when saving as an `int`. If you would like to store these, you need to save them as a string.

`sequenceroulette.append('00')`

In regards to your `TypeError`

TypeError: unsupported operand type(s) for %: 'list' and 'int'

You cannot use the operator `%` between an instance of `list` and `integer`.

This is due to how you're pulling one number from the `list` with ;

``````subset = sample(sequenceroulette,1)

#[8]
``````

Notice, `sample()` still returns your result, in a `list`. If you update your `roulette_number` to always call element `0` you can resolve this error.

``````roulette_number = subset[0]
``````

Hopefully this helps, if you want to do some more, indepth reading on some of the issues you encountered here are some links!

Operators

`random.sample()`

``````random.sample(population, k)
``````

is a method that returns a list of length k.

Therefore,

`````` sample(sequenceroulette,1)
``````

Will return a list with one number. In order to access this number in the list you need to do

``````roulette_number = subset[0]
``````

When you are starting out with Python it's important to remember what data types the methods you are using return and therefore you need to use them in your code accordingly :)