Day 4, Randomization and Python Lists

Day 4, Randomization and Python Lists

Yes, From the title you can understand today's concept is about Randomization and Python lists. At the end of the day, we can create a simple Rock-Paper-Scissors game.

Randomization

It is a very important topic when we need to create a computer program with unpredictability.

To generate a random number first, we should import it

import random

To generate integer random numbers

random.randint(1,10)

Here random numbers are generated between 1 to 10, including 1 and 10.

Random float numbers are generated by

random.random()

This statement generates random numbers between 0.0 to 1.0, including 0.0 but excluding 1.0. But, to generate numbers other than the index of 0, multiply the random number by any integer.

Remember the love calculator we made on day 3, the code for that can be reduced greatly as

import random
ls = random.randint(1,100)
print(f"Your love score is {ls}")

This program simply generates a random number between 1 and 100.

Now, let's do a simple Heads or Tails program ( Virtual coin toss program)

Seed: One of the easiest ways for making a computer to generate some random numbers or random sequences.

import random
test_seed = int(input("Create a seed number: "))
random.seed(test_seed)
random_number = random.randint(0,1)
if random_number == 1:
    print("Heads")
else:
    print("Tails")

Normally, random number generator in python uses the current timestamp as the seed, but we can in fact change the seed to something we want to be like this

random.seed(123)
# random numbers generated by this always will be the same value

Python lists

-> It is the way of organizing and storing data in python.

-> Just like data structure.

-> Any data types can be stored.

states_of_india = ["AP", "TN", "TS"]
print(states_of_india[0]) #1
print(states_of_india[-1]) #2
states_of_india[1] = "Jk" #3
print(states_of_india) #4
states_of_india.append("HR") #5
states_of_india.extend(["AS", "KL", "KR"]) #6
print(states_of_india) #7
  1. Output is AP
  2. Output is TS
  3. Changes value of TN to JK
  4. Output will be ["AP", "JK", "TS"]
  5. ["AP", "JK", "TS", "HR"] adds HR at the last of the list
  6. ["AP", "JK", "TS", "HR", "AS", "KL", "KR"] adds new list at end of list.

It's better to refer to the documentation of lists.

One gets the doubt why the 1st element is 0, because of the offset from the right side of the equality sign. As the 1st element has the offset 0.

Negative numbers are also used which starts counting from the end of the list.

Who is playing the bill program

import random
test_seed = int(input("Create a seed number: "))
random.seed(test_seed)
name = input("Enter the names to pay the bill seperated by comma ")
names = name.split(",")
print(names)
print(len(names))
choice = random.randint(0,len(names)-1)
pay_bill = names[choice]
print(pay_bill + " is going to buy meal today.")

split function divides the string into certain components based on some divider. And finally forms a list.

Sample program using lists

row1 = ["⬜️","⬜️","⬜️"]
row2 = ["⬜️","⬜️","⬜️"]
row3 = ["⬜️","⬜️","⬜️"]
map = [row1, row2, row3]
print(f"{row1}\n{row2}\n{row3}")
position = input("Where do you want to put the treasure? ")
n = int(position[0])
m = int(position[1])
map[m -1][n-1] = "X"
print(f"{row1}\n{row2}\n{row3}")

Index errors: If the index is out of bounds i.e, it exceeds the scope of list.

Finally, That's the end of day-4 and the final project of the day Rock-Paper-Scissors program is here

import random
rock = '''
    _______
---'   ____)
      (_____)
      (_____)
      (____)
---.__(___)
'''

paper = '''
    _______
---'   ____)____
          ______)
          _______)
         _______)
---.__________)
'''

scissors = '''
    _______
---'   ____)____
          ______)
       __________)
      (____)
---.__(___)
'''
game_images = [rock, paper, scissors]
get_input = int(input("What do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors "))
print(game_images[get_input])
comp_random = random.randint(0,2)
print("Computer Choice: ")
print(game_images[comp_random])
if get_input >= 3 or get_input < 0:
  print("Invalid number, You lose")
elif get_input ==0 and comp_random ==2:
  print("You win")
elif comp_random ==0 and get_input ==2:
  print("You lose")
elif comp_random > get_input:
  print("You lose")
elif get_input > comp_random:
  print("You win")
elif comp_random == get_input:
  print("Draw Game")
elif get_input>=3 or get_input<0:
  print("Invalid number, You lose")