1

2 + 4

2 - 3

100 *  5

4 / 2

4 / 3

4 % 3

type(3)

type(3.5)

"""
Explanation: A Crash Course In Python And Manipulation of Data
My objective for this lesson is to make you aware of python and its usefulness in wrangling with data. 
We are going to start slow with data types and expressions. Eventually, by the end of the lesson, we will programmatically genrerate data and then use a sophisticated library to help us manage and visualize it all.
Data Types
Numbers
End of explanation
"""


"Cats"

'Dogs'

'Hello World'

"I can't wait to program for the rest of my life"

"My name is " + "Andre"

type("Cats")

type("Doge")

"""
Explanation: Strings
End of explanation
"""


[1, 2, 3]

[100, 4, 12, 45]

["Cat", "Dog", "Zebra"]

"""
Explanation: Arrays
End of explanation
"""


x = 4

x

x + 2

my_sweet_ride = "ferrari"

my_sweet_ride

my_name = "Andre"
"My name is " + my_name

type(x)

type(my_sweet_ride)

x = 4
y = 100
z = x * y

z

my_array = [100, 67, 4, 101]

my_array[0]

my_array[1]

my_array[2]

# This will error out because the index is asking for a location that is not in the
# array (out of range).
my_array[4]

# Access an index using a var!
pointless_var = 2
my_array[pointless_var]

my_array[0:3]

string_1 = "We are so lame."
string_1[0]

string_1[0:10]

new_string = string_1[0:10] + "cool."
new_string

"""
Explanation: Variables
variable_name_here = expression_here
End of explanation
"""


odds = [1, 3, 5, 7]
print('odds are:', odds)

odds.append(11)
print('odds after adding a value:', odds)

del(odds[0])
print('odds after removing the first element:', odds)

odds.reverse()
print('odds after reversing:', odds)

odds = [1, 3, 5, 7]
print('odds are:', odds)
odds = odds + [11]
print('odds are:', odds)

"""
Explanation: There are many ways to change the contents of lists besides assigning new values to individual elements:
End of explanation
"""


first_dict = {}

first_dict

first_dict["x"] = "some_var"

first_dict

first_dict[x] = 4

first_dict

second_dict = {"key_value": "value", "second_key_value": "second_value"}

second_dict

second_dict["key_value"]

second_dict["second_key_value"]

"""
Explanation: Dictionaries
End of explanation
"""


True

False

1 == 1

2 == 1

1 < 10

1 <= 10

1 > 10

1 >= 10

"dogs are better than cats" == "dogs are better than cats"

"dogs" == "cats"

"abc" < "def"

"abc" > "def"

"a" < "b"

"a" > "b"

"""
Explanation: Exercise Block #1
Create two python variables that will add up to 100.
Add two python strings together to create a sentence.
Create an array with number values only and assign it to a variable name. Then access the first element of that array.
Create a dictionary and access a few values from it
Boolean Logic
End of explanation
"""


x = 5

if x < 10:
    print("This workshop is okay")


x = 11

if x < 10:
    print("This workshop is okay")
else:
    print("This workshop is lame")

str_1 = "Andre"

if str_1 == "Andre":
    print("Welcome to the danger zone")

my_var = 50

if my_var > 100:
    print("Large value")
    y = 10  # Example of doing different types of expressions and statements
elif my_var > 10:
    print("Medium value")
    y = 5
else:
    print("Small value")
    y = 0

"""
Explanation: Logic Flow
End of explanation
"""


list_of_elements = [1, 2, 3, 4]
# This could take a while to add everything by hand.

# This could take a while to add everything by hand.
for value in range(0, 10):
    print(value)

total_sum = 0
for value in range(0, 10):
    total_sum = total_sum + value
total_sum

list_of_elements = []
for value in range(0, 10):
    list_of_elements.append(value)
list_of_elements

# We can also start looping through all these values
for new_value in list_of_elements:
    print(new_value * 2)


word = 'lead'
for char in word:
    print(char)

"""
Explanation: Looping
End of explanation
"""


