From 61e12c04407464384a8b5747952cf7eaab49daa0 Mon Sep 17 00:00:00 2001 From: Susan Rees Date: Sun, 21 Feb 2016 16:05:05 -0800 Subject: [PATCH 1/5] completed printGrid, lists, and dict labs --- .../JohnRudolph/session4/sherlock_small.txt | 16 ++++++ students/susanRees/session02/PrintGrid.py | 35 ++++++++---- students/susanRees/session03/Lists.py | 14 ++--- students/susanRees/session04/DictionaryLab.py | 53 +++++++++++++------ 4 files changed, 85 insertions(+), 33 deletions(-) create mode 100644 students/JohnRudolph/session4/sherlock_small.txt diff --git a/students/JohnRudolph/session4/sherlock_small.txt b/students/JohnRudolph/session4/sherlock_small.txt new file mode 100644 index 0000000..dad12e2 --- /dev/null +++ b/students/JohnRudolph/session4/sherlock_small.txt @@ -0,0 +1,16 @@ +One night--it was on the twentieth of March, 1888--I was +returning from a journey to a patient (for I had now returned to +civil practice), when my way led me through Baker Street. As I +passed the well-remembered door, which must always be associated +in my mind with my wooing, and with the dark incidents of the +Study in Scarlet, I was seized with a keen desire to see Holmes +again, and to know how he was employing his extraordinary powers. +His rooms were brilliantly lit, and, even as I looked up, I saw +his tall, spare figure pass twice in a dark silhouette against +the blind. He was pacing the room swiftly, eagerly, with his head +sunk upon his chest and his hands clasped behind him. To me, who +knew his every mood and habit, his attitude and manner told their +own story. He was at work again. He had risen out of his +drug-created dreams and was hot upon the scent of some new +problem. I rang the bell and was shown up to the chamber which +had formerly been in part my own. diff --git a/students/susanRees/session02/PrintGrid.py b/students/susanRees/session02/PrintGrid.py index f8c8fbe..dba0eb0 100644 --- a/students/susanRees/session02/PrintGrid.py +++ b/students/susanRees/session02/PrintGrid.py @@ -21,23 +21,38 @@ def print_column(): print_column() print_row() - print_grid(10) def second_grid(x, y): - n = (y-1) - for n in range(0, n): - def print_rows(): + n = (x + 1) + m = (n - 1) + for m in range(0, m): + def print_row(): print('+', end=' '), print('-' * y, end=' '), - print_rows() - print('+') - def print_columns(): + def print_rows(): + n = (x + 1) + m = (n - 1) + for m in range (0, m): + print_row() + def print_column(): print('|', end=' '), print(' ' * y, end=' '), - print_columns() - print('|') + def print_columns(): + n = (x + 1) + m = (n - 1) + for m in range (0, m): + print_column() + print_rows() + print('+') + def print_mult_columns(): + n = (y + 1) + m = (n - 1) + for m in range (0, m): + print_columns() + print('|') + print_mult_columns() print_rows() print('+') -second_grid(3, 4) +second_grid(4, 10) diff --git a/students/susanRees/session03/Lists.py b/students/susanRees/session03/Lists.py index cd42047..c5eb81c 100644 --- a/students/susanRees/session03/Lists.py +++ b/students/susanRees/session03/Lists.py @@ -95,16 +95,16 @@ # Make a copy of the original list -backwards_fruits = fruits[0:-1] +backwards_fruits = fruits[:] # reverse the letters in each fruit in the copy. -# for bwards in backwards_fruits: - -# print(backwards_fruits) +for item in backwards_fruits[:]: + bward_item = item[::-1] + backwards_fruits.append(bward_item) # Delete the last item of the original list. -# fruits.pop(-1) +fruits.pop(-1) # Display the original list and the copy. -# print(fruits) -# print(backwards_fruits) +print(fruits) +print(backwards_fruits) diff --git a/students/susanRees/session04/DictionaryLab.py b/students/susanRees/session04/DictionaryLab.py index e8f93b5..d04f381 100644 --- a/students/susanRees/session04/DictionaryLab.py +++ b/students/susanRees/session04/DictionaryLab.py @@ -1,51 +1,72 @@ # Create a dictionary containing “name”, “city”, and “cake” # for “Chris” from “Seattle” who likes “Chocolate”. -dict = {'name': "Chris", 'city': "Seattle", 'cake': "Chocolate"} +stuff = {'name': "Chris", 'city': "Seattle", 'cake': "Chocolate"} # Display the dictionary. -print(dict) +print(stuff) # Delete the entry for “cake”. -dict.pop('cake') +stuff.pop('cake') # Display the dictionary. -print(dict) +print(stuff) # Add an entry for “fruit” with “Mango” and display the dictionary. -dict.update({'fruit': "Mango"}) +stuff.update({'fruit': "Mango"}) -print(dict) +print(stuff) # Display the dictionary keys. -print(dict.keys()) +print(stuff.keys()) # Display the dictionary values. -print(dict.values()) +print(stuff.values()) # Display whether or not “cake” is a key in the dictionary (i.e. False) (now). -print("True" if 'cake' in dict else "False") +print("True" if 'cake' in stuff else "False") # Display whether or not “Mango” is a value in the dictionary (i.e. True). -print("True" if "Mango" in dict.values() else "False") +print("True" if "Mango" in stuff.values() else "False") # Using the dictionary from item 1: # Make a dictionary using same keys but with the number of ‘t’s in each value. -# Not sure I understand the assingment... +stuff = {'name': "Chris".count("t"), 'city': "Seattle".count("t"), 'cake': "Chocolate".count("t")} +print(stuff) # Create sets s2, s3 and s4 containing numbers from 0-20, divisible 2, 3 and 4. -s2 = set([1:20]) -s3 = set([1:20]) -s4 = set([1:20]) +s2 = set([x for x in range(0, 20) if x % 2 == 0]) +s3 = set([x for x in range(0, 20) if x % 3 == 0]) +s4 = set([x for x in range(0, 20) if x % 4 == 0]) # Display the sets. +print(s2) +print(s3) +print(s4) # Display if s3 is a subset of s2 (False) +if s3.issubset(s2): + print(True) +else: + print(False) # and if s4 is a subset of s2 (True). +if s4.issubset(s2): + print(True) +else: + print(False) -# Create a set with the letters in ‘Python’ and add ‘i’ to the set. +# Create a set with the letters in ‘Python’ +python = set(["p", "y", "t", "h", "o", "n"]) + +#add ‘i’ to the set. +python.update(["i"]) +print(python) # Create a frozenset with the letters in ‘marathon’ +marathon = frozenset(["m", "a", "r", "a", "t", "h", "o", "n"]) +print(marathon) -# display the union and intersection of the two sets. \ No newline at end of file +# display the union and intersection of the two sets. +print(marathon.union(python)) +print(marathon.intersection(python)) \ No newline at end of file From 71f7cc3296bc568d6f02b984f68f87d0e3fc343d Mon Sep 17 00:00:00 2001 From: Susan Rees Date: Sun, 21 Feb 2016 16:20:35 -0800 Subject: [PATCH 2/5] created folders for sessions 7 thru 9, working files for labs: Comprehensions, Exceptions, Path File Processing, Testing, Passing Functions to Functions, Trapezoidal, HTML Renderer, Circle Class, Sparse Array, and Lambda Keyword Magic --- .../{session06/exceptions.py => session05/comprehensions.py} | 0 students/susanRees/session05/exceptions.py | 0 students/susanRees/session05/pathFileProcessing.py | 0 students/susanRees/session05/testing.py | 0 students/susanRees/session06/functions.py | 0 students/susanRees/session06/trapezoidal.py | 0 students/susanRees/session07/htmlRenderer.py | 0 students/susanRees/session08/circleClass.py | 0 students/susanRees/session08/sparseArray.py | 0 students/susanRees/session09/lambdaKeywordMagic.py | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename students/susanRees/{session06/exceptions.py => session05/comprehensions.py} (100%) create mode 100644 students/susanRees/session05/exceptions.py create mode 100644 students/susanRees/session05/pathFileProcessing.py create mode 100644 students/susanRees/session05/testing.py create mode 100644 students/susanRees/session06/functions.py create mode 100644 students/susanRees/session06/trapezoidal.py create mode 100644 students/susanRees/session07/htmlRenderer.py create mode 100644 students/susanRees/session08/circleClass.py create mode 100644 students/susanRees/session08/sparseArray.py create mode 100644 students/susanRees/session09/lambdaKeywordMagic.py diff --git a/students/susanRees/session06/exceptions.py b/students/susanRees/session05/comprehensions.py similarity index 100% rename from students/susanRees/session06/exceptions.py rename to students/susanRees/session05/comprehensions.py diff --git a/students/susanRees/session05/exceptions.py b/students/susanRees/session05/exceptions.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session05/pathFileProcessing.py b/students/susanRees/session05/pathFileProcessing.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session05/testing.py b/students/susanRees/session05/testing.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session06/functions.py b/students/susanRees/session06/functions.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session06/trapezoidal.py b/students/susanRees/session06/trapezoidal.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session07/htmlRenderer.py b/students/susanRees/session07/htmlRenderer.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session08/circleClass.py b/students/susanRees/session08/circleClass.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session08/sparseArray.py b/students/susanRees/session08/sparseArray.py new file mode 100644 index 0000000..e69de29 diff --git a/students/susanRees/session09/lambdaKeywordMagic.py b/students/susanRees/session09/lambdaKeywordMagic.py new file mode 100644 index 0000000..e69de29 From 9d25e3a3753a597b025ea52cc2e32b8ed4ff5ff6 Mon Sep 17 00:00:00 2001 From: Susan Rees Date: Mon, 22 Feb 2016 08:25:07 -0800 Subject: [PATCH 3/5] completed exceptions lab, created working file for exceptions lab --- students/susanRees/session05/comprehensions.py | 8 ++++++++ students/susanRees/session05/exceptions.py | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/students/susanRees/session05/comprehensions.py b/students/susanRees/session05/comprehensions.py index e69de29..1d9c904 100644 --- a/students/susanRees/session05/comprehensions.py +++ b/students/susanRees/session05/comprehensions.py @@ -0,0 +1,8 @@ +feast = ['lambs', 'sloths', 'orangutans', 'breakfast cereals', 'fruit bats'] +comprehension = [delicacy.capitalize() for delicacy in feast] +print(comprehension[0]) +print(comprehension[2]) + +comp = [delicacy for delicacy in feast if len(delicacy) > 6] +print(len(feast)) +print(len(comp)) diff --git a/students/susanRees/session05/exceptions.py b/students/susanRees/session05/exceptions.py index e69de29..aef7263 100644 --- a/students/susanRees/session05/exceptions.py +++ b/students/susanRees/session05/exceptions.py @@ -0,0 +1,12 @@ +# Create a wrapper function, safe_input() +# returns None rather rather than raising the exceptions EOFError or KeyboardInterrupt +# when user enters ^C for Keyboard Interrupt, or ^D (^Z on Windows) for End Of File. + +def safe_input(): + try: + input("Type something here") + except (EOFError, KeyboardInterrupt): + return None + else: + print("Thanks.") +safe_input() From f5d6afdbff117ada966d0b168b53746627792b77 Mon Sep 17 00:00:00 2001 From: Susan Rees Date: Sun, 6 Mar 2016 11:00:45 -0800 Subject: [PATCH 4/5] added working file for lightening talk --- .../LighteningTalkFiles/lighteningTalk.py | 44 ++++++++++++++++++ .../LighteningTalkFiles/surveyData.xls | Bin 0 -> 119296 bytes .../susanRees/session05/comprehensions.py | 28 +++++++++++ 3 files changed, 72 insertions(+) create mode 100644 students/susanRees/LighteningTalkFiles/lighteningTalk.py create mode 100644 students/susanRees/LighteningTalkFiles/surveyData.xls diff --git a/students/susanRees/LighteningTalkFiles/lighteningTalk.py b/students/susanRees/LighteningTalkFiles/lighteningTalk.py new file mode 100644 index 0000000..0b2fbe9 --- /dev/null +++ b/students/susanRees/LighteningTalkFiles/lighteningTalk.py @@ -0,0 +1,44 @@ +# the program opens the workbook by importing the openpyxl module and calling the openpyxl.load_workbook() function. +import openpyxl + wb = openpyxl.load_workbook('surveyData.xls') + +# calls the get_sheet_by_name function to get the worksheet object +sheet = wb.get_sheet_by_name('Sheet1') + +# Use indexing or the cell() sheet method with row and column keyword arguments to pull values from all cells in one column. puts them into a list (I think the default for this method is a tuple, does that work here or do we need to push it into a list instead)? +rawAgeData = sheet.columns[‘S’] + +# puts them in order (alphabetically for strings or numerically for integers) using sorting? Look up dictionary/list labs +ageDataOrdered = sorted(rawAgeData): + +# Using a for loop? counts the total number of entries, creates dictionary with unique entries (age) as keys, and the number of times each entry appears as value? +for i in ageDataOrdered: + counts = Counter(ageDataOrdered) + +# in new dictionary? iterates through dict values and divides by total number of entries to provide the percentage (new value) of the whole that each unique entry group (keys) represents +# sorts entries (keys) by percentage (value) so we can see the order of importance. + def report(): + for key, values in (ageDataOrdered.items()): + numAges = len(key) + percentAge = int(value/numAges) + +# Displays them in a pie (lol) chart or bar graph of some sort? +import openpyxl +wb = openpyxl.Workbook() +sheet = wb.get_active_sheet() +for i in range(1, 11): # create some data in column A + sheet['A' + str(i)] = i + +refObj = openpyxl.charts.Reference(sheet, (1, 1), (10, 1)) + +seriesObj = openpyxl.charts.Series(refObj, title='First series') + +chartObj = openpyxl.charts.PieChart() # can also use BarChart +chartObj.append(seriesObj) +chartObj.drawing.top = 50 # set the position +chartObj.drawing.left = 100 +chartObj.drawing.width = 300 # set the size +chartObj.drawing.height = 200 + +sheet.add_chart(chartObj) +wb.save('sampleChart.xlsx') diff --git a/students/susanRees/LighteningTalkFiles/surveyData.xls b/students/susanRees/LighteningTalkFiles/surveyData.xls new file mode 100644 index 0000000000000000000000000000000000000000..a002ce6f11a082478a53ace65c53f366aa19351f GIT binary patch literal 119296 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 literal 0 HcmV?d00001 diff --git a/students/susanRees/session05/comprehensions.py b/students/susanRees/session05/comprehensions.py index 1d9c904..958053f 100644 --- a/students/susanRees/session05/comprehensions.py +++ b/students/susanRees/session05/comprehensions.py @@ -6,3 +6,31 @@ comp = [delicacy for delicacy in feast if len(delicacy) > 6] print(len(feast)) print(len(comp)) + +list_of_tuples = [(1, 'lumberjack'), (2, 'inquisition'), (4, 'spam')] +comprehension = [skit * number for number, skit in list_of_tuples] +print(comprehension[0]) +print(len(comprehension[2])) + +eggs = ['poached egg', 'fried egg'] +meats = ['lite spam', 'ham spam', 'fried spam'] +comprehension = ['{0} and {1}'.format(egg, meat) for egg in eggs for meat in meats] +print(len(comprehension)) +print(comprehension[0]) + +comprehension = {x for x in 'aabbbcccc'} +print(comprehension) + +dict_of_weapons = {'first': 'fear', 'second': 'surprise', 'third':'ruthless efficiency', 'forth':'fanatical devotion', 'fifth': None} +dict_comprehension = {k.upper(): weapon for k, weapon in dict_of_weapons.iteritems() if weapon} +print('first' in dict_comprehension) +print('FIRST' in dict_comprehension) +print(len(dict_of_weapons)) +print(len(dict_comprehension)) + +#count_evens([2, 1, 2, 3, 4]) == 3 +#count_evens([2, 2, 0]) == 3 +#count_evens([1, 3, 5]) == 0 + +#def count_evens(nums): +# one_line_comprehension_here From 5c340cf9385055bf2292926c9a3e00d4e3da34ce Mon Sep 17 00:00:00 2001 From: Susan Rees Date: Wed, 9 Mar 2016 19:40:30 -0800 Subject: [PATCH 5/5] added lightening talk files --- .../LighteningTalkFiles/lighteningTalk.py | 93 +++++++++++------- .../lighteningTalkPandas.py | 42 ++++++++ .../LighteningTalkFiles/surveyData.xlsx | Bin 0 -> 42504 bytes 3 files changed, 101 insertions(+), 34 deletions(-) create mode 100644 students/susanRees/LighteningTalkFiles/lighteningTalkPandas.py create mode 100644 students/susanRees/LighteningTalkFiles/surveyData.xlsx diff --git a/students/susanRees/LighteningTalkFiles/lighteningTalk.py b/students/susanRees/LighteningTalkFiles/lighteningTalk.py index 0b2fbe9..39867b6 100644 --- a/students/susanRees/LighteningTalkFiles/lighteningTalk.py +++ b/students/susanRees/LighteningTalkFiles/lighteningTalk.py @@ -1,44 +1,69 @@ -# the program opens the workbook by importing the openpyxl module and calling the openpyxl.load_workbook() function. -import openpyxl - wb = openpyxl.load_workbook('surveyData.xls') +#################### +## import modules ## +#################### -# calls the get_sheet_by_name function to get the worksheet object -sheet = wb.get_sheet_by_name('Sheet1') +# the program opens the workbook by importing the openpyxl module and calling +# the openpyxl.load_workbook() function. +import openpyxl as op +wb = openpyxl.load_workbook('surveyData.xlsx') -# Use indexing or the cell() sheet method with row and column keyword arguments to pull values from all cells in one column. puts them into a list (I think the default for this method is a tuple, does that work here or do we need to push it into a list instead)? -rawAgeData = sheet.columns[‘S’] +def get_age_groups(my_sheet, my_column): + # calls the get_sheet_by_name function to get the worksheet object + sheet = wb.get_sheet_by_name(my_sheet) + # Use the cell() sheet method with row and column keyword arguments + # to pull values from all cells in one column. puts them into a tuple. + rawAgeData = sheet.columns[my_column] + for cellObj in sheet.columns[my_column]: + print(cellObj.value) + # puts them in order + ageDataOrdered = [sorted(rawAgeData)] + # Using a for loop? counts the total number of entries, creates dictionary + # with unique entries (age) as keys, and the number of times each entry + # appears as value? + ageGroups = {} + for items in ageDataOrdered: + if items == items: + ageGroups = {counts(items)} + # remove duplicate items?? use itertools + else: + ageGroups = {counts(items)} + # in new dictionary? iterates through dict values and divides by total + # number of entries to provide the percentage (new value) of the whole that + # each unique entry group (keys) represents + # sorts entries (keys) by percentage (value) to see the order of importance + for keys, values in (ageGroups.items()): + numAges = len(keys) + percentAge = int(values/numAges) + finalNums = {percentAge} + sorted(finalNums, percentAge) -# puts them in order (alphabetically for strings or numerically for integers) using sorting? Look up dictionary/list labs -ageDataOrdered = sorted(rawAgeData): +# starts program +if __name__ == '__main__': + my_script.main() -# Using a for loop? counts the total number of entries, creates dictionary with unique entries (age) as keys, and the number of times each entry appears as value? -for i in ageDataOrdered: - counts = Counter(ageDataOrdered) - -# in new dictionary? iterates through dict values and divides by total number of entries to provide the percentage (new value) of the whole that each unique entry group (keys) represents -# sorts entries (keys) by percentage (value) so we can see the order of importance. - def report(): - for key, values in (ageDataOrdered.items()): - numAges = len(key) - percentAge = int(value/numAges) +my_sheet = 'path to excel sheet' # Displays them in a pie (lol) chart or bar graph of some sort? -import openpyxl -wb = openpyxl.Workbook() -sheet = wb.get_active_sheet() -for i in range(1, 11): # create some data in column A - sheet['A' + str(i)] = i +# example from automate the borimg stuff below. +# import openpyxl +# wb = openpyxl.Workbook() +# sheet = wb.get_active_sheet() +# for i in range(1, 11): # create some data in column A +# sheet['A' + str(i)] = i + +# refObj = openpyxl.charts.Reference(sheet, (1, 1), (10, 1)) -refObj = openpyxl.charts.Reference(sheet, (1, 1), (10, 1)) +# seriesObj = openpyxl.charts.Series(refObj, title='First series') -seriesObj = openpyxl.charts.Series(refObj, title='First series') +# chartObj = openpyxl.charts.PieChart() # can also use BarChart +# chartObj.append(seriesObj) +# chartObj.drawing.top = 50 # set the position +# chartObj.drawing.left = 100 +# chartObj.drawing.width = 300 # set the size +# chartObj.drawing.height = 200 -chartObj = openpyxl.charts.PieChart() # can also use BarChart -chartObj.append(seriesObj) -chartObj.drawing.top = 50 # set the position -chartObj.drawing.left = 100 -chartObj.drawing.width = 300 # set the size -chartObj.drawing.height = 200 +# sheet.add_chart(chartObj) +# wb.save('sampleChart.xlsx') -sheet.add_chart(chartObj) -wb.save('sampleChart.xlsx') +# convert this program to require user input (which column do you want?) or to +# run on all columns automatically? diff --git a/students/susanRees/LighteningTalkFiles/lighteningTalkPandas.py b/students/susanRees/LighteningTalkFiles/lighteningTalkPandas.py new file mode 100644 index 0000000..20a70b2 --- /dev/null +++ b/students/susanRees/LighteningTalkFiles/lighteningTalkPandas.py @@ -0,0 +1,42 @@ +# Imports pandas +# reads the spreadsheet +# pops the "Age" column out +# uses .value_counts to group ages together and +# sorts them in ascending order according to frequency of occurance + +import pandas as pd +df = pd.read_excel("surveyData.xlsx") +ages = df.pop("Age") +print(ages.value_counts(normalize=True, sort=True, ascending=False, bins=None, dropna=True)) + + +# pandas.series.value_counts +# series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True) + +# Returns object containing counts of unique values. + +# The resulting object will be in descending order so that the first +# element is the most frequently-occurring element. Excludes NA values +# by default. + +# Parameters: + +# normalize : boolean, default False +# If True then the object returned will contain the relative +# frequencies of the unique values. + +# sort : boolean, default True +# Sort by values + +# ascending : boolean, default False +# Sort in ascending order + +# bins : integer, optional +# Rather than count values, group them into half-open bins, a +# convenience for pd.cut, only works with numeric data + +# dropna : boolean, default True +# Don’t include counts of NaN. + +# Returns: +# counts : Series diff --git a/students/susanRees/LighteningTalkFiles/surveyData.xlsx b/students/susanRees/LighteningTalkFiles/surveyData.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8254fecfaff027f3a204c5a9cd7d8f942040a345 GIT binary patch literal 42504 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 X^`MSA0Z>^W5E1YR1h{rB_