# Python Crash Course Exercises

This is an optional exercise to test your understanding of Python Basics. The questions tend to have a financial theme to them, but don't look to deeply into these tasks themselves, many of them don't hold any significance and are meaningless. If you find this extremely challenging, then you probably are not ready for the rest of this course yet and don't have enough programming experience to continue. I would suggest you take another course more geared towards complete beginners, such as Complete Python Bootcamp

## Exercises

Answer the questions or complete the tasks outlined in bold below, use the specific method described if applicable.

Given price = 300 , use python to figure out the square root of the price.

``````

In :

price = 300

``````
``````

In :

import math
math.sqrt( price )

``````
``````

Out:

17.320508075688775

``````
``````

In :

import math
math.sqrt( price )

``````
``````

Out:

17.320508075688775

``````

Given the string:

``````stock_index = "SP500"

``````

Grab '500' from the string using indexing.

``````

In :

stock_index = "SP500"

``````
``````

In :

stock_index[2:]

``````
``````

Out:

'500'

``````

Given the variables:

``````stock_index = "SP500"
price = 300

``````

Use .format() to print the following string:

``The SP500 is at 300 today.``
``````

In :

stock_index = "SP500"
price = 300

``````
``````

In :

print('The {quote} is at {price} today'.format(quote=stock_index,price=price))

``````
``````

The SP500 is at 300 today

``````

Given the variable of a nested dictionary with nested lists:

``````stock_info = {'sp500':{'today':300,'yesterday': 250}, 'info':['Time',[24,7,365]]}

``````

Use indexing and key calls to grab the following items:

• Yesterday's SP500 price (250)
• The number 365 nested inside a list nested inside the 'info' key.
``````

In :

stock_info = {'sp500':{'today':300,'yesterday': 250}, 'info':['Time',[24,7,365]]}

``````
``````

In :

stock_info['sp500']['yesterday']

``````
``````

Out:

250

``````
``````

In :

stock_info['info']

``````
``````

Out:

365

``````

Given strings with this form where the last source value is always separated by two dashes --

``````"PRICE:345.324:SOURCE--QUANDL"

``````

Create a function called source_finder() that returns the source. For example, the above string passed into the function would return "QUANDL"

``````

In :

def source_finder(str):
index = str.find('--')
return str[index + 2:]

``````
``````

In :

source_finder("PRICE:345.324:SOURCE--QUANDL")

``````
``````

Out:

'QUANDL'

``````

Create a function called price_finder that returns True if the word 'price' is in a string. Your function should work even if 'Price' is capitalized or next to punctuation ('price!')

``````

In :

def price_finder(str):
return str.upper().find('PRICE') != -1

``````
``````

In :

price_finder("What is the price?")

``````
``````

Out:

True

``````
``````

In :

price_finder("DUDE, WHAT IS PRICE!!!")

``````
``````

Out:

True

``````
``````

In :

price_finder("The price is 300")

``````
``````

Out:

True

``````
``````

In :

price_finder("There are no prize is 300")

``````
``````

Out:

False

``````

Create a function called count_price() that counts the number of times the word "price" occurs in a string. Account for capitalization and if the word price is next to punctuation.

``````

In :

def count_price(str):
return str.upper().count('PRICE')

``````
``````

In :

s = 'Wow that is a nice price, very nice Price! I said price 3 times.'

``````
``````

In :

count_price(s)

``````
``````

Out:

3

``````
``````

In :

s = 'ANOTHER pRiCe striNG should reTURN 1'

``````
``````

In :

count_price(s)

``````
``````

Out:

1

``````

Create a function called avg_price that takes in a list of stock price numbers and calculates the average (Sum of the numbers divided by the number of elements in the list). It should return a float.

``````

In :

def avg_price(prices):
return sum(prices) / len(prices)

``````
``````

In :

avg_price([3,4,5])

``````
``````

Out:

4.0

``````