Purpose/Objectives: Teach student how to implement randomness into their code to make their code simulate real life situations.
In this lesson students will learn:
ADD YOUR ADDITIONAL NOTES HERE:
Random Values are a number generated using a large set of numbers and a mathematical algorithm which gives equal probability to all number occuring
Each Result from randomization is equally likely to occur Using random number generation in a program means each execution may produce a different result
What are Examples of Random outputs in the world? Add a few you can think of.
We Need Random Values for Code: The advantage of using mathematics to generate a random number (sequence) is that it is REPEATABLE. This is important for the following reason: debugging a program. Imagine the problems you already have finding errors in your code. What would happen if the "path" (or program flow) was different (random) every time?
import random
random_number = random.randint(1,100)
print(random_number)
def randomlist():
list = ["apple", "banana", "cherry", "blueberry"]
element = random.choice(list)
print(element)
randomlist()
Real Life Examples: Dice Roll
import random
for i in range(3):
roll = random.randint(1,6)
print("Roll " + str(i + 1) + ":" + str(roll))
def coinflip():
list = ["head", "tails"]
element = random.choice(list) ### Takes a random element of the lsit
print(element) ### Prints a random element of the list, which is either heads or tails
coinflip()
EXTRA: Create a function that will randomly select 5 playing Cards and check if the 5 cards are a Royal Flush
num = random.randint(1,1000) ### Takes a random number from 1 - 1000
def convert():
if num > 1:
# dividing num by 2
num//2
# Printing the module num when divded by 2
print(num%2, end = " This is the Binary Conversion ") ### Converting into binary
print("This is the hexadecimal of the number: " + hex(num)) ### Converting into hexadecimal
convert() #### Calling the function to convert to binary and both converting into hexadecimal
Purpose: Help students streamline and make their coding experience easier through built in packages and methods from a library
Objective: By the end of the lesson, students should be able to fluently use methods from the turtle and math packages, and be able to look up documentation for any python package and us it.
fill in the blanks!
Okay, so we've learned a lot of code, and all of you now can boast that you can code at least some basic programs in python. But, what about more advanced stuff? What if there's a more advanced program you don't know how to make? Do you need to make it yourself? Well, not always.
You've already learned about functions that you can write to reuse in your code in previous lessons. But,there are many others who code in python just like you. So why would you do again what someone has already done, and is available for any python user?
Packages allow a python user to import methods from a library, and use the methods in their code. Most libraries come with documentation on the different methods they entail and how to use them, and they can be found with a quick google search. methods are used with the following:
Some libraries are always installed, such as those with the list methods which we have previously discussed. But others require a special python keyword called import. We will learn different ways to import in Challenge 1.
Sometimes we only need to import a single method from the package. We can do that with the word "from", followed by the package name, then the word "import", then the method. This will alllow you to use the method without mentioning the package's name, unlike what we did before, however other methods from that package cannot be used. To get the best of both worlds you can use "*".
To import a method as an easier name, just do what we did first, add the word "as", and write the name you would like to use that package as.
from math import atan ### Importing only the method atan from math
num1 = atan(5) ### Setting the variable
print(num1)
Turtle is a python drawing library which allows you to draw all kinds of different shapes. It's ofter used to teach beginning python learners, but is really cool to use anywhere. Turtle employs a graphics package to display what you've done, but unfortunately it's kind of annoying to make work with vscode.
Use: repl.it
Click "+ Create", and for language, select "Python (with Turtle)"
Documentation
Task: Have fun with turtle! Create something that uses at least 2 lines of different lengths and 2 turns with different angles, and changes at least one setting about either the pen or canvas. Also use one command that isn't mentioned on the table below(there are a lot). Paste a screenshot of the code and the drawing from repl.it
Commands |
---|
forward(pixels) |
right(degrees) |
left(degrees) |
setpos(x,y) |
speed(speed) |
pensize(size) |
pencolor(color) |
Note: Color should be within quotes, like "brown", or "red"
from turtle import *
oogway = turtle.Turtle()
for i in range(4):
oogway.forward(50)
oogway.right(90)
turtle.done()
### Image is on the link
The math package allows for some really cool mathematical methods!
methods | Action |
---|---|
ceil(x) | Rounds to the Largest Integer |
__ | rounds to largest intefer less than or equal to x |
factorial(x) | Factors the Number |
GCD | returns the greatest common denominator of x and y |
lcm(x,y) | Returns the Least Common Demoninator |
from math import *
a = int(input("Enter your value:" ))
b = int(input("Enter your Value:" ))
def function():
### Rounding Up
print(ceil(a))
print(ceil(b))
### Rounding Down
print(floor(a))
print(floor(b))
### Using the Factorial Function
print(factorial(a))
print(factorial(b))
### Finding the Greatest Common Denominator
x = gcd(a,b)
print(x)
### Findng the tanget of numbers
num1 = atan(a)
num2 = atan(b)
print(num1)
print(num2)
function()
Option 1: Create a python program which generates a random number between 1 and 10, and use turtle to draw a regular polygon with that many sides. As a hint, remember that the total sum of all the angles in a polygon is (the number of sides - 2) * 180. Note: a regular polygon has all sides and angles the same size. Paste a screenshot of the code and the drawing from repl.it
Option 2: use the "datetime" package, and looking up documentation, create a program to generate 2 random dates and find the number of days between
Extra ideas: customize the settings, draw a picture, or something else!