From ffb43da1a4cce21db7170d92d8c70fc1c630e61f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 26 Feb 2020 12:56:54 -0600 Subject: [PATCH 01/89] Remove Python 101 1st Edition files --- Appendix A/backers.csv | 3 - Appendix A/book_maker.py | 56 ---- Appendix A/book_maker2.py | 69 ----- Appendix A/book_maker3.py | 116 -------- Appendix A/csv_reader.py | 18 -- Appendix A/send_email.py | 49 ---- Chapter 10 - Functions/add.py | 14 - Chapter 10 - Functions/args_and_kwargs.py | 5 - Chapter 10 - Functions/kw_func.py | 9 - Chapter 10 - Functions/kw_func2.py | 8 - Chapter 10 - Functions/scope.py | 14 - Chapter 10 - Functions/scope2.py | 15 - Chapter 10 - Functions/simple_function.py | 3 - Chapter 10 - Functions/stub.py | 2 - Chapter 11 - Classes/car_subclass.py | 19 -- Chapter 11 - Classes/simple_class_2.x.py | 7 - Chapter 11 - Classes/simple_class_3.x.py | 7 - Chapter 11 - Classes/vehicle.py | 30 -- Chapter 11 - Classes/vehicle2.py | 33 --- Chapter 12 - Introspection/readme.txt | 1 - .../TB_data_dictionary_2014-02-26.csv | 265 ------------------ Chapter 13 - csv/csv_dictwriter.py | 26 -- Chapter 13 - csv/csv_reader.py | 15 - Chapter 13 - csv/csv_reader2.py | 14 - Chapter 13 - csv/csv_writer.py | 19 -- Chapter 13 - csv/data.csv | 4 - Chapter 14 - configparser/create_config.py | 20 -- Chapter 14 - configparser/crud_config.py | 38 --- .../crud_config_refactored.py | 70 ----- Chapter 14 - configparser/interpolation.py | 21 -- Chapter 15 - logging/exception_logger.py | 9 - Chapter 15 - logging/log_multiple_modules.py | 14 - Chapter 15 - logging/log_multiple_modules2.py | 25 -- Chapter 15 - logging/log_with_config.py | 18 -- Chapter 15 - logging/log_with_config2.py | 41 --- Chapter 15 - logging/logging.conf | 32 --- Chapter 15 - logging/otherMod.py | 7 - Chapter 15 - logging/otherMod2.py | 10 - Chapter 15 - logging/simple_logger.py | 8 - Chapter 16 - os/readme.txt | 1 - Chapter 17 - smtplib and email/email.ini | 3 - Chapter 17 - smtplib and email/send_email.py | 19 -- .../send_email_attachment.py | 76 ----- .../send_email_function.py | 24 -- .../send_multiple_emails.py | 39 --- .../send_to_cc_bcc.py | 45 --- Chapter 17 - smtplib and email/smtp_config.py | 38 --- Chapter 18 - sqlite/basic_queries.py | 20 -- Chapter 18 - sqlite/create_database.py | 28 -- Chapter 18 - sqlite/delete_record.py | 11 - Chapter 18 - sqlite/update_database.py | 13 - .../communicate_example.py | 8 - Chapter 19 - subprocess/readme.txt | 1 - Chapter 2 - Strings/creating_strings.py | 15 - Chapter 2 - Strings/string_concatenation.py | 4 - Chapter 2 - Strings/string_methods.py | 10 - Chapter 2 - Strings/string_slicing.py | 13 - Chapter 2 - Strings/string_substitution.py | 54 ---- Chapter 20 - sys/call_exit.py | 5 - Chapter 20 - sys/exit.py | 3 - Chapter 20 - sys/readme.txt | 1 - Chapter 20 - sys/sysargv.py | 4 - Chapter 21 - threading/downloader_2x.py | 47 ---- Chapter 21 - threading/downloader_3x.py | 47 ---- Chapter 21 - threading/downloader_queues.py | 62 ---- Chapter 21 - threading/simple_threads.py | 32 --- Chapter 22 - time/readme.txt | 1 - Chapter 23 - xml/appt.xml | 12 - Chapter 23 - xml/create_with_elementtree.py | 36 --- Chapter 23 - xml/edit_with_elementtree.py | 19 -- Chapter 23 - xml/example.xml | 32 --- Chapter 23 - xml/minidom_parse.py | 76 ----- Chapter 23 - xml/minidom_parse2.py | 25 -- Chapter 23 - xml/original_appt.xml | 21 -- Chapter 23 - xml/parse_with_elementtree.py | 37 --- Chapter 24 - pdb/debug_test.py | 15 - Chapter 25 - decorators/add_property.py | 24 -- .../add_property_setter.py | 28 -- Chapter 25 - decorators/builtin_decorators.py | 36 --- Chapter 25 - decorators/logging_decorator.py | 33 --- Chapter 25 - decorators/properties.py | 21 -- .../property_setters_getters.py | 28 -- Chapter 25 - decorators/simple_decorator.py | 21 -- Chapter 25 - decorators/simple_decorator2.py | 20 -- Chapter 25 - decorators/simple_function.py | 7 - Chapter 26 - lambda/simple_lambda.py | 11 - Chapter 26 - lambda/tkinter_lambda.py | 25 -- Chapter 27 - profiling/ptest.py | 24 -- Chapter 28 - testing/dtest1.py | 10 - Chapter 28 - testing/dtest2.py | 12 - Chapter 28 - testing/first_test_bowling.py | 24 -- Chapter 28 - testing/first_test_bowling2.py | 24 -- Chapter 28 - testing/game_v2.py | 33 --- Chapter 28 - testing/second_test_bowling.py | 26 -- Chapter 28 - testing/second_test_bowling2.py | 49 ---- Chapter 28 - testing/third_test_bowling.py | 40 --- Chapter 29 - installing modules/readme.txt | 1 - .../dict_examples.py | 18 -- .../list_examples.py | 32 --- .../tuple_examples.py | 7 - Chapter 30 - configobj/config.ini | 4 - Chapter 30 - configobj/configobj_example.py | 13 - Chapter 30 - configobj/configspec_example.py | 42 --- .../create_xml_with_objectify.py | 65 ----- Chapter 31 - lxml/example.xml | 21 -- Chapter 31 - lxml/example2.xml | 32 --- Chapter 31 - lxml/parse_book_example.py | 28 -- .../parse_book_example_refactored.py | 21 -- Chapter 31 - lxml/parse_with_objectify.py | 40 --- Chapter 31 - lxml/simple_parser.py | 22 -- Chapter 32 - code analysis/crummy_code.py | 20 -- .../crummy_code_fixed.py | 20 -- Chapter 33 - requests/submit_form_requests.py | 7 - Chapter 33 - requests/submit_form_urllib.py | 12 - Chapter 34 - SQLAlchemy/add_data.py | 43 --- Chapter 34 - SQLAlchemy/deleting_data.py | 15 - Chapter 34 - SQLAlchemy/modify_data.py | 24 -- Chapter 34 - SQLAlchemy/queries.py | 33 --- Chapter 34 - SQLAlchemy/table_def.py | 31 -- Chapter 35 - virtualenv/readme.txt | 1 - .../arithmetic.py | 11 - .../arithmetic2.py | 28 -- .../modify_path.py | 11 - .../mymath/__init__.py | 6 - .../mymath/add.py | 2 - .../mymath/adv/__init__.py | 0 .../mymath/adv/sqrt.py | 5 - .../mymath/divide.py | 2 - .../mymath/multiply.py | 2 - .../mymath/subtract.py | 2 - .../setup.py | 12 - Chapter 37 - add your code to pypi/.pypirc | 14 - Chapter 37 - add your code to pypi/setup.py | 6 - Chapter 37 - add your code to pypi/setup2.py | 10 - Chapter 38 - Python eggs/setup.py | 7 - Chapter 39 - Python wheels/readme.txt | 1 - Chapter 4 - Conditionals/conditionals.py | 9 - Chapter 40 - py2exe/advanced_setup.py | 28 -- Chapter 40 - py2exe/sampleApp.py | 56 ---- Chapter 40 - py2exe/setup.py | 4 - Chapter 41 - bbfreeze/bb_setup.py | 6 - Chapter 41 - bbfreeze/bb_setup2.py | 15 - Chapter 41 - bbfreeze/config_1.py | 36 --- Chapter 41 - bbfreeze/sampleApp.py | 56 ---- Chapter 42 - cx_Freeze/config_1.py | 36 --- Chapter 42 - cx_Freeze/sampleApp.py | 56 ---- Chapter 42 - cx_Freeze/setup.py | 9 - Chapter 42 - cx_Freeze/setup2.py | 13 - Chapter 43 - PyInstaller/config_1.py | 36 --- Chapter 43 - PyInstaller/sampleApp.py | 56 ---- .../sampleApp.py | 56 ---- Chapter 5 - Loops/for_loops.py | 34 --- Chapter 5 - Loops/while_loops.py | 25 -- Chapter 6 - Comprehensions/comprehensions.py | 24 -- Chapter 7 - Exceptions/exceptions.py | 73 ----- .../catching_errors.py | 17 -- Chapter 8 - Working with Files/file_io.py | 8 - .../open_and_close.py | 8 - .../open_and_close2.py | 4 - .../open_and_close3.py | 4 - Chapter 8 - Working with Files/open_with.py | 4 - .../read_in_chunks.py | 6 - .../read_line_by_line.py | 4 - Chapter 8 - Working with Files/test.txt | 4 - Chapter 8 - Working with Files/write_file.py | 3 - Chapter 9 - Imports/readme.txt | 1 - 166 files changed, 3889 deletions(-) delete mode 100644 Appendix A/backers.csv delete mode 100644 Appendix A/book_maker.py delete mode 100644 Appendix A/book_maker2.py delete mode 100644 Appendix A/book_maker3.py delete mode 100644 Appendix A/csv_reader.py delete mode 100644 Appendix A/send_email.py delete mode 100644 Chapter 10 - Functions/add.py delete mode 100644 Chapter 10 - Functions/args_and_kwargs.py delete mode 100644 Chapter 10 - Functions/kw_func.py delete mode 100644 Chapter 10 - Functions/kw_func2.py delete mode 100644 Chapter 10 - Functions/scope.py delete mode 100644 Chapter 10 - Functions/scope2.py delete mode 100644 Chapter 10 - Functions/simple_function.py delete mode 100644 Chapter 10 - Functions/stub.py delete mode 100644 Chapter 11 - Classes/car_subclass.py delete mode 100644 Chapter 11 - Classes/simple_class_2.x.py delete mode 100644 Chapter 11 - Classes/simple_class_3.x.py delete mode 100644 Chapter 11 - Classes/vehicle.py delete mode 100644 Chapter 11 - Classes/vehicle2.py delete mode 100644 Chapter 12 - Introspection/readme.txt delete mode 100644 Chapter 13 - csv/TB_data_dictionary_2014-02-26.csv delete mode 100644 Chapter 13 - csv/csv_dictwriter.py delete mode 100644 Chapter 13 - csv/csv_reader.py delete mode 100644 Chapter 13 - csv/csv_reader2.py delete mode 100644 Chapter 13 - csv/csv_writer.py delete mode 100644 Chapter 13 - csv/data.csv delete mode 100644 Chapter 14 - configparser/create_config.py delete mode 100644 Chapter 14 - configparser/crud_config.py delete mode 100644 Chapter 14 - configparser/crud_config_refactored.py delete mode 100644 Chapter 14 - configparser/interpolation.py delete mode 100644 Chapter 15 - logging/exception_logger.py delete mode 100644 Chapter 15 - logging/log_multiple_modules.py delete mode 100644 Chapter 15 - logging/log_multiple_modules2.py delete mode 100644 Chapter 15 - logging/log_with_config.py delete mode 100644 Chapter 15 - logging/log_with_config2.py delete mode 100644 Chapter 15 - logging/logging.conf delete mode 100644 Chapter 15 - logging/otherMod.py delete mode 100644 Chapter 15 - logging/otherMod2.py delete mode 100644 Chapter 15 - logging/simple_logger.py delete mode 100644 Chapter 16 - os/readme.txt delete mode 100644 Chapter 17 - smtplib and email/email.ini delete mode 100644 Chapter 17 - smtplib and email/send_email.py delete mode 100644 Chapter 17 - smtplib and email/send_email_attachment.py delete mode 100644 Chapter 17 - smtplib and email/send_email_function.py delete mode 100644 Chapter 17 - smtplib and email/send_multiple_emails.py delete mode 100644 Chapter 17 - smtplib and email/send_to_cc_bcc.py delete mode 100644 Chapter 17 - smtplib and email/smtp_config.py delete mode 100644 Chapter 18 - sqlite/basic_queries.py delete mode 100644 Chapter 18 - sqlite/create_database.py delete mode 100644 Chapter 18 - sqlite/delete_record.py delete mode 100644 Chapter 18 - sqlite/update_database.py delete mode 100644 Chapter 19 - subprocess/communicate_example.py delete mode 100644 Chapter 19 - subprocess/readme.txt delete mode 100644 Chapter 2 - Strings/creating_strings.py delete mode 100644 Chapter 2 - Strings/string_concatenation.py delete mode 100644 Chapter 2 - Strings/string_methods.py delete mode 100644 Chapter 2 - Strings/string_slicing.py delete mode 100644 Chapter 2 - Strings/string_substitution.py delete mode 100644 Chapter 20 - sys/call_exit.py delete mode 100644 Chapter 20 - sys/exit.py delete mode 100644 Chapter 20 - sys/readme.txt delete mode 100644 Chapter 20 - sys/sysargv.py delete mode 100644 Chapter 21 - threading/downloader_2x.py delete mode 100644 Chapter 21 - threading/downloader_3x.py delete mode 100644 Chapter 21 - threading/downloader_queues.py delete mode 100644 Chapter 21 - threading/simple_threads.py delete mode 100644 Chapter 22 - time/readme.txt delete mode 100644 Chapter 23 - xml/appt.xml delete mode 100644 Chapter 23 - xml/create_with_elementtree.py delete mode 100644 Chapter 23 - xml/edit_with_elementtree.py delete mode 100644 Chapter 23 - xml/example.xml delete mode 100644 Chapter 23 - xml/minidom_parse.py delete mode 100644 Chapter 23 - xml/minidom_parse2.py delete mode 100644 Chapter 23 - xml/original_appt.xml delete mode 100644 Chapter 23 - xml/parse_with_elementtree.py delete mode 100644 Chapter 24 - pdb/debug_test.py delete mode 100644 Chapter 25 - decorators/add_property.py delete mode 100644 Chapter 25 - decorators/add_property_setter.py delete mode 100644 Chapter 25 - decorators/builtin_decorators.py delete mode 100644 Chapter 25 - decorators/logging_decorator.py delete mode 100644 Chapter 25 - decorators/properties.py delete mode 100644 Chapter 25 - decorators/property_setters_getters.py delete mode 100644 Chapter 25 - decorators/simple_decorator.py delete mode 100644 Chapter 25 - decorators/simple_decorator2.py delete mode 100644 Chapter 25 - decorators/simple_function.py delete mode 100644 Chapter 26 - lambda/simple_lambda.py delete mode 100644 Chapter 26 - lambda/tkinter_lambda.py delete mode 100644 Chapter 27 - profiling/ptest.py delete mode 100644 Chapter 28 - testing/dtest1.py delete mode 100644 Chapter 28 - testing/dtest2.py delete mode 100644 Chapter 28 - testing/first_test_bowling.py delete mode 100644 Chapter 28 - testing/first_test_bowling2.py delete mode 100644 Chapter 28 - testing/game_v2.py delete mode 100644 Chapter 28 - testing/second_test_bowling.py delete mode 100644 Chapter 28 - testing/second_test_bowling2.py delete mode 100644 Chapter 28 - testing/third_test_bowling.py delete mode 100644 Chapter 29 - installing modules/readme.txt delete mode 100644 Chapter 3 - Lists Dicts Tuples/dict_examples.py delete mode 100644 Chapter 3 - Lists Dicts Tuples/list_examples.py delete mode 100644 Chapter 3 - Lists Dicts Tuples/tuple_examples.py delete mode 100644 Chapter 30 - configobj/config.ini delete mode 100644 Chapter 30 - configobj/configobj_example.py delete mode 100644 Chapter 30 - configobj/configspec_example.py delete mode 100644 Chapter 31 - lxml/create_xml_with_objectify.py delete mode 100644 Chapter 31 - lxml/example.xml delete mode 100644 Chapter 31 - lxml/example2.xml delete mode 100644 Chapter 31 - lxml/parse_book_example.py delete mode 100644 Chapter 31 - lxml/parse_book_example_refactored.py delete mode 100644 Chapter 31 - lxml/parse_with_objectify.py delete mode 100644 Chapter 31 - lxml/simple_parser.py delete mode 100644 Chapter 32 - code analysis/crummy_code.py delete mode 100644 Chapter 32 - code analysis/crummy_code_fixed.py delete mode 100644 Chapter 33 - requests/submit_form_requests.py delete mode 100644 Chapter 33 - requests/submit_form_urllib.py delete mode 100644 Chapter 34 - SQLAlchemy/add_data.py delete mode 100644 Chapter 34 - SQLAlchemy/deleting_data.py delete mode 100644 Chapter 34 - SQLAlchemy/modify_data.py delete mode 100644 Chapter 34 - SQLAlchemy/queries.py delete mode 100644 Chapter 34 - SQLAlchemy/table_def.py delete mode 100644 Chapter 35 - virtualenv/readme.txt delete mode 100644 Chapter 36 - creating modules and packages/arithmetic.py delete mode 100644 Chapter 36 - creating modules and packages/arithmetic2.py delete mode 100644 Chapter 36 - creating modules and packages/modify_path.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/__init__.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/add.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/adv/__init__.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/adv/sqrt.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/divide.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/multiply.py delete mode 100644 Chapter 36 - creating modules and packages/mymath/subtract.py delete mode 100644 Chapter 36 - creating modules and packages/setup.py delete mode 100644 Chapter 37 - add your code to pypi/.pypirc delete mode 100644 Chapter 37 - add your code to pypi/setup.py delete mode 100644 Chapter 37 - add your code to pypi/setup2.py delete mode 100644 Chapter 38 - Python eggs/setup.py delete mode 100644 Chapter 39 - Python wheels/readme.txt delete mode 100644 Chapter 4 - Conditionals/conditionals.py delete mode 100644 Chapter 40 - py2exe/advanced_setup.py delete mode 100644 Chapter 40 - py2exe/sampleApp.py delete mode 100644 Chapter 40 - py2exe/setup.py delete mode 100644 Chapter 41 - bbfreeze/bb_setup.py delete mode 100644 Chapter 41 - bbfreeze/bb_setup2.py delete mode 100644 Chapter 41 - bbfreeze/config_1.py delete mode 100644 Chapter 41 - bbfreeze/sampleApp.py delete mode 100644 Chapter 42 - cx_Freeze/config_1.py delete mode 100644 Chapter 42 - cx_Freeze/sampleApp.py delete mode 100644 Chapter 42 - cx_Freeze/setup.py delete mode 100644 Chapter 42 - cx_Freeze/setup2.py delete mode 100644 Chapter 43 - PyInstaller/config_1.py delete mode 100644 Chapter 43 - PyInstaller/sampleApp.py delete mode 100644 Chapter 44 - Creating an installer/sampleApp.py delete mode 100644 Chapter 5 - Loops/for_loops.py delete mode 100644 Chapter 5 - Loops/while_loops.py delete mode 100644 Chapter 6 - Comprehensions/comprehensions.py delete mode 100644 Chapter 7 - Exceptions/exceptions.py delete mode 100644 Chapter 8 - Working with Files/catching_errors.py delete mode 100644 Chapter 8 - Working with Files/file_io.py delete mode 100644 Chapter 8 - Working with Files/open_and_close.py delete mode 100644 Chapter 8 - Working with Files/open_and_close2.py delete mode 100644 Chapter 8 - Working with Files/open_and_close3.py delete mode 100644 Chapter 8 - Working with Files/open_with.py delete mode 100644 Chapter 8 - Working with Files/read_in_chunks.py delete mode 100644 Chapter 8 - Working with Files/read_line_by_line.py delete mode 100644 Chapter 8 - Working with Files/test.txt delete mode 100644 Chapter 8 - Working with Files/write_file.py delete mode 100644 Chapter 9 - Imports/readme.txt diff --git a/Appendix A/backers.csv b/Appendix A/backers.csv deleted file mode 100644 index 7e95d94..0000000 --- a/Appendix A/backers.csv +++ /dev/null @@ -1,3 +0,0 @@ -Mike Driscoll,test@py.com -Andy Hunter,andwa@hunter.org -Toby Mac,macdaddy@gotee.com \ No newline at end of file diff --git a/Appendix A/book_maker.py b/Appendix A/book_maker.py deleted file mode 100644 index 47e0099..0000000 --- a/Appendix A/book_maker.py +++ /dev/null @@ -1,56 +0,0 @@ -import os -import subprocess - -chapters = ['chapter_1.rst', - 'chapter_2.rst', - 'chapter_3.rst'] - -def read_chapter(chapter): - """ - Reads a chapter and returns the stream - """ - path = os.path.join("data", chapter) - try: - with open(path) as chp_handler: - data = chp_handler.read() - except (IOError, OSError): - raise Exception("Unable to open chapter: %s" % chapter) - return data - -def make_book(name="Mike", email_address="test@py.com"): - """ - Creates Python 101 book - """ - book_path = "output/python101.rst" - pdf_path = "output/python101.pdf" - page_break = """ -.. raw:: pdf - - PageBreak - """ - footer = """ -.. footer:: - - Copyright |copy| 2014 by Michael Driscoll, all rights reserved. - Licensed to %s <%s> - -.. |copy| unicode:: 0xA9 .. copyright sign - """ % (name, email_address) - try: - with open(book_path, "w") as book: - book.write(footer + "\n") - for chapter in chapters: - data = read_chapter(chapter) - book.write(data) - book.write("\n") - book.write(page_break + "\n") - except: - print("Error writing book!") - raise - - cmd = [r"C:\Python27\Scripts\rst2pdf.exe", - book_path, "-o", pdf_path] - subprocess.call(cmd) - -if __name__ == "__main__": - make_book() \ No newline at end of file diff --git a/Appendix A/book_maker2.py b/Appendix A/book_maker2.py deleted file mode 100644 index 3d52f04..0000000 --- a/Appendix A/book_maker2.py +++ /dev/null @@ -1,69 +0,0 @@ -import csv -import os -import subprocess - -chapters = ['chapter_1.rst', - 'chapter_2.rst', - 'chapter_3.rst'] - -def read_chapter(chapter): - """ - Reads a chapter and returns the stream - """ - path = os.path.join("data", chapter) - try: - with open(path) as chp_handler: - data = chp_handler.read() - except (IOError, OSError): - raise Exception("Unable to open chapter: %s" % chapter) - return data - -def make_book(name="Mike", email_address="test@py.com"): - """ - Creates Python 101 book - """ - book_path = "output/python101.rst" - pdf_path = "output/python101.pdf" - page_break = """ -.. raw:: pdf - - PageBreak - """ - footer = """ -.. footer:: - - Copyright |copy| 2014 by Michael Driscoll, all rights reserved. - Licensed to %s <%s> - -.. |copy| unicode:: 0xA9 .. copyright sign - """ % (name, email_address) - try: - with open(book_path, "w") as book: - book.write(footer + "\n") - for chapter in chapters: - data = read_chapter(chapter) - book.write(data) - book.write("\n") - book.write(page_break + "\n") - except: - print("Error writing book!") - raise - - cmd = [r"C:\Python27\Scripts\rst2pdf.exe", - book_path, "-o", pdf_path] - subprocess.call(cmd) - -def main(path): - """""" - try: - with open(path) as csv_file: - reader = csv.reader(csv_file) - for line in reader: - name, email = line - make_book(name, email) - except IOError: - print("Error reading file: %s" % path) - raise - -if __name__ == "__main__": - main("backers.csv") \ No newline at end of file diff --git a/Appendix A/book_maker3.py b/Appendix A/book_maker3.py deleted file mode 100644 index b91b9aa..0000000 --- a/Appendix A/book_maker3.py +++ /dev/null @@ -1,116 +0,0 @@ -import csv -import os -import smtplib -import subprocess - -from email import encoders -from email.mime.text import MIMEText -from email.mime.base import MIMEBase -from email.mime.multipart import MIMEMultipart -from email.utils import formatdate - -chapters = ['chapter_1.rst', - 'chapter_2.rst', - 'chapter_3.rst'] - -def make_book(name="Mike", email_address="test@py.com"): - """ - Creates Python 101 book - """ - book_path = "output/python101.rst" - pdf_path = "output/python101.pdf" - page_break = """ -.. raw:: pdf - - PageBreak - """ - footer = """ -.. footer:: - - Copyright |copy| 2014 by Michael Driscoll, all rights reserved. - Licensed to %s <%s> - -.. |copy| unicode:: 0xA9 .. copyright sign - """ % (name, email_address) - try: - with open(book_path, "w") as book: - book.write(footer + "\n") - for chapter in chapters: - data = read_chapter(chapter) - book.write(data) - book.write("\n") - book.write(page_break + "\n") - except: - print("Error writing book!") - raise - - cmd = [r"C:\Python27\Scripts\rst2pdf.exe", - book_path, "-o", pdf_path] - subprocess.call(cmd) - return pdf_path - -def read_chapter(chapter): - """ - Reads a chapter and returns the stream - """ - path = os.path.join("data", chapter) - try: - with open(path) as chp_handler: - data = chp_handler.read() - except (IOError, OSError): - raise Exception("Unable to open chapter: %s" % chapter) - return data - -def send_email(email, pdf): - """ - Send an email out - """ - header0 = 'Content-Disposition' - header1 ='attachment; filename="%s"' % os.path.basename(pdf) - header = header0, header1 - - host = "mail.server.com" - server = smtplib.SMTP(host) - subject = "Test email from Python" - to = email - from_addr = "test@pylib.com" - body_text = "Here is the Alpha copy of Python 101, Part I" - - # create the message - msg = MIMEMultipart() - msg["From"] = from_addr - msg["Subject"] = subject - msg["Date"] = formatdate(localtime=True) - msg["To"] = email - - msg.attach( MIMEText(body_text) ) - - attachment = MIMEBase('application', "octet-stream") - try: - with open(pdf, "rb") as fh: - data = fh.read() - attachment.set_payload( data ) - encoders.encode_base64(attachment) - attachment.add_header(*header) - msg.attach(attachment) - except IOError: - msg = "Error opening attachment file %s" % file_to_attach - print(msg) - - server.sendmail(from_addr, to, msg.as_string()) - -def main(path): - """""" - try: - with open(path) as csv_file: - reader = csv.reader(csv_file) - for line in reader: - name, email = line - pdf = make_book(name, email) - send_email(email, pdf) - except IOError: - print("Error reading file: %s" % path) - raise - -if __name__ == "__main__": - main("backers.csv") \ No newline at end of file diff --git a/Appendix A/csv_reader.py b/Appendix A/csv_reader.py deleted file mode 100644 index b3b96f5..0000000 --- a/Appendix A/csv_reader.py +++ /dev/null @@ -1,18 +0,0 @@ -import csv - -def read_csv(path): - """""" - try: - with open(path) as csv_file: - reader = csv.reader(csv_file) - for line in reader: - name, email = line - print(name) - print(email) - except IOError: - print("Error reading file: %s" % path) - raise - -if __name__ == "__main__": - path = "backers.csv" - read_csv(path) \ No newline at end of file diff --git a/Appendix A/send_email.py b/Appendix A/send_email.py deleted file mode 100644 index 150bf99..0000000 --- a/Appendix A/send_email.py +++ /dev/null @@ -1,49 +0,0 @@ -import os -import smtplib - -from email import encoders -from email.mime.text import MIMEText -from email.mime.base import MIMEBase -from email.mime.multipart import MIMEMultipart -from email.utils import formatdate - -def send_email(email, pdf): - """ - Send an email out - """ - header0 = 'Content-Disposition' - header1 ='attachment; filename="%s"' % os.path.basename(pdf) - header = header0, header1 - - host = "mail.server.com" - server = smtplib.SMTP(host) - subject = "Test email from Python" - to = email - from_addr = "test@pylib.com" - body_text = "Here is the Alpha copy of Python 101, Part I" - - # create the message - msg = MIMEMultipart() - msg["From"] = from_addr - msg["Subject"] = subject - msg["Date"] = formatdate(localtime=True) - msg["To"] = email - - msg.attach( MIMEText(body_text) ) - - attachment = MIMEBase('application', "octet-stream") - try: - with open(pdf, "rb") as fh: - data = fh.read() - attachment.set_payload( data ) - encoders.encode_base64(attachment) - attachment.add_header(*header) - msg.attach(attachment) - except IOError: - msg = "Error opening attachment file %s" % file_to_attach - print(msg) - - server.sendmail(from_addr, to, msg.as_string()) - -if __name__ == "__main__": - send_email("mike@example.org", "output/python101.pdf") \ No newline at end of file diff --git a/Chapter 10 - Functions/add.py b/Chapter 10 - Functions/add.py deleted file mode 100644 index c273f7b..0000000 --- a/Chapter 10 - Functions/add.py +++ /dev/null @@ -1,14 +0,0 @@ -def add(a, b): - return a + b - -# call the function with arguments -add(1, 2) - -# call the function with the wrong number of arguments -add(1) # causes a TypeError - -# call the function with keyword arguments -add(a=2, b=3) - -# assign the result to a variable -total = add(b=4, a=5) \ No newline at end of file diff --git a/Chapter 10 - Functions/args_and_kwargs.py b/Chapter 10 - Functions/args_and_kwargs.py deleted file mode 100644 index c90a85e..0000000 --- a/Chapter 10 - Functions/args_and_kwargs.py +++ /dev/null @@ -1,5 +0,0 @@ -def many(*args, **kwargs): - print(args) - print(kwargs) - -many(1, 2, 3, name="Mike", job="programmer") \ No newline at end of file diff --git a/Chapter 10 - Functions/kw_func.py b/Chapter 10 - Functions/kw_func.py deleted file mode 100644 index ca09806..0000000 --- a/Chapter 10 - Functions/kw_func.py +++ /dev/null @@ -1,9 +0,0 @@ -# create a function with defaults -def keyword_function(a=1, b=2): - return a+b - -# call it with keyword arguments -keyword_function(b=4, a=5) - -# call the function without arguments (i.e. use the defaults) -keyword_function() \ No newline at end of file diff --git a/Chapter 10 - Functions/kw_func2.py b/Chapter 10 - Functions/kw_func2.py deleted file mode 100644 index ad271b0..0000000 --- a/Chapter 10 - Functions/kw_func2.py +++ /dev/null @@ -1,8 +0,0 @@ -def mixed_function(a, b=2, c=3): - return a+b+c - -# call the function with one argument and 2 keyword arguments -mixed_function(1, b=4, c=5) - -# call the argument with just the required argument -mixed_function(1) \ No newline at end of file diff --git a/Chapter 10 - Functions/scope.py b/Chapter 10 - Functions/scope.py deleted file mode 100644 index 546d8ed..0000000 --- a/Chapter 10 - Functions/scope.py +++ /dev/null @@ -1,14 +0,0 @@ -# this script demonstrates scope issues and will -# raise a NameError if run - -def function_a(): - a = 1 - b = 2 - return a+b - -def function_b(): - c = 3 - return a+c - -print( function_a() ) -print( function_b() ) \ No newline at end of file diff --git a/Chapter 10 - Functions/scope2.py b/Chapter 10 - Functions/scope2.py deleted file mode 100644 index 91abbe8..0000000 --- a/Chapter 10 - Functions/scope2.py +++ /dev/null @@ -1,15 +0,0 @@ -# this script demonstrates how to use a global -# to fic the scope issue in scope.py - -def function_a(): - global a - a = 1 - b = 2 - return a+b - -def function_b(): - c = 3 - return a+c - -print(function_a()) -print(function_b()) \ No newline at end of file diff --git a/Chapter 10 - Functions/simple_function.py b/Chapter 10 - Functions/simple_function.py deleted file mode 100644 index d5914b1..0000000 --- a/Chapter 10 - Functions/simple_function.py +++ /dev/null @@ -1,3 +0,0 @@ -# create a simple function -def a_function(): - print("You just created a function!") \ No newline at end of file diff --git a/Chapter 10 - Functions/stub.py b/Chapter 10 - Functions/stub.py deleted file mode 100644 index 61a6746..0000000 --- a/Chapter 10 - Functions/stub.py +++ /dev/null @@ -1,2 +0,0 @@ -def empty_function(): - pass \ No newline at end of file diff --git a/Chapter 11 - Classes/car_subclass.py b/Chapter 11 - Classes/car_subclass.py deleted file mode 100644 index 24ed722..0000000 --- a/Chapter 11 - Classes/car_subclass.py +++ /dev/null @@ -1,19 +0,0 @@ -class Car(Vehicle): - """ - The Car class - """ - - - def brake(self): - """ - Override brake method - """ - return "The car class is breaking slowly!" - - -if __name__ == "__main__": - car = Car("yellow", 2, 4, "car") - car.brake() - 'The car class is breaking slowly!' - car.drive() - "I'm driving a yellow car!" \ No newline at end of file diff --git a/Chapter 11 - Classes/simple_class_2.x.py b/Chapter 11 - Classes/simple_class_2.x.py deleted file mode 100644 index fe4eef4..0000000 --- a/Chapter 11 - Classes/simple_class_2.x.py +++ /dev/null @@ -1,7 +0,0 @@ -# Python 2.x syntax -class Vehicle(object): - """docstring""" - - def __init__(self): - """Constructor""" - pass \ No newline at end of file diff --git a/Chapter 11 - Classes/simple_class_3.x.py b/Chapter 11 - Classes/simple_class_3.x.py deleted file mode 100644 index 02702ec..0000000 --- a/Chapter 11 - Classes/simple_class_3.x.py +++ /dev/null @@ -1,7 +0,0 @@ -# Python 3.x syntax -class Vehicle: - """docstring""" - - def __init__(self): - """Constructor""" - pass \ No newline at end of file diff --git a/Chapter 11 - Classes/vehicle.py b/Chapter 11 - Classes/vehicle.py deleted file mode 100644 index e06da5b..0000000 --- a/Chapter 11 - Classes/vehicle.py +++ /dev/null @@ -1,30 +0,0 @@ -class Vehicle(object): - """docstring""" - - - def __init__(self, color, doors, tires): - """Constructor""" - self.color = color - self.doors = doors - self.tires = tires - - - def brake(self): - """ - Stop the car - """ - return "Braking" - - - def drive(self): - """ - Drive the car - """ - return "I'm driving!" - - -if __name__ == "__main__": - car = Vehicle("blue", 5, 4) - print(car.color) - truck = Vehicle("red", 3, 6) - print(truck.color) \ No newline at end of file diff --git a/Chapter 11 - Classes/vehicle2.py b/Chapter 11 - Classes/vehicle2.py deleted file mode 100644 index 43dded1..0000000 --- a/Chapter 11 - Classes/vehicle2.py +++ /dev/null @@ -1,33 +0,0 @@ -class Vehicle(object): - """docstring""" - - - def __init__(self, color, doors, tires, vtype): - """Constructor""" - self.color = color - self.doors = doors - self.tires = tires - self.vtype = vtype - - - def brake(self): - """ - Stop the car - """ - return "%s braking" % self.vtype - - - def drive(self): - """ - Drive the car - """ - return "I'm driving a %s %s!" % (self.color, self.vtype) - - -if __name__ == "__main__": - car = Vehicle("blue", 5, 4, "car") - print(car.brake()) - print(car.drive()) - truck = Vehicle("red", 3, 6, "truck") - print(truck.drive()) - print(truck.brake()) \ No newline at end of file diff --git a/Chapter 12 - Introspection/readme.txt b/Chapter 12 - Introspection/readme.txt deleted file mode 100644 index 5803d6c..0000000 --- a/Chapter 12 - Introspection/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This chapter was skipped because it just demonstrates different ways of importing modules. The examples in chapter 12 should be practiced in IDLE or a Python editor of your choice. \ No newline at end of file diff --git a/Chapter 13 - csv/TB_data_dictionary_2014-02-26.csv b/Chapter 13 - csv/TB_data_dictionary_2014-02-26.csv deleted file mode 100644 index bd7473a..0000000 --- a/Chapter 13 - csv/TB_data_dictionary_2014-02-26.csv +++ /dev/null @@ -1,265 +0,0 @@ -"variable_name","dataset","code_list","definition" -"country","Country identification",,"Country or territory name" -"iso_numeric","Country identification",,"ISO numeric country/territory code" -"iso2","Country identification",,"ISO 2-character country/territory code" -"iso3","Country identification",,"ISO 3-character country/territory code" -"c_cdr","Estimates",,"Case detection rate (all forms), percent" -"c_cdr_hi","Estimates",,"Case detection rate (all forms), percent, high bound" -"c_cdr_lo","Estimates",,"Case detection rate (all forms), percent, low bound" -"e_inc_100k","Estimates",,"Estimated incidence (all forms) per 100 000 population" -"e_inc_100k_hi","Estimates",,"Estimated incidence (all forms) per 100 000 population, high bound" -"e_inc_100k_lo","Estimates",,"Estimated incidence (all forms) per 100 000 population, low bound" -"e_inc_num","Estimates",,"Estimated number of incident cases (all forms)" -"e_inc_num_hi","Estimates",,"Estimated number of incident cases (all forms), high bound" -"e_inc_num_lo","Estimates",,"Estimated number of incident cases (all forms), low bound" -"e_inc_tbhiv_100k","Estimates",,"Estimated incidence of TB cases who are HIV-positive per 100 000 population" -"e_inc_tbhiv_100k_hi","Estimates",,"Estimated incidence of TB cases who are HIV-positive per 100 000 population, high bound" -"e_inc_tbhiv_100k_lo","Estimates",,"Estimated incidence of TB cases who are HIV-positive per 100 000 population, low bound" -"e_inc_tbhiv_num","Estimates",,"Estimated incidence of TB cases who are HIV-positive" -"e_inc_tbhiv_num_hi","Estimates",,"Estimated incidence of TB cases who are HIV-positive, high bound" -"e_inc_tbhiv_num_lo","Estimates",,"Estimated incidence of TB cases who are HIV-positive, low bound" -"e_mdr_num","Estimates",,"Estimated number of MDR-TB cases among all notified pulmonary TB cases" -"e_mdr_num_hi","Estimates",,"Estimated number of MDR-TB cases among all notified pulmonary TB cases: high bound" -"e_mdr_num_lo","Estimates",,"Estimated number of MDR-TB cases among all notified pulmonary TB cases: low bound" -"e_mort_exc_tbhiv_100k","Estimates",,"Estimated mortality of TB cases (all forms, excluding HIV) per 100 000 population" -"e_mort_exc_tbhiv_100k_hi","Estimates",,"Estimated mortality of TB cases (all forms, excluding HIV), per 100 000 population, high bound" -"e_mort_exc_tbhiv_100k_lo","Estimates",,"Estimated mortality of TB cases (all forms, excluding HIV), per 100 000 population, low bound" -"e_mort_exc_tbhiv_num","Estimates",,"Estimated number of deaths from TB (all forms, excluding HIV)" -"e_mort_exc_tbhiv_num_hi","Estimates",,"Estimated number of deaths from TB (all forms, excluding HIV), high bound" -"e_mort_exc_tbhiv_num_lo","Estimates",,"Estimated number of deaths from TB (all forms, excluding HIV), low bound" -"e_new_mdr_num","Estimates",,"Estimated number of MDR-TB cases among notified new pulmonary TB cases" -"e_new_mdr_num_hi","Estimates",,"Estimated number of MDR-TB cases among notified new pulmonary TB cases: high bound" -"e_new_mdr_num_lo","Estimates",,"Estimated number of MDR-TB cases among notified new pulmonary TB cases: low bound" -"e_new_mdr_pcnt","Estimates",,"Estimated percentage of new TB cases with MDR-TB" -"e_new_mdr_pcnt_hi","Estimates",,"Estimated percentage of new TB cases with MDR-TB: high bound" -"e_new_mdr_pcnt_lo","Estimates",,"Estimated percentage of new TB cases with MDR-TB: low bound" -"e_pop_num","Estimates",,"Estimated total population number" -"e_prev_100k","Estimates",,"Estimated prevalence of TB (all forms) per 100 000 population" -"e_prev_100k_hi","Estimates",,"Estimated prevalence of TB (all forms) per 100 000 population, high bound" -"e_prev_100k_lo","Estimates",,"Estimated prevalence of TB (all forms) per 100 000 population, low bound" -"e_prev_num","Estimates",,"Estimated prevalence of TB (all forms)" -"e_prev_num_hi","Estimates",,"Estimated prevalence of TB (all forms), high bound" -"e_prev_num_lo","Estimates",,"Estimated prevalence of TB (all forms), low bound" -"e_ret_mdr_num","Estimates",,"Estimated number of MDR-TB cases among notified previously treated pulmonary TB cases" -"e_ret_mdr_num_hi","Estimates",,"Estimated number of MDR-TB cases among notified previously treated pulmonary TB cases: high bound" -"e_ret_mdr_num_lo","Estimates",,"Estimated number of MDR-TB cases among notified previously treated pulmonary TB cases: low bound" -"e_ret_mdr_pcnt","Estimates",,"Estimated percentage of previously treated TB cases with MDR-TB" -"e_ret_mdr_pcnt_hi","Estimates",,"Estimated percentage of previously treated TB cases with MDR-TB: high bound" -"e_ret_mdr_pcnt_lo","Estimates",,"Estimated percentage of previously treated TB cases with MDR-TB: low bound" -"e_tbhiv_prct","Estimates",,"Estimated HIV in incident TB (percent)" -"e_tbhiv_prct_hi","Estimates",,"Estimated HIV in incident TB (percent), high bound" -"e_tbhiv_prct_lo","Estimates",,"Estimated HIV in incident TB (percent), low bound" -"source_drs_coverage_new","Estimates",,"Indicates whether national or subnational data from drug resistance surveys or surveillance was used to estimate the proportion of new TB cases with MDR-TB" -"source_drs_coverage_ret","Estimates",,"Indicates whether national or subnational data from drug resistance surveys or surveillance was used to estimate the proportion of previously treated TB cases with MDR-TB" -"source_drs_year_new","Estimates",,"Year of drug resistance surveillance, survey or model used to estimate proportion of new TB cases with MDR-TB" -"source_drs_year_ret","Estimates",,"Year of drug resistance surveillance, survey or model used to estimate proportion of previously treated TB cases with MDR-TB" -"source_mdr_new","Estimates","DRS=drug resistance surveillance or survey; Model=statistical model","Method used to estimate proportion of new TB patients with MDR-TB" -"source_mdr_ret","Estimates","DRS=drug resistance surveillance or survey; Model=statistical model","Method used to estimate proportion of previously-treated TB patients with MDR-TB" -"source_mort","Estimates",,"Method to derive mortality data " -"source_tbhiv","Estimates",,"Method to derive TBHIV data" -"conf_mdr_tx","Notification",,"Number of laboratory-confirmed MDR-TB patients who started treatment for MDR-TB" -"conf_xdr_tx","Notification",,"Number of laboratory-confirmed XDR-TB patients who started treatment for XDR-TB" -"dst_rlt_new","Notification",,"Drug resistance surveillance: Among new TB patients with positive identification for M. Tuberculosis complex (confirmed by culture and/or line-probe assay): number of patients with available drug susceptibility testing results for isoniazid and rifampicin" -"dst_rlt_ret","Notification",,"Drug resistance surveillance: Among patients previously treated for TB with positive identification for M. Tuberculosis complex (confirmed by culture and/or line-probe assay): number of patients with available drug susceptibility testing results for isoniazid and rifampicin" -"dst_rlt_unk","Notification",,"Drug resistance surveillance: Among patients with unknown TB treatment history with positive identification for M. Tuberculosis complex (confirmed by culture and/or line-probe assay): number of patients with available drug susceptibility testing results for isoniazid and rifampicin" -"hiv_art","Notification",,"HIV-positive TB patients started or continued on antiretroviral therapy (ART)" -"hiv_cpt","Notification",,"HIV-positive TB patients started or continued on co-trimoxazole preventive therapy (CPT)" -"hiv_ipt","Notification",,"People registered as HIV-positive given isoniazid prophylaxis (treatment of latent TB infection)" -"hiv_reg","Notification",,"Total number of people registered as HIV-positive regardless of year of diagnosis. (Total number of adults and children enrolled in HIV care; includes everyone in the HIV care and/or ART register)" -"hiv_reg_new","Notification",,"Number of adults and children newly enrolled in HIV care during the year." -"hiv_tbscr","Notification",,"Number of adults and children enrolled in HIV care who had their TB status assessed and recorded during their last visit" -"hivtest","Notification",,"TB patients (new and re-treatment) with an HIV test result recorded in the TB register" -"hivtest_pos","Notification",,"TB patients (new and re-treatment) recorded as HIV-positive" -"mdr","Notification",,"Number of laboratory-confirmed cases of multidrug-resistant TB (MDR-TB) identified among all TB patients (new, previously treated, or unknown treatment history)" -"mdr_dst_rlt","Notification",,"Drug resistance surveillance: Total number of MDR-TB patients with drug susceptibility test results for any fluoroquinolone and any second-line injectable agent" -"mdr_new","Notification",,"Drug resistance surveillance: Among new TB patients with available drug susceptibility testing results (variable dst_rlt_new): number of patients with resistance to isoniazid and rifampicin (MDR-TB)" -"mdr_ret","Notification",,"Drug resistance surveillance: Among patients previously treated for TB with available drug susceptibility testing results (variable dst_rlt_ret): number of patients with resistance to isoniazid and rifampicin (MDR-TB)" -"mdr_unk","Notification",,"Drug resistance surveillance: Among patients with unknown TB treatment history with available drug susceptibility testing results (variable dst_rlt_unk): number of patients with resistance to isoniazid and rifampicin (MDR-TB)" -"new_bact_pos","Notification",,"New bacteriologically-positive TB cases" -"new_ep","Notification",,"New extra-pulmonary cases" -"new_ep_f014","Notification",,"New extrapulmonary cases: females aged 0-14 years" -"new_ep_f04","Notification",,"New extrapulmonary cases: females aged 0-4 years" -"new_ep_f1524","Notification",,"New extrapulmonary cases: females aged 15-24 years" -"new_ep_f15plus","Notification",,"New extrapulmonary cases: females aged 15 years and over" -"new_ep_f2534","Notification",,"New extrapulmonary cases: females aged 25-34 years" -"new_ep_f3544","Notification",,"New extrapulmonary cases: females aged 35-44 years" -"new_ep_f4554","Notification",,"New extrapulmonary cases: females aged 45-54 years" -"new_ep_f514","Notification",,"New extrapulmonary cases: females aged 5-14 years" -"new_ep_f5564","Notification",,"New extrapulmonary cases: females aged 55-64 years" -"new_ep_f65","Notification",,"New extrapulmonary cases: females aged 65 years and over" -"new_ep_fu","Notification",,"New extrapulmonary cases: females age unknown" -"new_ep_m014","Notification",,"New extrapulmonary cases: males aged 0-14 years" -"new_ep_m04","Notification",,"New extrapulmonary cases: males aged 0-4 years" -"new_ep_m1524","Notification",,"New extrapulmonary cases: males aged 15-24 years" -"new_ep_m15plus","Notification",,"New extrapulmonary cases: males aged 15 years and over" -"new_ep_m2534","Notification",,"New extrapulmonary cases: males aged 25-34 years" -"new_ep_m3544","Notification",,"New extrapulmonary cases: males aged 35-44 years" -"new_ep_m4554","Notification",,"New extrapulmonary cases: males aged 45-54 years" -"new_ep_m514","Notification",,"New extrapulmonary cases: males aged 5-14 years" -"new_ep_m5564","Notification",,"New extrapulmonary cases: males aged 55-64 years" -"new_ep_m65","Notification",,"New extrapulmonary cases: males aged 65 years and over" -"new_ep_mu","Notification",,"New extrapulmonary cases: males age unknown" -"new_ep_sexunk014","Notification",,"New extrapulmonary cases: sex unknown, aged 0-14 years" -"new_ep_sexunk04","Notification",,"New extrapulmonary cases: sex unknown, aged 0-4 years" -"new_ep_sexunk15plus","Notification",,"New extrapulmonary cases: sex unknown, aged 15 years and over" -"new_ep_sexunk514","Notification",,"New extrapulmonary cases: sex unknown, aged 5-14 years" -"new_ep_sexunkageunk","Notification",,"New extrapulmonary cases: sex unknown, age unknown" -"new_foreign","Notification",,"New and re-treatment TB cases among foreign-born individuals" -"new_labconf","Notification",,"New pulmonary laboratory-confirmed cases. Laboratory-confirmed includes all cases confirmed by smear and/or culture, or by any other laboratory methods" -"new_oth","Notification",,"Other new cases" -"new_sn","Notification",,"New pulmonary smear-negative cases" -"new_sn_f014","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 0-14 years" -"new_sn_f04","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 0-4 years" -"new_sn_f1524","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 15-24 years" -"new_sn_f15plus","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 15 years and over" -"new_sn_f2534","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 25-34 years" -"new_sn_f3544","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 35-44 years" -"new_sn_f4554","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 45-54 years" -"new_sn_f514","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 5-14 years" -"new_sn_f5564","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 55-64 years" -"new_sn_f65","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females aged 65 years and over" -"new_sn_fu","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: females age unknown" -"new_sn_m014","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 0-14 years" -"new_sn_m04","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 0-4 years" -"new_sn_m1524","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 15-24 years" -"new_sn_m15plus","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 15 years and above" -"new_sn_m2534","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 25-34 years" -"new_sn_m3544","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 35-44 years" -"new_sn_m4554","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 45-54 years" -"new_sn_m514","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 5-14 years" -"new_sn_m5564","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 55-64 years" -"new_sn_m65","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males aged 65 years and over" -"new_sn_mu","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: males age unknown" -"new_sn_sexunk014","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: sex unknown, aged 0-14 years" -"new_sn_sexunk04","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: sex unknown, aged 0-4 years" -"new_sn_sexunk15plus","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: sex unknown, aged 15 years and over" -"new_sn_sexunk514","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: sex unknown, aged 5-14 years" -"new_sn_sexunkageunk","Notification",,"New pulmonary smear negative/smear unknown/smear not done cases: sex unknown, age unknown" -"new_sp","Notification",,"New pulmonary smear-positive cases" -"new_sp_f014","Notification",,"New pulmonary smear positive cases: females aged 0-14 years" -"new_sp_f04","Notification",,"New pulmonary smear positive cases: females aged 0-4 years" -"new_sp_f1524","Notification",,"New pulmonary smear positive cases: females aged 15-24 years" -"new_sp_f2534","Notification",,"New pulmonary smear positive cases: females aged 25-34 years" -"new_sp_f3544","Notification",,"New pulmonary smear positive cases: females aged 35-44 years" -"new_sp_f4554","Notification",,"New pulmonary smear positive cases: females aged 45-54 years" -"new_sp_f514","Notification",,"New pulmonary smear positive cases: females aged 5-14 years" -"new_sp_f5564","Notification",,"New pulmonary smear positive cases: females aged 55-64 years" -"new_sp_f65","Notification",,"New pulmonary smear positive cases: females aged 65 and over" -"new_sp_fu","Notification",,"New pulmonary smear positive cases: females age unknown" -"new_sp_m014","Notification",,"New pulmonary smear positive cases: males aged 0-14 years" -"new_sp_m04","Notification",,"New pulmonary smear positive cases: males aged 0-4 years" -"new_sp_m1524","Notification",,"New pulmonary smear positive cases: males aged 15-24 years" -"new_sp_m2534","Notification",,"New pulmonary smear positive cases: males aged 25-34 years" -"new_sp_m3544","Notification",,"New pulmonary smear positive cases: males aged 35-44 years" -"new_sp_m4554","Notification",,"New pulmonary smear positive cases: males aged 45-54 years" -"new_sp_m514","Notification",,"New pulmonary smear positive cases: males aged 5-14 years" -"new_sp_m5564","Notification",,"New pulmonary smear positive cases: males aged 55-64 years" -"new_sp_m65","Notification",,"New pulmonary smear positive cases: males aged 65 years and over" -"new_sp_mu","Notification",,"New pulmonary smear positive cases: males age unknown" -"new_sspct","Notification",,"People with signs and symptoms suggestive of pulmonary TB screened for TB" -"new_su","Notification",,"New pulmonary smear unknown/not done cases" -"new_tbdeaths","Notification",,"TB deaths registered by the vital registration system following the ICD-10 codes (or ICD-9) codes for TB" -"newret_oth","Notification",,"Other cases not included in new and re-treatment case numbers" -"ret_oth","Notification",,"Other re-treatment cases" -"ret_rel","Notification",,"Relapse cases" -"ret_tad","Notification",,"Treatment after default cases" -"ret_taf","Notification",,"Treatment after failure cases" -"tot_newrel","Notification",,"Total new and relapse cases" -"unconf_mdr_tx","Notification",,"Number of MDR-TB (not laboratory-confirmed) patients who started treatment for MDR-TB" -"xdr","Notification",,"Drug resistance surveillance: Among MDR-TB patients with drug susceptibility test results for any fluoroquinolone (FQ) and any second-line injectable agent (2LI) (variable mdr_dst_rlt): number with any resistance to both FQ and 2LI (i.e. XDR-TB)" -"c_new_snep_tsr","Outcomes",,"Treatment success rate for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases, percent" -"c_new_sp_tsr","Outcomes",,"Treatment success rate for new pulmonary smear-positive (and/or culture-positive) cases, percent" -"c_ret_tsr","Outcomes",,"Treatment success rate for re-treatment cases, percent" -"hiv_new_snep_cmplt","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done HIV-positive TB cases: completed" -"hiv_new_snep_coh","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done HIV-positive TB cases: cohort size" -"hiv_new_snep_def","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done HIV-positive TB cases: defaulted" -"hiv_new_snep_died","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done HIV-positive TB cases: died" -"hiv_new_snep_fail","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done HIV-positive TB cases: failed" -"hiv_new_sp_cmplt","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: completed" -"hiv_new_sp_coh","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: cohort size" -"hiv_new_sp_cur","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: cured" -"hiv_new_sp_def","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: defaulted" -"hiv_new_sp_died","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: died" -"hiv_new_sp_fail","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) HIV-positive TB cases: failed" -"hiv_ret_cmplt","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: completed" -"hiv_ret_coh","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: cohort size" -"hiv_ret_cur","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: cured" -"hiv_ret_def","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: defaulted" -"hiv_ret_died","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: died" -"hiv_ret_fail","Outcomes",,"Outcomes for re-treatment HIV-positive TB cases: failed" -"mdr_cmplt","Outcomes",,"Outcomes for MDR-TB cases: number completed treatment" -"mdr_coh","Outcomes",,"Outcomes for MDR-TB cases: cohort size" -"mdr_cur","Outcomes",,"Outcomes for MDR-TB cases: number cured" -"mdr_def","Outcomes",,"Outcomes for MDR-TB cases: number whose treatment was interrupted (defaulted)" -"mdr_died","Outcomes",,"Outcomes for MDR-TB cases: number died" -"mdr_fail","Outcomes",,"Outcomes for MDR-TB cases: number whose treatment failed" -"new_snep_cmplt","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases: completed" -"new_snep_coh","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases: cohort size" -"new_snep_def","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases: defauled" -"new_snep_died","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases: died" -"new_snep_fail","Outcomes",,"Outcomes for new pulmonary smear-negative/extrapulmonary/smear unknown/smear not done cases: failed" -"new_sp_cmplt","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: completed" -"new_sp_coh","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: cohort size" -"new_sp_cur","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: cured" -"new_sp_def","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: defaulted" -"new_sp_died","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: died" -"new_sp_fail","Outcomes",,"Outcomes for new pulmonary smear-positive (and/or culture-positive) cases: failed" -"pulm_tb_rep_meth","Outcomes",,"Method used to report treatment outcomes of pulmonary cases" -"ret_cmplt","Outcomes",,"Outcomes for re-treatment cases: completed" -"ret_coh","Outcomes",,"Outcomes for re-treatment cases: cohort size" -"ret_cur","Outcomes",,"Outcomes for re-treatment cases: cured" -"ret_def","Outcomes",,"Outcomes for re-treatment cases: defaulted" -"ret_died","Outcomes",,"Outcomes for re-treatment cases: died" -"ret_fail","Outcomes",,"Outcomes for re-treatment cases: failed" -"xdr_cmplt","Outcomes",,"Outcomes for XDR-TB cases: number completed treatment" -"xdr_coh","Outcomes",,"Outcomes for XDR-TB cases: cohort size" -"xdr_cur","Outcomes",,"Outcomes for XDR-TB cases: number cured" -"xdr_def","Outcomes",,"Outcomes for XDR-TB cases: number whose treatment was interrupted (defaulted)" -"xdr_died","Outcomes",,"Outcomes for XDR-TB cases: number died" -"xdr_fail","Outcomes",,"Outcomes for XDR-TB cases: number whose treatment failed" -"caseb_err_nat","Strategy","0=No; 40=Yes; all patients; 41=Yes; MDR-TB patients only","Did the National Treatment Programme keep (or have access to) an electronic case-based database for TB patients on treatment at national level" -"collab_private_lab","Strategy","0=No; 1=yes","Were any non-NTP laboratories in the private sector (including NGOs) collaborating with the NTP?" -"collab_public_lab","Strategy","0=No; 1=yes","Were any non-NTP laboratories in the public sector collaborating with the NTP?" -"dst_in_guide","Strategy","0=No; 1=yes","Is conventional Drug Susceptibility Testing (DST) (solid or liquid methods) included in TB control guidelines for diagnosis?" -"dx_alg_tbhiv_in_guide","Strategy","0=No; 1=yes","Is an algorithm for the diagnosis of TB in HIV-positive people, which includes use of all investigations at the same time including CXR, culture (when available) and no use of an antibiotic trial included in TB control guidelines for diagnosis?" -"eol_care","Strategy","0=No; 1=yes","Is there a component in the TB programme that provides palliative and end-of-life care to patients who have failed MDR-TB treatment or who have life-threatening sequelae of disease?" -"free_dx","Strategy","10=Yes (all suspects);11=Yes (if TB is confirmed);12=Yes (for smear-positive TB);13=Yes (for certain income groups);14=Yes (other criteria);0=No","Is diagnosis provided through the TB National Treatment Programme free-of-charge?" -"free_fld_ntp","Strategy","0=No; 1=yes;3=Don't know","Were TB drugs provided free-of-charge to all TB patients treated with first-line drugs under the National Treatment Programme?" -"hcw_tb_infected","Strategy",,"Number of health-care workers who had TB" -"hcw_tot","Strategy",,"Total number of health-care workers who were working in the country in the public and private sector" -"lab_cul_eqa_f","Strategy",,"Number of culture laboratories for which External Quality Assessment (EQA) was carried out" -"lab_cul_eqa_pass","Strategy",,"Number of culture laboratories which demonstrated acceptable performance" -"lab_cul_f","Strategy",,"Number of laboratories providing TB diagnostic services using culture" -"lab_dst_eqa_f","Strategy",,"Number of drug susceptibility testing laboratories for which External Quality Assessment (EQA) was carried out" -"lab_dst_eqa_pass","Strategy",,"Number of drug susceptibility testing laboratories which demonstrated acceptable performance" -"lab_dst_f","Strategy",,"Number of laboratories providing TB diagnostic services using drug susceptibility testing" -"lab_lpa_eqa_f","Strategy",,"Number of Line Probe Assay (LPA) rifampicin laboratories for which External Quality Assessment (EQA) was carried out" -"lab_lpa_eqa_pass","Strategy",,"Number of Line Probe Assay (LPA) rifampicin laboratories which demonstrated acceptable performance" -"lab_lpa_f","Strategy",,"Number of laboratories providing TB diagnostic services using Line Probe Assay (LPA) rifampicin" -"lab_sm_eqa_f","Strategy",,"Number of smear microscopy laboratories for which External Quality Assessment (EQA) was carried out" -"lab_sm_eqa_pass","Strategy",,"Number of smear microscopy laboratories which demonstrated acceptable performance" -"lab_sm_f","Strategy",,"Number of laboratories providing TB diagnostic services using smear microscopy" -"lab_sm_led","Strategy",,"Number of laboratories providing TB diagnostic services using LED microscopes for smear microscopy" -"lab_xpert","Strategy",,"Number of laboratories providing TB diagnostic services using xpert MTB/RIF" -"lab_xpert_eqa","Strategy",,"Number of laboratories providing TB diagnostic services using xpert MTB/RIF for which External Quality Assessment (EQA) was carried out" -"lc_rst_in_guide","Strategy","0=No; 1=yes","Is liquid culture and rapid speciation test for Mycobacterium Tuberculosis included in TB control guidelines for diagnosis?" -"lpa_in_guide","Strategy","0=No; 1=yes","Is line-probe assay for detecting resistance to rifampicin and isonaizid included in TB control guidelines for diagnosis?" -"nrl","Strategy","0=No; 1=yes","Was there a national reference laboratory or laboratories (NRL)?" -"nrl_srl_link","Strategy","0=No; 1=yes","Has a formal link been established between the National Reference Laboratory and a partner Supranational Reference Laboratory?" -"priv_new_dx","Strategy",,"Number of new cases of TB diagnosed according to National Treatment Programme (NTP) guidelines by private providers" -"pub_new_dx","Strategy",,"Number of new cases of TB diagnosed according to National Treatment Programme (NTP) guidelines by non-NTP public providers" -"r_rgmn_new_initcont","Strategy","0=No; 1=yes","Is the 6-month drug regimen with rifampicin throughout treatment (in the intensive phase and continuation phases) used for new TB patients?" -"sldst_avail_incntry","Strategy","0=No; 1=yes","Was second-line drug susceptibility testing available within the country for TB National Treatment Programme patients?" -"sldst_avail_outcntry","Strategy","0=No; 1=yes","Was second-line drug susceptibility testing available outside the country for TB National Treatment Programme patients?" -"tbhiv_sentin_cil","Strategy",,"Lower limit (95% confidence interval) of prevalence (%) of HIV in TB patients estimated using sentinel sites" -"tbhiv_sentin_ciu","Strategy",,"Upper limit (95% confidence interval) of prevalence (%) of HIV in TB patients estimated using sentinel sites" -"tbhiv_sentin_prev","Strategy",,"Prevalence (%) of HIV in TB patients estimated using sentinel sites" -"tbhiv_sentin_yr","Strategy",,"Year in which prevalence of HIV in TB patients was estimated using sentinel sites" -"tbhiv_surv_cil","Strategy",,"Lower limit (95% confidence interval) of prevalence (%) of HIV in TB patients estimated using nationwide representative surveys" -"tbhiv_surv_ciu","Strategy",,"Upper limit (95% confidence interval) of prevalence (%) of HIV in TB patients estimated using nationwide representative surveys" -"tbhiv_surv_prev","Strategy",,"Prevalence (%) of HIV in TB patients estimated using nationwide representative -surveys" -"tbhiv_surv_yr","Strategy",,"Year in which prevalence of HIV in TB patients was estimated using nationwide representative surveys" -"tbhiv_surveil","Strategy","0=No; 1=yes","Is there a national surveillance system to measure the prevalence of HIV in TB patients?" -"xpert_in_guide_MDR","Strategy","0=No; 1=yes","Is WHO policy guidance on the inclusion of Xpert MTB/RIF assay in an algorithm for the diagnosis of drug-resistant TB among persons at risk incorporated into national guidelines?" -"xpert_in_guide_TBHIV","Strategy","0=No; 1=yes","Is WHO policy guidance on the inclusion of Xpert MTB/RIF assay in an algorithm for the diagnosis of TB in persons at risk of HIV-associated TB incorporated into national guidelines?" diff --git a/Chapter 13 - csv/csv_dictwriter.py b/Chapter 13 - csv/csv_dictwriter.py deleted file mode 100644 index a5547fe..0000000 --- a/Chapter 13 - csv/csv_dictwriter.py +++ /dev/null @@ -1,26 +0,0 @@ -import csv - -def csv_dict_writer(path, fieldnames, data): - """ - Writes a CSV file using DictWriter - """ - with open(path, "w", newline='') as out_file: - writer = csv.DictWriter(out_file, delimiter=',', fieldnames=fieldnames) - writer.writeheader() - for row in data: - writer.writerow(row) - -if __name__ == "__main__": - data = ["first_name,last_name,city".split(","), - "Tyrese,Hirthe,Strackeport".split(","), - "Jules,Dicki,Lake Nickolasville".split(","), - "Dedric,Medhurst,Stiedemannberg".split(",") - ] - my_list = [] - fieldnames = data[0] - for values in data[1:]: - inner_dict = dict(zip(fieldnames, values)) - my_list.append(inner_dict) - - path = "dict_output.csv" - csv_dict_writer(path, fieldnames, my_list) \ No newline at end of file diff --git a/Chapter 13 - csv/csv_reader.py b/Chapter 13 - csv/csv_reader.py deleted file mode 100644 index 1fa9813..0000000 --- a/Chapter 13 - csv/csv_reader.py +++ /dev/null @@ -1,15 +0,0 @@ -import csv - -def csv_reader(file_obj): - """ - Read a csv file - """ - reader = csv.reader(file_obj) - for row in reader: - print(" ".join(row)) - - -if __name__ == "__main__": - csv_path = "TB_data_dictionary_2014-02-26.csv" - with open(csv_path, "r") as f_obj: - csv_reader(f_obj) \ No newline at end of file diff --git a/Chapter 13 - csv/csv_reader2.py b/Chapter 13 - csv/csv_reader2.py deleted file mode 100644 index 9883a1c..0000000 --- a/Chapter 13 - csv/csv_reader2.py +++ /dev/null @@ -1,14 +0,0 @@ -import csv - -def csv_dict_reader(file_obj): - """ - Read a CSV file using csv.DictReader - """ - reader = csv.DictReader(file_obj, delimiter=',') - for line in reader: - print(line["first_name"]), - print(line["last_name"]) - -if __name__ == "__main__": - with open("data.csv") as f_obj: - csv_dict_reader(f_obj) \ No newline at end of file diff --git a/Chapter 13 - csv/csv_writer.py b/Chapter 13 - csv/csv_writer.py deleted file mode 100644 index af0baa5..0000000 --- a/Chapter 13 - csv/csv_writer.py +++ /dev/null @@ -1,19 +0,0 @@ -import csv - -def csv_writer(data, path): - """ - Write data to a CSV file path - """ - with open(path, "w", newline='') as csv_file: - writer = csv.writer(csv_file, delimiter=',') - for line in data: - writer.writerow(line) - -if __name__ == "__main__": - data = ["first_name,last_name,city".split(","), - "Tyrese,Hirthe,Strackeport".split(","), - "Jules,Dicki,Lake Nickolasville".split(","), - "Dedric,Medhurst,Stiedemannberg".split(",") - ] - path = "output.csv" - csv_writer(data, path) \ No newline at end of file diff --git a/Chapter 13 - csv/data.csv b/Chapter 13 - csv/data.csv deleted file mode 100644 index 2c19a16..0000000 --- a/Chapter 13 - csv/data.csv +++ /dev/null @@ -1,4 +0,0 @@ -first_name,last_name,address,city,state,zip_code -Tyrese,Hirthe,1404 Turner Ville,Strackeport,NY,19106-8813 -Jules,Dicki,2410 Estella Cape Suite 061,Lake Nickolasville,ME,00621-7435 -Dedric,Medhurst,6912 Dayna Shoal,Stiedemannberg,SC,43259-2273 \ No newline at end of file diff --git a/Chapter 14 - configparser/create_config.py b/Chapter 14 - configparser/create_config.py deleted file mode 100644 index b7f3551..0000000 --- a/Chapter 14 - configparser/create_config.py +++ /dev/null @@ -1,20 +0,0 @@ -import configparser - -def createConfig(path): - """ - Create a config file - """ - config = configparser.ConfigParser() - config.add_section("Settings") - config.set("Settings", "font", "Courier") - config.set("Settings", "font_size", "10") - config.set("Settings", "font_style", "Normal") - config.set("Settings", "font_info", - "You are using %(font)s at %(font_size)s pt") - - with open(path, "w") as config_file: - config.write(config_file) - -if __name__ == "__main__": - path = "settings.ini" - createConfig(path) \ No newline at end of file diff --git a/Chapter 14 - configparser/crud_config.py b/Chapter 14 - configparser/crud_config.py deleted file mode 100644 index f9e2d39..0000000 --- a/Chapter 14 - configparser/crud_config.py +++ /dev/null @@ -1,38 +0,0 @@ -import configparser -import os - -from create_config import createConfig - - -def crudConfig(path): - """ - Create, read, update, delete config - """ - if not os.path.exists(path): - createConfig(path) - - stat = os.stat(path) - if stat.st_size == 0: - # File is zero bytes - raise RuntimeError('Settings file is empty') - - config = configparser.ConfigParser() - config.read(path) - - # read some values from the config - font = config.get("Settings", "font") - font_size = config.get("Settings", "font_size") - - # change a value in the config - config.set("Settings", "font_size", "12") - - # delete a value from the config - config.remove_option("Settings", "font_style") - - # write changes back to the config file - with open(path, "w") as config_file: - config.write(config_file) - -if __name__ == "__main__": - path = "settings.ini" - crudConfig(path) \ No newline at end of file diff --git a/Chapter 14 - configparser/crud_config_refactored.py b/Chapter 14 - configparser/crud_config_refactored.py deleted file mode 100644 index 80ef4d5..0000000 --- a/Chapter 14 - configparser/crud_config_refactored.py +++ /dev/null @@ -1,70 +0,0 @@ -import configparser -import os - -def create_config(path): - """ - Create a config file - """ - config = configparser.ConfigParser() - config.add_section("Settings") - config.set("Settings", "font", "Courier") - config.set("Settings", "font_size", "10") - config.set("Settings", "font_style", "Normal") - config.set("Settings", "font_info", - "You are using %(font)s at %(font_size)s pt") - - with open(path, "w") as config_file: - config.write(config_file) - - -def get_config(path): - """ - Returns the config object - """ - if not os.path.exists(path): - create_config(path) - - config = configparser.ConfigParser() - config.read(path) - return config - - -def get_setting(path, section, setting): - """ - Print out a setting - """ - config = get_config(path) - value = config.get(section, setting) - msg = "{section} {setting} is {value}".format( - section=section, setting=setting, value=value) - print(msg) - return value - - -def update_setting(path, section, setting, value): - """ - Update a setting - """ - config = get_config(path) - config.set(section, setting, value) - with open(path, "w") as config_file: - config.write(config_file) - - -def delete_setting(path, section, setting): - """ - Delete a setting - """ - config = get_config(path) - config.remove_option(section, setting) - with open(path, "w") as config_file: - config.write(config_file) - -if __name__ == "__main__": - path = "settings.ini" - font = get_setting(path, 'Settings', 'font') - font_size = get_setting(path, 'Settings', 'font_size') - - update_setting(path, "Settings", "font_size", "12") - - delete_setting(path, "Settings", "font_style") \ No newline at end of file diff --git a/Chapter 14 - configparser/interpolation.py b/Chapter 14 - configparser/interpolation.py deleted file mode 100644 index f767a7f..0000000 --- a/Chapter 14 - configparser/interpolation.py +++ /dev/null @@ -1,21 +0,0 @@ -import configparser -import os - -from create_config import createConfig - - -def interpolationDemo(path): - if not os.path.exists(path): - createConfig(path) - - config = configparser.ConfigParser() - config.read(path) - - print(config.get("Settings", "font_info")) - - print(config.get("Settings", "font_info", - vars={"font": "Arial", "font_size": "100"})) - -if __name__ == "__main__": - path = "settings.ini" - interpolationDemo(path) \ No newline at end of file diff --git a/Chapter 15 - logging/exception_logger.py b/Chapter 15 - logging/exception_logger.py deleted file mode 100644 index b1009f4..0000000 --- a/Chapter 15 - logging/exception_logger.py +++ /dev/null @@ -1,9 +0,0 @@ -import logging - -logging.basicConfig(filename="sample.log", level=logging.INFO) -log = logging.getLogger("ex") - -try: - raise RuntimeError -except RuntimeError: - log.exception("Error!") \ No newline at end of file diff --git a/Chapter 15 - logging/log_multiple_modules.py b/Chapter 15 - logging/log_multiple_modules.py deleted file mode 100644 index eaa29d4..0000000 --- a/Chapter 15 - logging/log_multiple_modules.py +++ /dev/null @@ -1,14 +0,0 @@ -import logging -import otherMod - -def main(): - """ - The main entry point of the application - """ - logging.basicConfig(filename="mySnake.log", level=logging.INFO) - logging.info("Program started") - result = otherMod.add(7, 8) - logging.info("Done!") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Chapter 15 - logging/log_multiple_modules2.py b/Chapter 15 - logging/log_multiple_modules2.py deleted file mode 100644 index ebe7b21..0000000 --- a/Chapter 15 - logging/log_multiple_modules2.py +++ /dev/null @@ -1,25 +0,0 @@ -import logging -import otherMod2 - -def main(): - """ - The main entry point of the application - """ - logger = logging.getLogger("exampleApp") - logger.setLevel(logging.INFO) - - # create the logging file handler - fh = logging.FileHandler("new_snake.log") - - formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') - fh.setFormatter(formatter) - - # add handler to logger object - logger.addHandler(fh) - - logger.info("Program started") - result = otherMod2.add(7, 8) - logger.info("Done!") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Chapter 15 - logging/log_with_config.py b/Chapter 15 - logging/log_with_config.py deleted file mode 100644 index 8228096..0000000 --- a/Chapter 15 - logging/log_with_config.py +++ /dev/null @@ -1,18 +0,0 @@ -# log_with_config.py -import logging -import logging.config -import otherMod2 - -def main(): - """ - Based on http://docs.python.org/howto/logging.html#configuring-logging - """ - logging.config.fileConfig('logging.conf') - logger = logging.getLogger("exampleApp") - - logger.info("Program started") - result = otherMod2.add(7, 8) - logger.info("Done!") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Chapter 15 - logging/log_with_config2.py b/Chapter 15 - logging/log_with_config2.py deleted file mode 100644 index 332cdcd..0000000 --- a/Chapter 15 - logging/log_with_config2.py +++ /dev/null @@ -1,41 +0,0 @@ -# log_with_config2.py -import logging -import logging.config -import otherMod2 - -def main(): - """ - Based on http://docs.python.org/howto/logging.html#configuring-logging - """ - dictLogConfig = { - "version":1, - "handlers":{ - "fileHandler":{ - "class":"logging.FileHandler", - "formatter":"myFormatter", - "filename":"config2.log" - } - }, - "loggers":{ - "exampleApp":{ - "handlers":["fileHandler"], - "level":"INFO", - } - }, - "formatters":{ - "myFormatter":{ - "format":"%(asctime)s - %(name)s - %(levelname)s - %(message)s" - } - } - } - - logging.config.dictConfig(dictLogConfig) - - logger = logging.getLogger("exampleApp") - - logger.info("Program started") - result = otherMod2.add(7, 8) - logger.info("Done!") - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Chapter 15 - logging/logging.conf b/Chapter 15 - logging/logging.conf deleted file mode 100644 index a855fd0..0000000 --- a/Chapter 15 - logging/logging.conf +++ /dev/null @@ -1,32 +0,0 @@ -[loggers] -keys=root,exampleApp - -[handlers] -keys=fileHandler, consoleHandler - -[formatters] -keys=myFormatter - -[logger_root] -level=CRITICAL -handlers=consoleHandler - -[logger_exampleApp] -level=INFO -handlers=fileHandler -qualname=exampleApp - -[handler_consoleHandler] -class=StreamHandler -level=DEBUG -formatter=myFormatter -args=(sys.stdout,) - -[handler_fileHandler] -class=FileHandler -formatter=myFormatter -args=("config.log",) - -[formatter_myFormatter] -format=%(asctime)s - %(name)s - %(levelname)s - %(message)s -datefmt= \ No newline at end of file diff --git a/Chapter 15 - logging/otherMod.py b/Chapter 15 - logging/otherMod.py deleted file mode 100644 index 16fa316..0000000 --- a/Chapter 15 - logging/otherMod.py +++ /dev/null @@ -1,7 +0,0 @@ -# otherMod.py -import logging - -def add(x, y): - """""" - logging.info("added %s and %s to get %s" % (x, y, x+y)) - return x+y \ No newline at end of file diff --git a/Chapter 15 - logging/otherMod2.py b/Chapter 15 - logging/otherMod2.py deleted file mode 100644 index 67a3f5f..0000000 --- a/Chapter 15 - logging/otherMod2.py +++ /dev/null @@ -1,10 +0,0 @@ -# otherMod2.py -import logging - -module_logger = logging.getLogger("exampleApp.otherMod2") - -def add(x, y): - """""" - logger = logging.getLogger("exampleApp.otherMod2.add") - logger.info("added %s and %s to get %s" % (x, y, x+y)) - return x+y \ No newline at end of file diff --git a/Chapter 15 - logging/simple_logger.py b/Chapter 15 - logging/simple_logger.py deleted file mode 100644 index 47ce3af..0000000 --- a/Chapter 15 - logging/simple_logger.py +++ /dev/null @@ -1,8 +0,0 @@ -import logging - -# add filemode="w" to overwrite -logging.basicConfig(filename="sample.log", level=logging.INFO) - -logging.debug("This is a debug message") -logging.info("Informational message") -logging.error("An error has happened!") \ No newline at end of file diff --git a/Chapter 16 - os/readme.txt b/Chapter 16 - os/readme.txt deleted file mode 100644 index 6fb69d5..0000000 --- a/Chapter 16 - os/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This chapter was skipped because it just demonstrates different ways of importing modules. The examples in chapter 16 should be practiced in IDLE or a Python editor of your choice. \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/email.ini b/Chapter 17 - smtplib and email/email.ini deleted file mode 100644 index 3fdee9e..0000000 --- a/Chapter 17 - smtplib and email/email.ini +++ /dev/null @@ -1,3 +0,0 @@ -[smtp] -server = some.server.com -from_addr = python@mydomain.com \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/send_email.py b/Chapter 17 - smtplib and email/send_email.py deleted file mode 100644 index d2d1dcd..0000000 --- a/Chapter 17 - smtplib and email/send_email.py +++ /dev/null @@ -1,19 +0,0 @@ -import smtplib - -HOST = "mySMTP.server.com" -SUBJECT = "Test email from Python" -TO = "mike@someAddress.org" -FROM = "python@mydomain.com" -text = "Python 3.4 rules them all!" - -BODY = "\r\n".join(( - "From: %s" % FROM, - "To: %s" % TO, - "Subject: %s" % SUBJECT , - "", - text - )) - -server = smtplib.SMTP(HOST) -server.sendmail(FROM, [TO], BODY) -server.quit() \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/send_email_attachment.py b/Chapter 17 - smtplib and email/send_email_attachment.py deleted file mode 100644 index 773033b..0000000 --- a/Chapter 17 - smtplib and email/send_email_attachment.py +++ /dev/null @@ -1,76 +0,0 @@ -import os -import smtplib -import sys - -from configparser import ConfigParser -from email import encoders -from email.mime.text import MIMEText -from email.mime.base import MIMEBase -from email.mime.multipart import MIMEMultipart -from email.utils import formatdate - -#---------------------------------------------------------------------- -def send_email_with_attachment(subject, body_text, to_emails, - cc_emails, bcc_emails, file_to_attach): - """ - Send an email with an attachment - """ - base_path = os.path.dirname(os.path.abspath(__file__)) - config_path = os.path.join(base_path, "email.ini") - header = 'Content-Disposition', 'attachment; filename="%s"' % file_to_attach - - # get the config - if os.path.exists(config_path): - cfg = ConfigParser() - cfg.read(config_path) - else: - print("Config not found! Exiting!") - sys.exit(1) - - # extract server and from_addr from config - host = cfg.get("smtp", "server") - from_addr = cfg.get("smtp", "from_addr") - - # create the message - msg = MIMEMultipart() - msg["From"] = from_addr - msg["Subject"] = subject - msg["Date"] = formatdate(localtime=True) - if body_text: - msg.attach( MIMEText(body_text) ) - - msg["To"] = ', '.join(to_emails) - msg["cc"] = ', '.join(cc_emails) - - attachment = MIMEBase('application', "octet-stream") - try: - with open(file_to_attach, "rb") as fh: - data = fh.read() - attachment.set_payload( data ) - encoders.encode_base64(attachment) - attachment.add_header(*header) - msg.attach(attachment) - except IOError: - msg = "Error opening attachment file %s" % file_to_attach - print(msg) - sys.exit(1) - - emails = to_emails + cc_emails - - server = smtplib.SMTP(host) - server.sendmail(from_addr, emails, msg.as_string()) - server.quit() - -if __name__ == "__main__": - emails = ["mike@someAddress.org", "nedry@jp.net"] - cc_emails = ["someone@gmail.com"] - bcc_emails = ["anonymous@circe.org"] - - subject = "Test email with attachment from Python" - body_text = "This email contains an attachment!" - path = "/path/to/some/file" - send_email_with_attachment(subject, body_text, emails, - cc_emails, bcc_emails, path) - - - diff --git a/Chapter 17 - smtplib and email/send_email_function.py b/Chapter 17 - smtplib and email/send_email_function.py deleted file mode 100644 index 670683a..0000000 --- a/Chapter 17 - smtplib and email/send_email_function.py +++ /dev/null @@ -1,24 +0,0 @@ -import smtplib - -def send_email(host, subject, to_addr, from_addr, body_text): - """ - Send an email - """ - BODY = "\r\n".join(( - "From: %s" % from_addr, - "To: %s" % to_addr, - "Subject: %s" % subject , - "", - body_text - )) - server = smtplib.SMTP(host) - server.sendmail(from_addr, [to_addr], BODY) - server.quit() - -if __name__ == "__main__": - host = "mySMTP.server.com" - subject = "Test email from Python" - to_addr = "mike@someAddress.org" - from_addr = "python@mydomain.com" - body_text = "Python rules them all!" - send_email(host, subject, to_addr, from_addr, body_text) \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/send_multiple_emails.py b/Chapter 17 - smtplib and email/send_multiple_emails.py deleted file mode 100644 index a603a9f..0000000 --- a/Chapter 17 - smtplib and email/send_multiple_emails.py +++ /dev/null @@ -1,39 +0,0 @@ -import os -import smtplib -import sys - -from configparser import ConfigParser - -def send_email(subject, body_text, emails): - """ - Send an email - """ - base_path = os.path.dirname(os.path.abspath(__file__)) - config_path = os.path.join(base_path, "email.ini") - - if os.path.exists(config_path): - cfg = ConfigParser() - cfg.read(config_path) - else: - print("Config not found! Exiting!") - sys.exit(1) - - host = cfg.get("smtp", "server") - from_addr = cfg.get("smtp", "from_addr") - - BODY = "\r\n".join(( - "From: %s" % from_addr, - "To: %s" % ', '.join(emails), - "Subject: %s" % subject , - "", - body_text - )) - server = smtplib.SMTP(host) - server.sendmail(from_addr, emails, BODY) - server.quit() - -if __name__ == "__main__": - emails = ["mike@someAddress.org", "someone@gmail.com"] - subject = "Test email from Python" - body_text = "Python rules them all!" - send_email(subject, body_text, emails) \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/send_to_cc_bcc.py b/Chapter 17 - smtplib and email/send_to_cc_bcc.py deleted file mode 100644 index 99e29b1..0000000 --- a/Chapter 17 - smtplib and email/send_to_cc_bcc.py +++ /dev/null @@ -1,45 +0,0 @@ -import os -import smtplib -import sys - -from configparser import ConfigParser - -def send_email(subject, body_text, to_emails, cc_emails, bcc_emails): - """ - Send an email - """ - base_path = os.path.dirname(os.path.abspath(__file__)) - config_path = os.path.join(base_path, "email.ini") - - if os.path.exists(config_path): - cfg = ConfigParser() - cfg.read(config_path) - else: - print("Config not found! Exiting!") - sys.exit(1) - - host = cfg.get("smtp", "server") - from_addr = cfg.get("smtp", "from_addr") - - BODY = "\r\n".join(( - "From: %s" % from_addr, - "To: %s" % ', '.join(to_emails), - "CC: %s" % ', '.join(cc_emails), - "BCC: %s" % ', '.join(bcc_emails), - "Subject: %s" % subject , - "", - body_text - )) - emails = to_emails + cc_emails + bcc_emails - - server = smtplib.SMTP(host) - server.sendmail(from_addr, emails, BODY) - server.quit() - -if __name__ == "__main__": - emails = ["mike@somewhere.org"] - cc_emails = ["someone@gmail.com"] - bcc_emails = ["schmuck@newtel.net"] - subject = "Test email from Python" - body_text = "Python rules them all!" - send_email(subject, body_text, emails, cc_emails, bcc_emails) \ No newline at end of file diff --git a/Chapter 17 - smtplib and email/smtp_config.py b/Chapter 17 - smtplib and email/smtp_config.py deleted file mode 100644 index d0f40be..0000000 --- a/Chapter 17 - smtplib and email/smtp_config.py +++ /dev/null @@ -1,38 +0,0 @@ -import os -import smtplib -import sys - -from configparser import ConfigParser - -def send_email(subject, to_addr, body_text): - """ - Send an email - """ - base_path = os.path.dirname(os.path.abspath(__file__)) - config_path = os.path.join(base_path, "email.ini") - - if os.path.exists(config_path): - cfg = ConfigParser() - cfg.read(config_path) - else: - print("Config not found! Exiting!") - sys.exit(1) - - host = cfg.get("smtp", "server") - from_addr = cfg.get("smtp", "from_addr") - BODY = "\r\n".join(( - "From: %s" % from_addr, - "To: %s" % to_addr, - "Subject: %s" % subject , - "", - body_text - )) - server = smtplib.SMTP(host) - server.sendmail(from_addr, [to_addr], BODY) - server.quit() - -if __name__ == "__main__": - subject = "Test email from Python" - to_addr = "mike@someAddress.org" - body_text = "Python rules them all!" - send_email(subject, to_addr, body_text) \ No newline at end of file diff --git a/Chapter 18 - sqlite/basic_queries.py b/Chapter 18 - sqlite/basic_queries.py deleted file mode 100644 index f793530..0000000 --- a/Chapter 18 - sqlite/basic_queries.py +++ /dev/null @@ -1,20 +0,0 @@ -import sqlite3 - -conn = sqlite3.connect("mydatabase.db") -#conn.row_factory = sqlite3.Row -cursor = conn.cursor() - -sql = "SELECT * FROM albums WHERE artist=?" -cursor.execute(sql, [("Red")]) -print cursor.fetchall() # or use fetchone() - -print "\nHere's a listing of all the records in the table:\n" -for row in cursor.execute("SELECT rowid, * FROM albums ORDER BY artist"): - print row - -print "\nResults from a LIKE query:\n" -sql = """ -SELECT * FROM albums -WHERE title LIKE 'The%'""" -cursor.execute(sql) -print cursor.fetchall() \ No newline at end of file diff --git a/Chapter 18 - sqlite/create_database.py b/Chapter 18 - sqlite/create_database.py deleted file mode 100644 index 33883be..0000000 --- a/Chapter 18 - sqlite/create_database.py +++ /dev/null @@ -1,28 +0,0 @@ -import sqlite3 - -conn = sqlite3.connect("mydatabase.db") # or use :memory: to put it in RAM - -cursor = conn.cursor() - -# create a table -cursor.execute("""CREATE TABLE albums - (title text, artist text, release_date text, - publisher text, media_type text) - """) - -# insert some data -cursor.execute("""INSERT INTO albums - VALUES ('Glow', 'Andy Hunter', '7/24/2012', - 'Xplore Records', 'MP3')""" - ) - -# save data to database -conn.commit() - -# insert multiple records using the more secure "?" method -albums = [('Exodus', 'Andy Hunter', '7/9/2002', 'Sparrow Records', 'CD'), - ('Until We Have Faces', 'Red', '2/1/2011', 'Essential Records', 'CD'), - ('The End is Where We Begin', 'Thousand Foot Krutch', '4/17/2012', 'TFKmusic', 'CD'), - ('The Good Life', 'Trip Lee', '4/10/2012', 'Reach Records', 'CD')] -cursor.executemany("INSERT INTO albums VALUES (?,?,?,?,?)", albums) -conn.commit() \ No newline at end of file diff --git a/Chapter 18 - sqlite/delete_record.py b/Chapter 18 - sqlite/delete_record.py deleted file mode 100644 index cd63978..0000000 --- a/Chapter 18 - sqlite/delete_record.py +++ /dev/null @@ -1,11 +0,0 @@ -import sqlite3 - -conn = sqlite3.connect("mydatabase.db") -cursor = conn.cursor() - -sql = """ -DELETE FROM albums -WHERE artist = 'John Doe' -""" -cursor.execute(sql) -conn.commit() \ No newline at end of file diff --git a/Chapter 18 - sqlite/update_database.py b/Chapter 18 - sqlite/update_database.py deleted file mode 100644 index e368efe..0000000 --- a/Chapter 18 - sqlite/update_database.py +++ /dev/null @@ -1,13 +0,0 @@ -import sqlite3 - -conn = sqlite3.connect("mydatabase.db") -cursor = conn.cursor() - -sql = """ -UPDATE albums -SET artist = 'John Doe' -WHERE artist = 'Andy Hunter' -""" - -cursor.execute(sql) -conn.commit() \ No newline at end of file diff --git a/Chapter 19 - subprocess/communicate_example.py b/Chapter 19 - subprocess/communicate_example.py deleted file mode 100644 index bd8a90a..0000000 --- a/Chapter 19 - subprocess/communicate_example.py +++ /dev/null @@ -1,8 +0,0 @@ -import subprocess - -args = ["ping", "www.yahoo.com"] -process = subprocess.Popen(args, stdout=subprocess.PIPE) - -data = process.communicate() -for line in data: - print(line) \ No newline at end of file diff --git a/Chapter 19 - subprocess/readme.txt b/Chapter 19 - subprocess/readme.txt deleted file mode 100644 index 4b1a328..0000000 --- a/Chapter 19 - subprocess/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Most of the examples in this chapter should be run in IDLE so you can better understand the subprocess module \ No newline at end of file diff --git a/Chapter 2 - Strings/creating_strings.py b/Chapter 2 - Strings/creating_strings.py deleted file mode 100644 index ef49c69..0000000 --- a/Chapter 2 - Strings/creating_strings.py +++ /dev/null @@ -1,15 +0,0 @@ -# The following shows different methods of creating a string -my_string = "Welcome to Python!" -another_string = 'The bright red fox jumped the fence.' -a_long_string = '''This is a -multi-line string. It covers more than -one line''' - -# this set of strings shows how to mix single and double-quotes -my_string = "I'm a Python programmer!" -otherString = 'The word "python" usually refers to a snake' -tripleString = """Here's another way to embed "quotes" in a string""" - -# cast an integer to a string using Python's str() class -my_number = 123 -my_string = str(my_number) \ No newline at end of file diff --git a/Chapter 2 - Strings/string_concatenation.py b/Chapter 2 - Strings/string_concatenation.py deleted file mode 100644 index b080618..0000000 --- a/Chapter 2 - Strings/string_concatenation.py +++ /dev/null @@ -1,4 +0,0 @@ -# the following demonstrates how to join two strings -string_one = "My dog ate " -string_two = "my homework!" -string_three = string_one + string_two \ No newline at end of file diff --git a/Chapter 2 - Strings/string_methods.py b/Chapter 2 - Strings/string_methods.py deleted file mode 100644 index 4eced9f..0000000 --- a/Chapter 2 - Strings/string_methods.py +++ /dev/null @@ -1,10 +0,0 @@ -# string methods -my_string = "This is a string!" -my_string.upper() # or print(my_string.upper()) -"This is a string!".upper() - -# get a list of string methods -dir(my_string) - -# get help -help(my_string.capitalize) diff --git a/Chapter 2 - Strings/string_slicing.py b/Chapter 2 - Strings/string_slicing.py deleted file mode 100644 index 9ef51df..0000000 --- a/Chapter 2 - Strings/string_slicing.py +++ /dev/null @@ -1,13 +0,0 @@ -# string slicing -my_string = "I like Python!" -my_string[0:1] -my_string[:1] -my_string[0:12] -my_string[0:13] -my_string[0:14] -my_string[0:-5] -my_string[:] -my_string[2:] - -# string indexing -print(my_string[0]) # prints the first character of the string \ No newline at end of file diff --git a/Chapter 2 - Strings/string_substitution.py b/Chapter 2 - Strings/string_substitution.py deleted file mode 100644 index 5c47187..0000000 --- a/Chapter 2 - Strings/string_substitution.py +++ /dev/null @@ -1,54 +0,0 @@ -# string substitution - -# the old way -my_string = "I like %s" % "Python" -my_string - -var = "cookies" -newString = "I like %s" % var -newString - - -another_string = "I like %s and %s" % ("Python", var) -another_string - -# this will cause a TypeError -another_string = "I like %s and %s" % "Python" - -# string formatting -my_string = "%i + %i = %i" % (1,2,3) -my_string - -float_string = "%f" % (1.23) -float_string - -float_string2 = "%.2f" % (1.23) -float_string2 - -float_string3 = "%.2f" % (1.237) -float_string3 - -# passing bad data raises a TypeError -int_float_err = "%i + %f" % ("1", "2.00") - -# this is bad too -int_float_err = "%i + %f" % (1, "2.00") - -# --------------------------- -# new style of string substitution / formatting -print("%(lang)s is fun!" % {"lang":"Python"}) -print("%(value)s %(value)s %(value)s !" % {"value":"SPAM"}) - -# this one won't work! -print("%(x)i + %(y)i = %(z)i" % {"x":1, "y":2}) - -# this is a fix of the previous example -print("%(x)i + %(y)i = %(z)i" % {"x":1, "y":2, "z":3}) - -# messing with the order of substitution -"Python is as simple as {0}, {1}, {2}".format("a", "b", "c") -"Python is as simple as {1}, {0}, {2}".format("a", "b", "c") - -# creating the dict and then doing the substitution -xy = {"x":0, "y":10} -print("Graph a point at where x={x} and y={y}".format(**xy)) \ No newline at end of file diff --git a/Chapter 20 - sys/call_exit.py b/Chapter 20 - sys/call_exit.py deleted file mode 100644 index ef1a4d4..0000000 --- a/Chapter 20 - sys/call_exit.py +++ /dev/null @@ -1,5 +0,0 @@ -# call_exit.py -import subprocess - -code = subprocess.call(["python.exe", "exit.py"]) -print(code) \ No newline at end of file diff --git a/Chapter 20 - sys/exit.py b/Chapter 20 - sys/exit.py deleted file mode 100644 index 40be86f..0000000 --- a/Chapter 20 - sys/exit.py +++ /dev/null @@ -1,3 +0,0 @@ -import sys - -sys.exit(0) \ No newline at end of file diff --git a/Chapter 20 - sys/readme.txt b/Chapter 20 - sys/readme.txt deleted file mode 100644 index 0887469..0000000 --- a/Chapter 20 - sys/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Most of the examples in this chapter should be run in IDLE so you can better understand the sys module \ No newline at end of file diff --git a/Chapter 20 - sys/sysargv.py b/Chapter 20 - sys/sysargv.py deleted file mode 100644 index 4d8e493..0000000 --- a/Chapter 20 - sys/sysargv.py +++ /dev/null @@ -1,4 +0,0 @@ -# sysargv.py -import sys - -print(sys.argv) \ No newline at end of file diff --git a/Chapter 21 - threading/downloader_2x.py b/Chapter 21 - threading/downloader_2x.py deleted file mode 100644 index 6b19c4b..0000000 --- a/Chapter 21 - threading/downloader_2x.py +++ /dev/null @@ -1,47 +0,0 @@ -# Python 2 version -import os -import urllib2 - -from threading import Thread - -class DownloadThread(Thread): - """ - A threading example that can download a file - """ - - def __init__(self, url, name): - """Initialize the thread""" - Thread.__init__(self) - self.name = name - self.url = url - - def run(self): - """Run the thread""" - handle = urllib2.urlopen(self.url) - fname = os.path.basename(self.url) - with open(fname, "wb") as f_handler: - while True: - chunk = handle.read(1024) - if not chunk: - break - f_handler.write(chunk) - msg = "%s has finished downloading %s!" % (self.name, - self.url) - print(msg) - -def main(urls): - """ - Run the program - """ - for item, url in enumerate(urls): - name = "Thread %s" % (item+1) - thread = DownloadThread(url, name) - thread.start() - -if __name__ == "__main__": - urls = ["http://www.irs.gov/pub/irs-pdf/f1040.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040a.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040ez.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040es.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040sb.pdf"] - main(urls) \ No newline at end of file diff --git a/Chapter 21 - threading/downloader_3x.py b/Chapter 21 - threading/downloader_3x.py deleted file mode 100644 index 6a0c9c1..0000000 --- a/Chapter 21 - threading/downloader_3x.py +++ /dev/null @@ -1,47 +0,0 @@ -# Python 3 version -import os -import urllib.request - -from threading import Thread - -class DownloadThread(Thread): - """ - A threading example that can download a file - """ - - def __init__(self, url, name): - """Initialize the thread""" - Thread.__init__(self) - self.name = name - self.url = url - - def run(self): - """Run the thread""" - handle = urllib.request.urlopen(self.url) - fname = os.path.basename(self.url) - with open(fname, "wb") as f_handler: - while True: - chunk = handle.read(1024) - if not chunk: - break - f_handler.write(chunk) - msg = "%s has finished downloading %s!" % (self.name, - self.url) - print(msg) - -def main(urls): - """ - Run the program - """ - for item, url in enumerate(urls): - name = "Thread %s" % (item+1) - thread = DownloadThread(url, name) - thread.start() - -if __name__ == "__main__": - urls = ["http://www.irs.gov/pub/irs-pdf/f1040.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040a.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040ez.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040es.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040sb.pdf"] - main(urls) \ No newline at end of file diff --git a/Chapter 21 - threading/downloader_queues.py b/Chapter 21 - threading/downloader_queues.py deleted file mode 100644 index d07552c..0000000 --- a/Chapter 21 - threading/downloader_queues.py +++ /dev/null @@ -1,62 +0,0 @@ -import os -import threading -import urllib.request - -from queue import Queue - -class Downloader(threading.Thread): - """Threaded File Downloader""" - - def __init__(self, queue): - """Initialize the thread""" - threading.Thread.__init__(self) - self.queue = queue - - def run(self): - """Run the thread""" - while True: - # gets the url from the queue - url = self.queue.get() - - # download the file - self.download_file(url) - - # send a signal to the queue that the job is done - self.queue.task_done() - - def download_file(self, url): - """Download the file""" - handle = urllib.request.urlopen(url) - fname = os.path.basename(url) - with open(fname, "wb") as f: - while True: - chunk = handle.read(1024) - if not chunk: break - f.write(chunk) - -def main(urls): - """ - Run the program - """ - queue = Queue() - - # create a thread pool and give them a queue - for i in range(5): - t = Downloader(queue) - t.setDaemon(True) - t.start() - - # give the queue some data - for url in urls: - queue.put(url) - - # wait for the queue to finish - queue.join() - -if __name__ == "__main__": - urls = ["http://www.irs.gov/pub/irs-pdf/f1040.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040a.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040ez.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040es.pdf", - "http://www.irs.gov/pub/irs-pdf/f1040sb.pdf"] - main(urls) \ No newline at end of file diff --git a/Chapter 21 - threading/simple_threads.py b/Chapter 21 - threading/simple_threads.py deleted file mode 100644 index 4836f82..0000000 --- a/Chapter 21 - threading/simple_threads.py +++ /dev/null @@ -1,32 +0,0 @@ -import random -import time - -from threading import Thread - -class MyThread(Thread): - """ - A threading example - """ - def __init__(self, name): - """Initialize the thread""" - Thread.__init__(self) - self.name = name - - def run(self): - """Run the thread""" - amount = random.randint(3, 15) - time.sleep(amount) - msg = "%s is running" % self.name - print(msg) - -def create_threads(): - """ - Create a group of threads - """ - for i in range(5): - name = "Thread #%s" % (i+1) - my_thread = MyThread(name) - my_thread.start() - -if __name__ == "__main__": - create_threads() \ No newline at end of file diff --git a/Chapter 22 - time/readme.txt b/Chapter 22 - time/readme.txt deleted file mode 100644 index ba449fa..0000000 --- a/Chapter 22 - time/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Most of the examples in this chapter should be run in IDLE so you can better understand the datetime and time modules \ No newline at end of file diff --git a/Chapter 23 - xml/appt.xml b/Chapter 23 - xml/appt.xml deleted file mode 100644 index d2dd55a..0000000 --- a/Chapter 23 - xml/appt.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - 1181251680 - 040000008200E000 - 1181572063 - - - 1800 - Bring pizza home - - \ No newline at end of file diff --git a/Chapter 23 - xml/create_with_elementtree.py b/Chapter 23 - xml/create_with_elementtree.py deleted file mode 100644 index 184f2ee..0000000 --- a/Chapter 23 - xml/create_with_elementtree.py +++ /dev/null @@ -1,36 +0,0 @@ -import xml.etree.ElementTree as xml - -def createXML(filename): - """ - Create an example XML file - """ - root = xml.Element("zAppointments") - appt = xml.Element("appointment") - root.append(appt) - - # add appointment children - begin = xml.SubElement(appt, "begin") - begin.text = "1181251680" - - uid = xml.SubElement(appt, "uid") - uid.text = "040000008200E000" - - alarmTime = xml.SubElement(appt, "alarmTime") - alarmTime.text = "1181572063" - - state = xml.SubElement(appt, "state") - - location = xml.SubElement(appt, "location") - - duration = xml.SubElement(appt, "duration") - duration.text = "1800" - - subject = xml.SubElement(appt, "subject") - - tree = xml.ElementTree(root) - with open(filename, "w") as fh: - tree.write(fh) - -if __name__ == "__main__": - createXML("appt.xml") - \ No newline at end of file diff --git a/Chapter 23 - xml/edit_with_elementtree.py b/Chapter 23 - xml/edit_with_elementtree.py deleted file mode 100644 index c200124..0000000 --- a/Chapter 23 - xml/edit_with_elementtree.py +++ /dev/null @@ -1,19 +0,0 @@ -import time -import xml.etree.cElementTree as ET - -def editXML(filename): - """ - Edit an example XML file - """ - tree = ET.ElementTree(file=filename) - root = tree.getroot() - - for begin_time in root.iter("begin"): - begin_time.text = time.ctime(int(begin_time.text)) - - tree = ET.ElementTree(root) - with open("updated.xml", "w") as f: - tree.write(f) - -if __name__ == "__main__": - editXML("original_appt.xml") \ No newline at end of file diff --git a/Chapter 23 - xml/example.xml b/Chapter 23 - xml/example.xml deleted file mode 100644 index 5737624..0000000 --- a/Chapter 23 - xml/example.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - Gambardella, Matthew - XML Developer's Guide - Computer - 44.95 - 2000-10-01 - An in-depth look at creating applications - with XML. - - - Ralls, Kim - Midnight Rain - Fantasy - 5.95 - 2000-12-16 - A former architect battles corporate zombies, - an evil sorceress, and her own childhood to become queen - of the world. - - - Corets, Eva - Maeve Ascendant - Fantasy - 5.95 - 2000-11-17 - After the collapse of a nanotechnology - society in England, the young survivors lay the - foundation for a new society. - - \ No newline at end of file diff --git a/Chapter 23 - xml/minidom_parse.py b/Chapter 23 - xml/minidom_parse.py deleted file mode 100644 index 4fd862d..0000000 --- a/Chapter 23 - xml/minidom_parse.py +++ /dev/null @@ -1,76 +0,0 @@ -import xml.dom.minidom -import urllib.request - -class ApptParser(object): - - def __init__(self, url, flag='url'): - self.list = [] - self.appt_list = [] - self.flag = flag - self.rem_value = 0 - xml = self.getXml(url) - self.handleXml(xml) - - def getXml(self, url): - try: - print(url) - f = urllib.request.urlopen(url) - except: - f = url - - doc = xml.dom.minidom.parse(f) - node = doc.documentElement - if node.nodeType == xml.dom.Node.ELEMENT_NODE: - print('Element name: %s' % node.nodeName) - for (name, value) in node.attributes.items(): - print(' Attr -- Name: %s Value: %s' % (name, value)) - - return node - - def handleXml(self, xml): - rem = xml.getElementsByTagName('zAppointments') - appointments = xml.getElementsByTagName("appointment") - self.handleAppts(appointments) - - def getElement(self, element): - return self.getText(element.childNodes) - - def handleAppts(self, appts): - for appt in appts: - self.handleAppt(appt) - self.list = [] - - def handleAppt(self, appt): - begin = self.getElement(appt.getElementsByTagName("begin")[0]) - duration = self.getElement(appt.getElementsByTagName("duration")[0]) - subject = self.getElement(appt.getElementsByTagName("subject")[0]) - location = self.getElement(appt.getElementsByTagName("location")[0]) - uid = self.getElement(appt.getElementsByTagName("uid")[0]) - - self.list.append(begin) - self.list.append(duration) - self.list.append(subject) - self.list.append(location) - self.list.append(uid) - if self.flag == 'file': - - try: - state = self.getElement(appt.getElementsByTagName("state")[0]) - self.list.append(state) - alarm = self.getElement(appt.getElementsByTagName("alarmTime")[0]) - self.list.append(alarm) - except Exception as e: - print(e) - - self.appt_list.append(self.list) - - def getText(self, nodelist): - rc = "" - for node in nodelist: - if node.nodeType == node.TEXT_NODE: - rc = rc + node.data - return rc - -if __name__ == "__main__": - appt = ApptParser("appt.xml") - print(appt.appt_list) \ No newline at end of file diff --git a/Chapter 23 - xml/minidom_parse2.py b/Chapter 23 - xml/minidom_parse2.py deleted file mode 100644 index d51bb73..0000000 --- a/Chapter 23 - xml/minidom_parse2.py +++ /dev/null @@ -1,25 +0,0 @@ -import xml.dom.minidom as minidom - -def getTitles(xml): - """ - Print out all titles found in xml - """ - doc = minidom.parse(xml) - node = doc.documentElement - books = doc.getElementsByTagName("book") - - titles = [] - for book in books: - titleObj = book.getElementsByTagName("title")[0] - titles.append(titleObj) - - for title in titles: - nodes = title.childNodes - - for node in nodes: - if node.nodeType == node.TEXT_NODE: - print(node.data) - -if __name__ == "__main__": - document = 'example.xml' - getTitles(document) \ No newline at end of file diff --git a/Chapter 23 - xml/original_appt.xml b/Chapter 23 - xml/original_appt.xml deleted file mode 100644 index 0ba8878..0000000 --- a/Chapter 23 - xml/original_appt.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 1181251680 - 040000008200E000 - 1181572063 - - - 1800 - Bring pizza home - - - 1181253977 - sdlkjlkadhdakhdfd - 1181588888 - TX - Dallas - 1800 - Bring pizza home - - \ No newline at end of file diff --git a/Chapter 23 - xml/parse_with_elementtree.py b/Chapter 23 - xml/parse_with_elementtree.py deleted file mode 100644 index b0cf086..0000000 --- a/Chapter 23 - xml/parse_with_elementtree.py +++ /dev/null @@ -1,37 +0,0 @@ -import xml.etree.cElementTree as ET - -def parseXML(xml_file): - """ - Parse XML with ElementTree - """ - tree = ET.ElementTree(file=xml_file) - print(tree.getroot()) - root = tree.getroot() - print("tag=%s, attrib=%s" % (root.tag, root.attrib)) - - for child in root: - print(child.tag, child.attrib) - if child.tag == "appointment": - for step_child in child: - print(step_child.tag) - - # iterate over the entire tree - print("-" * 40) - print("Iterating using a tree iterator") - print("-" * 40) - iter_ = tree.getiterator() - for elem in iter_: - print(elem.tag) - - # get the information via the children! - print("-" * 40) - print("Iterating using getchildren()") - print("-" * 40) - appointments = root.getchildren() - for appointment in appointments: - appt_children = appointment.getchildren() - for appt_child in appt_children: - print("%s=%s" % (appt_child.tag, appt_child.text)) - -if __name__ == "__main__": - parseXML("appt.xml") \ No newline at end of file diff --git a/Chapter 24 - pdb/debug_test.py b/Chapter 24 - pdb/debug_test.py deleted file mode 100644 index 67ca6e8..0000000 --- a/Chapter 24 - pdb/debug_test.py +++ /dev/null @@ -1,15 +0,0 @@ -# debug_test.py - -def doubler(a): - """""" - result = a*2 - print(result) - return result - -def main(): - """""" - for i in range(1,10): - doubler(i) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/Chapter 25 - decorators/add_property.py b/Chapter 25 - decorators/add_property.py deleted file mode 100644 index 756305d..0000000 --- a/Chapter 25 - decorators/add_property.py +++ /dev/null @@ -1,24 +0,0 @@ -from decimal import Decimal - -class Fees(object): - """""" - - def __init__(self): - """Constructor""" - self._fee = None - - def get_fee(self): - """ - Return the current fee - """ - return self._fee - - def set_fee(self, value): - """ - Set the fee - """ - if isinstance(value, str): - self._fee = Decimal(value) - elif isinstance(value, Decimal): - self._fee = value - fee = property(get_fee, set_fee) \ No newline at end of file diff --git a/Chapter 25 - decorators/add_property_setter.py b/Chapter 25 - decorators/add_property_setter.py deleted file mode 100644 index c55c38a..0000000 --- a/Chapter 25 - decorators/add_property_setter.py +++ /dev/null @@ -1,28 +0,0 @@ -from decimal import Decimal - -class Fees(object): - """""" - - def __init__(self): - """Constructor""" - self._fee = None - - @property - def fee(self): - """ - The fee property - the getter - """ - return self._fee - - @fee.setter - def fee(self, value): - """ - The setter of the fee property - """ - if isinstance(value, str): - self._fee = Decimal(value) - elif isinstance(value, Decimal): - self._fee = value - -if __name__ == "__main__": - f = Fees() \ No newline at end of file diff --git a/Chapter 25 - decorators/builtin_decorators.py b/Chapter 25 - decorators/builtin_decorators.py deleted file mode 100644 index 380d7cd..0000000 --- a/Chapter 25 - decorators/builtin_decorators.py +++ /dev/null @@ -1,36 +0,0 @@ -class DecoratorTest(object): - """ - Test regular method vs @classmethod vs @staticmethod - """ - - def __init__(self): - """Constructor""" - pass - - def doubler(self, x): - """""" - print("running doubler") - return x*2 - - @classmethod - def class_tripler(klass, x): - """""" - print("running tripler: %s" % klass) - return x*3 - - @staticmethod - def static_quad(x): - """""" - print("running quad") - return x*4 - -if __name__ == "__main__": - decor = DecoratorTest() - print(decor.doubler(5)) - print(decor.class_tripler(3)) - print(DecoratorTest.class_tripler(3)) - print(DecoratorTest.static_quad(2)) - print(decor.static_quad(3)) - print(decor.doubler) - print(decor.class_tripler) - print(decor.static_quad) \ No newline at end of file diff --git a/Chapter 25 - decorators/logging_decorator.py b/Chapter 25 - decorators/logging_decorator.py deleted file mode 100644 index 8ef2527..0000000 --- a/Chapter 25 - decorators/logging_decorator.py +++ /dev/null @@ -1,33 +0,0 @@ -import logging - -def log(func): - """ - Log what function is called - """ - def wrap_log(*args, **kwargs): - name = func.__name__ - logger = logging.getLogger(name) - logger.setLevel(logging.INFO) - - # add file handler - fh = logging.FileHandler("%s.log" % name) - fmt = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' - formatter = logging.Formatter(fmt) - fh.setFormatter(formatter) - logger.addHandler(fh) - - logger.info("Running function: %s" % name) - result = func(*args, **kwargs) - logger.info("Result: %s" % result) - return func - return wrap_log - -@log -def double_function(a): - """ - Double the input parameter - """ - return a*2 - -if __name__ == "__main__": - value = double_function(2) \ No newline at end of file diff --git a/Chapter 25 - decorators/properties.py b/Chapter 25 - decorators/properties.py deleted file mode 100644 index b35679e..0000000 --- a/Chapter 25 - decorators/properties.py +++ /dev/null @@ -1,21 +0,0 @@ -class Person(object): - """""" - - def __init__(self, first_name, last_name): - """Constructor""" - self.first_name = first_name - self.last_name = last_name - - @property - def full_name(self): - """ - Return the full name - """ - return "%s %s" % (self.first_name, self.last_name) - -if __name__ == "__main__": - person = Person("Mike", "Driscoll") - print(person.full_name) - print(person.first_name) - person.first_name = "Dan" - print(person.full_name) \ No newline at end of file diff --git a/Chapter 25 - decorators/property_setters_getters.py b/Chapter 25 - decorators/property_setters_getters.py deleted file mode 100644 index 0188328..0000000 --- a/Chapter 25 - decorators/property_setters_getters.py +++ /dev/null @@ -1,28 +0,0 @@ -from decimal import Decimal - -class Fees(object): - """""" - - def __init__(self): - """Constructor""" - self._fee = None - - def get_fee(self): - """ - Return the current fee - """ - return self._fee - - def set_fee(self, value): - """ - Set the fee - """ - if isinstance(value, str): - self._fee = Decimal(value) - elif isinstance(value, Decimal): - self._fee = value - -if __name__ == "__main__": - f = Fees() - f.set_fee("1") - print( f.get_fee() ) \ No newline at end of file diff --git a/Chapter 25 - decorators/simple_decorator.py b/Chapter 25 - decorators/simple_decorator.py deleted file mode 100644 index d2ef72b..0000000 --- a/Chapter 25 - decorators/simple_decorator.py +++ /dev/null @@ -1,21 +0,0 @@ -def another_function(func): - """ - A function that accepts another function - """ - - def other_func(): - val = "The result of %s is %s" % (func(), - eval(func()) - ) - return val - return other_func - -def a_function(): - """A pretty useless function""" - return "1+1" - -if __name__ == "__main__": - value = a_function() - print(value) - decorator = another_function(a_function) - print(decorator()) \ No newline at end of file diff --git a/Chapter 25 - decorators/simple_decorator2.py b/Chapter 25 - decorators/simple_decorator2.py deleted file mode 100644 index 940f64c..0000000 --- a/Chapter 25 - decorators/simple_decorator2.py +++ /dev/null @@ -1,20 +0,0 @@ -def another_function(func): - """ - A function that accepts another function - """ - - def other_func(): - val = "The result of %s is %s" % (func(), - eval(func()) - ) - return val - return other_func - -@another_function -def a_function(): - """A pretty useless function""" - return "1+1" - -if __name__ == "__main__": - value = a_function() - print(value) \ No newline at end of file diff --git a/Chapter 25 - decorators/simple_function.py b/Chapter 25 - decorators/simple_function.py deleted file mode 100644 index bbd1dda..0000000 --- a/Chapter 25 - decorators/simple_function.py +++ /dev/null @@ -1,7 +0,0 @@ -def a_function(): - """A pretty useless function""" - return "1+1" - -if __name__ == "__main__": - value = a_function() - print(value) \ No newline at end of file diff --git a/Chapter 26 - lambda/simple_lambda.py b/Chapter 26 - lambda/simple_lambda.py deleted file mode 100644 index 9b4ac1c..0000000 --- a/Chapter 26 - lambda/simple_lambda.py +++ /dev/null @@ -1,11 +0,0 @@ -import math - -def sqroot(x): - """ - Finds the square root of the number passed in - """ - return math.sqrt(x) - -if __name__ == "__main__": - square_rt = lambda x: math.sqrt(x) - print( sqroot(49) ) \ No newline at end of file diff --git a/Chapter 26 - lambda/tkinter_lambda.py b/Chapter 26 - lambda/tkinter_lambda.py deleted file mode 100644 index 208c922..0000000 --- a/Chapter 26 - lambda/tkinter_lambda.py +++ /dev/null @@ -1,25 +0,0 @@ -import Tkinter as tk - -class App: - """""" - - def __init__(self, parent): - """Constructor""" - frame = tk.Frame(parent) - frame.pack() - - btn22 = tk.Button(frame, text="22", command=lambda: self.printNum(22)) - btn22.pack(side=tk.LEFT) - btn44 = tk.Button(frame, text="44", command=lambda: self.printNum(44)) - btn44.pack(side=tk.LEFT) - quitBtn = tk.Button(frame, text="QUIT", fg="red", command=frame.quit) - quitBtn.pack(side=tk.LEFT) - - def printNum(self, num): - """""" - print("You pressed the %s button" % num) - -if __name__ == "__main__": - root = tk.Tk() - app = App(root) - root.mainloop() \ No newline at end of file diff --git a/Chapter 27 - profiling/ptest.py b/Chapter 27 - profiling/ptest.py deleted file mode 100644 index 924453f..0000000 --- a/Chapter 27 - profiling/ptest.py +++ /dev/null @@ -1,24 +0,0 @@ -import time - -def fast(): - """""" - print("I run fast!") - -def slow(): - """""" - time.sleep(3) - print("I run slow!") - -def medium(): - """""" - time.sleep(0.5) - print("I run a little slowly...") - -def main(): - """""" - fast() - slow() - medium() - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/Chapter 28 - testing/dtest1.py b/Chapter 28 - testing/dtest1.py deleted file mode 100644 index 0bb3dbb..0000000 --- a/Chapter 28 - testing/dtest1.py +++ /dev/null @@ -1,10 +0,0 @@ -# dtest1.py - -def double(a): - """ - >>> double(4) - 8 - >>> double(9) - 18 - """ - return a*2 \ No newline at end of file diff --git a/Chapter 28 - testing/dtest2.py b/Chapter 28 - testing/dtest2.py deleted file mode 100644 index 88e363e..0000000 --- a/Chapter 28 - testing/dtest2.py +++ /dev/null @@ -1,12 +0,0 @@ -def double(a): - """ - >>> double(4) - 8 - >>> double(9) - 18 - """ - return a*2 - -if __name__ == "__main__": - import doctest - doctest.testmod(verbose=True) \ No newline at end of file diff --git a/Chapter 28 - testing/first_test_bowling.py b/Chapter 28 - testing/first_test_bowling.py deleted file mode 100644 index c68a8d7..0000000 --- a/Chapter 28 - testing/first_test_bowling.py +++ /dev/null @@ -1,24 +0,0 @@ -import unittest - -class TestBowling(unittest.TestCase): - """""" - def test_all_ones(self): - """Constructor""" - game = Game() - game.roll(11, 1) - self.assertEqual(game.score, 11) - -class Game: - """""" - - def __init__(self): - """Constructor""" - self.score = 0 - - def roll(self, numOfRolls, pins): - """""" - for roll in numOfRolls: - self.score += pins - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/Chapter 28 - testing/first_test_bowling2.py b/Chapter 28 - testing/first_test_bowling2.py deleted file mode 100644 index b44cd4f..0000000 --- a/Chapter 28 - testing/first_test_bowling2.py +++ /dev/null @@ -1,24 +0,0 @@ -import unittest - -class TestBowling(unittest.TestCase): - """""" - def test_all_ones(self): - """Constructor""" - game = Game() - game.roll(11, 1) - self.assertEqual(game.score, 11) - -class Game: - """""" - - def __init__(self): - """Constructor""" - self.score = 0 - - def roll(self, numOfRolls, pins): - """""" - for roll in range(numOfRolls): - self.score += pins - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/Chapter 28 - testing/game_v2.py b/Chapter 28 - testing/game_v2.py deleted file mode 100644 index f091d36..0000000 --- a/Chapter 28 - testing/game_v2.py +++ /dev/null @@ -1,33 +0,0 @@ -# game_v2.py - -class Game: - """""" - def __init__(self): - """Constructor""" - self.score = 0 - self.pins = [0 for i in range(11)] - - def roll(self, numOfRolls, pins): - """""" - x = 0 - for pin in pins: - self.pins[x] = pin - x += 1 - x = 0 - spare_begin = 0 - spare_end = 2 - for roll in range(numOfRolls): - spare = sum(self.pins[spare_begin:spare_end]) - if self.pins[x] == 10: - self.score = self.pins[x] + self.pins[x+1] + self.pins[x+2] - elif spare == 10: - self.score = spare + self.pins[x+2] - x += 1 - else: - self.score += self.pins[x] - x += 1 - if x == 11: - break - spare_begin += 2 - spare_end += 2 - print(self.score) \ No newline at end of file diff --git a/Chapter 28 - testing/second_test_bowling.py b/Chapter 28 - testing/second_test_bowling.py deleted file mode 100644 index 3e0f159..0000000 --- a/Chapter 28 - testing/second_test_bowling.py +++ /dev/null @@ -1,26 +0,0 @@ -from game import Game -import unittest - -class TestBowling(unittest.TestCase): - """""" - - def test_all_ones(self): - """Constructor""" - game = Game() - pins = [1 for i in range(11)] - - game.roll(11, pins) - self.assertEqual(game.score, 11) - - def test_strike(self): - """ - A strike is 10 + the value of the next two rolls. So in this case - the first frame will be 10+5+4 or 19 and the second will be - 5+4. The total score would be 19+9 or 28. - """ - game = Game() - game.roll(11, [10, 5, 4]) - self.assertEqual(game.score, 28) - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/Chapter 28 - testing/second_test_bowling2.py b/Chapter 28 - testing/second_test_bowling2.py deleted file mode 100644 index 5e1eb7e..0000000 --- a/Chapter 28 - testing/second_test_bowling2.py +++ /dev/null @@ -1,49 +0,0 @@ -from game import Game -import unittest - -class TestBowling(unittest.TestCase): - """""" - - def test_all_ones(self): - """Constructor""" - game = Game() - pins = [1 for i in range(11)] - - game.roll(11, pins) - self.assertEqual(game.score, 11) - - def test_strike(self): - """ - A strike is 10 + the value of the next two rolls. So in this case - the first frame will be 10+5+4 or 19 and the second will be - 5+4. The total score would be 19+9 or 28. - """ - game = Game() - game.roll(11, [10, 5, 4]) - self.assertEqual(game.score, 28) - -class Game: - """""" - - def __init__(self): - """Constructor""" - self.score = 0 - self.pins = [0 for i in range(11)] - - def roll(self, numOfRolls, pins): - """""" - x = 0 - for pin in pins: - self.pins[x] = pin - x += 1 - x = 0 - for roll in range(numOfRolls): - if self.pins[x] == 10: - self.score = self.pins[x] + self.pins[x+1] + self.pins[x+2] - else: - self.score += self.pins[x] - x += 1 - print(self.score) - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/Chapter 28 - testing/third_test_bowling.py b/Chapter 28 - testing/third_test_bowling.py deleted file mode 100644 index 4691556..0000000 --- a/Chapter 28 - testing/third_test_bowling.py +++ /dev/null @@ -1,40 +0,0 @@ -from game_v2 import Game -import unittest - -class TestBowling(unittest.TestCase): - """""" - - def setUp(self): - """""" - self.game = Game() - - def test_all_ones(self): - """ - If you don't get a strike or a spare, then you just add up the - face value of the frame. In this case, each frame is worth - one point, so the total is eleven. - """ - pins = [1 for i in range(11)] - self.game.roll(11, pins) - self.assertEqual(self.game.score, 11) - - def test_spare(self): - """ - A spare is worth 10, plus the value of your next roll. So in this - case, the first frame will be 5+5+5 or 15 and the second will be - 5+4 or 9. The total is 15+9, which equals 24, - """ - self.game.roll(11, [5, 5, 5, 4]) - self.assertEqual(self.game.score, 24) - - def test_strike(self): - """ - A strike is 10 + the value of the next two rolls. So in this case - the first frame will be 10+5+4 or 19 and the second will be - 5+4. The total score would be 19+9 or 28. - """ - self.game.roll(11, [10, 5, 4]) - self.assertEqual(self.game.score, 28) - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/Chapter 29 - installing modules/readme.txt b/Chapter 29 - installing modules/readme.txt deleted file mode 100644 index 33682f3..0000000 --- a/Chapter 29 - installing modules/readme.txt +++ /dev/null @@ -1 +0,0 @@ -The exercises in this chapter do not have corresponding code examples and are meant to be done via your console or terminal. \ No newline at end of file diff --git a/Chapter 3 - Lists Dicts Tuples/dict_examples.py b/Chapter 3 - Lists Dicts Tuples/dict_examples.py deleted file mode 100644 index a3c7ff4..0000000 --- a/Chapter 3 - Lists Dicts Tuples/dict_examples.py +++ /dev/null @@ -1,18 +0,0 @@ -# there are two ways to create a Python dictionary (dict) -my_dict = {} -another_dict = dict() - -# here's an example with the dict containing data -my_other_dict = {"one":1, "two":2, "three":3} - -# access values in a dict -my_other_dict["one"] -my_dict = {"name":"Mike", "address":"123 Happy Way"} -my_dict["name"] - -# check if a dict has a particular key -"name" in my_dict # returns True -"state" in my_dict # returns False - -# get a view of the keys in a dict -my_dict.keys() \ No newline at end of file diff --git a/Chapter 3 - Lists Dicts Tuples/list_examples.py b/Chapter 3 - Lists Dicts Tuples/list_examples.py deleted file mode 100644 index c226f41..0000000 --- a/Chapter 3 - Lists Dicts Tuples/list_examples.py +++ /dev/null @@ -1,32 +0,0 @@ -# two ways to create an empty list -my_list = [] -my_list = list() - -# examples of lists -my_list = [1, 2, 3] -my_list2 = ["a", "b", "c"] -my_list3 = ["a", 1, "Python", 5] - -# create a nested list -my_nested_list = [my_list, my_list2] - -# combine / extend a list -combo_list = [] -one_list = [4, 5] -combo_list.extend(one_list) - -# or just concatenate the lists together -my_list = [1, 2, 3] -my_list2 = ["a", "b", "c"] -combo_list = my_list + my_list2 - -# sort a list -alpha_list = [34, 23, 67, 100, 88, 2] -alpha_list.sort() -alpha_list - -# finding a logic error -alpha_list = [34, 23, 67, 100, 88, 2] -sorted_list = alpha_list.sort() -# the sort method returns a None object as lists sort in-place -print(sorted_list) \ No newline at end of file diff --git a/Chapter 3 - Lists Dicts Tuples/tuple_examples.py b/Chapter 3 - Lists Dicts Tuples/tuple_examples.py deleted file mode 100644 index 7ba2279..0000000 --- a/Chapter 3 - Lists Dicts Tuples/tuple_examples.py +++ /dev/null @@ -1,7 +0,0 @@ -# a few tuple examples -my_tuple = (1, 2, 3, 4, 5) -my_tuple[0:3] # tuple slicing -another_tuple = tuple() # creating an empty tuple - -# turn a list into a tuple via casting -abc = tuple([1, 2, 3]) \ No newline at end of file diff --git a/Chapter 30 - configobj/config.ini b/Chapter 30 - configobj/config.ini deleted file mode 100644 index 522488d..0000000 --- a/Chapter 30 - configobj/config.ini +++ /dev/null @@ -1,4 +0,0 @@ -product = Sony PS3 -accessories = controller, eye, memory stick -# This is a comment that will be ignored -retail_price = $400 \ No newline at end of file diff --git a/Chapter 30 - configobj/configobj_example.py b/Chapter 30 - configobj/configobj_example.py deleted file mode 100644 index 5e32d88..0000000 --- a/Chapter 30 - configobj/configobj_example.py +++ /dev/null @@ -1,13 +0,0 @@ -import configobj - -def createConfig(path): - config = configobj.ConfigObj() - config.filename = path - config["Sony"] = {} - config["Sony"]["product"] = "Sony PS3" - config["Sony"]["accessories"] = ['controller', 'eye', 'memory stick'] - config["Sony"]["retail price"] = "$400" - config.write() - -if __name__ == "__main__": - createConfig("config.ini") \ No newline at end of file diff --git a/Chapter 30 - configobj/configspec_example.py b/Chapter 30 - configobj/configspec_example.py deleted file mode 100644 index 887187e..0000000 --- a/Chapter 30 - configobj/configspec_example.py +++ /dev/null @@ -1,42 +0,0 @@ -import configobj, validate - -cfg = """ -bmp_select_transparent = boolean(default=False) -canvas_border = integer(min=10, max=35, default=15) -colour1 = list(min=3, max=3, default=list('280', '0', '0')) -colour2 = list(min=3, max=3, default=list('255', '255', '0')) -colour3 = list(min=3, max=3, default=list('0', '255', '0')) -colour4 = list(min=3, max=3, default=list('255', '0', '0')) -colour5 = list(min=3, max=3, default=list('0', '0', '255')) -colour6 = list(min=3, max=3, default=list('160', '32', '240')) -colour7 = list(min=3, max=3, default=list('0', '255', '255')) -colour8 = list(min=3, max=3, default=list('255', '165', '0')) -colour9 = list(min=3, max=3, default=list('211', '211', '211')) -convert_quality = option('highest', 'high', 'normal', default='normal') -default_font = string -default_width = integer(min=1, max=12000, default=640) -default_height = integer(min=1, max=12000, default=480) -imagemagick_path = string -handle_size = integer(min=3, max=15, default=6) -language = option('English', 'English (United Kingdom)', 'Russian', 'Hindi', default='English') -print_title = boolean(default=True) -statusbar = boolean(default=True) -toolbar = boolean(default=True) -toolbox = option('icon', 'text', default='icon') -undo_sheets = integer(min=5, max=50, default=10) -""" - -def createConfig(path): - """ - Create a config file using a configspec - and validate it against a Validator object - """ - spec = cfg.split("\n") - config = configobj.ConfigObj(path, configspec=spec) - validator = validate.Validator() - config.validate(validator, copy=True) - config.filename = path - config.write() - -if __name__ == "__main__": - createConfig("config.ini") \ No newline at end of file diff --git a/Chapter 31 - lxml/create_xml_with_objectify.py b/Chapter 31 - lxml/create_xml_with_objectify.py deleted file mode 100644 index 2693dc4..0000000 --- a/Chapter 31 - lxml/create_xml_with_objectify.py +++ /dev/null @@ -1,65 +0,0 @@ -from lxml import etree, objectify - -def create_appt(data): - """ - Create an appointment XML element - """ - appt = objectify.Element("appointment") - appt.begin = data["begin"] - appt.uid = data["uid"] - appt.alarmTime = data["alarmTime"] - appt.state = data["state"] - appt.location = data["location"] - appt.duration = data["duration"] - appt.subject = data["subject"] - return appt - -def create_xml(): - """ - Create an XML file - """ - xml = ''' - - - ''' - - root = objectify.fromstring(xml) - root.set("reminder", "15") - - appt = create_appt({"begin":1181251680, - "uid":"040000008200E000", - "alarmTime":1181572063, - "state":"", - "location":"", - "duration":1800, - "subject":"Bring pizza home"} - ) - root.append(appt) - - uid = "604f4792-eb89-478b-a14f-dd34d3cc6c21-1234360800" - appt = create_appt({"begin":1234360800, - "uid":uid, - "alarmTime":1181572063, - "state":"dismissed", - "location":"", - "duration":1800, - "subject":"Check MS Office website for updates"} - ) - root.append(appt) - - # remove lxml annotation - objectify.deannotate(root) - etree.cleanup_namespaces(root) - - # create the xml string - obj_xml = etree.tostring(root, - pretty_print=True, - xml_declaration=True) - try: - with open("example.xml", "wb") as xml_writer: - xml_writer.write(obj_xml) - except IOError: - pass - -if __name__ == "__main__": - create_xml() \ No newline at end of file diff --git a/Chapter 31 - lxml/example.xml b/Chapter 31 - lxml/example.xml deleted file mode 100644 index 0ba8878..0000000 --- a/Chapter 31 - lxml/example.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 1181251680 - 040000008200E000 - 1181572063 - - - 1800 - Bring pizza home - - - 1181253977 - sdlkjlkadhdakhdfd - 1181588888 - TX - Dallas - 1800 - Bring pizza home - - \ No newline at end of file diff --git a/Chapter 31 - lxml/example2.xml b/Chapter 31 - lxml/example2.xml deleted file mode 100644 index bbcb205..0000000 --- a/Chapter 31 - lxml/example2.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - Gambardella, Matthew - XML Developer's Guide - Computer - 44.95 - 2000-10-01 - An in-depth look at creating applications - with XML. - - - Ralls, Kim - Midnight Rain - Fantasy - 5.95 - 2000-12-16 - A former architect battles corporate zombies, - an evil sorceress, and her own childhood to become queen - of the world. - - - Corets, Eva - Maeve Ascendant - Fantasy - 5.95 - 2000-11-17 - After the collapse of a nanotechnology - society in England, the young survivors lay the - foundation for a new society. - - \ No newline at end of file diff --git a/Chapter 31 - lxml/parse_book_example.py b/Chapter 31 - lxml/parse_book_example.py deleted file mode 100644 index cb46bef..0000000 --- a/Chapter 31 - lxml/parse_book_example.py +++ /dev/null @@ -1,28 +0,0 @@ -from lxml import etree -from StringIO import StringIO - -def parseBookXML(xmlFile): - - f = open(xmlFile) - xml = f.read() - f.close() - - tree = etree.parse(StringIO(xml)) - print(tree.docinfo.doctype) - context = etree.iterparse(StringIO(xml)) - book_dict = {} - books = [] - for action, elem in context: - if not elem.text: - text = "None" - else: - text = elem.text - print(elem.tag + " => " + text) - book_dict[elem.tag] = text - if elem.tag == "book": - books.append(book_dict) - book_dict = {} - return books - -if __name__ == "__main__": - parseBookXML("example2.xml") \ No newline at end of file diff --git a/Chapter 31 - lxml/parse_book_example_refactored.py b/Chapter 31 - lxml/parse_book_example_refactored.py deleted file mode 100644 index 271adb3..0000000 --- a/Chapter 31 - lxml/parse_book_example_refactored.py +++ /dev/null @@ -1,21 +0,0 @@ -from lxml import etree - -def parseBookXML(xmlFile): - """""" - context = etree.iterparse(xmlFile) - book_dict = {} - books = [] - for action, elem in context: - if not elem.text: - text = "None" - else: - text = elem.text - print(elem.tag + " => " + text) - book_dict[elem.tag] = text - if elem.tag == "book": - books.append(book_dict) - book_dict = {} - return books - -if __name__ == "__main__": - parseBookXML("example3.xml") \ No newline at end of file diff --git a/Chapter 31 - lxml/parse_with_objectify.py b/Chapter 31 - lxml/parse_with_objectify.py deleted file mode 100644 index 6d07dbd..0000000 --- a/Chapter 31 - lxml/parse_with_objectify.py +++ /dev/null @@ -1,40 +0,0 @@ -from lxml import etree, objectify - -def parseXML(xmlFile): - """Parse the XML file""" - with open(xmlFile) as f: - xml = f.read() - - root = objectify.fromstring(xml) - - # returns attributes in element node as dict - attrib = root.attrib - - # how to extract element data - begin = root.appointment.begin - uid = root.appointment.uid - - # loop over elements and print their tags and text - for e in root.appointment.iterchildren(): - print("%s => %s" % (e.tag, e.text)) - - # how to change an element's text - root.appointment.begin = "something else" - print(root.appointment.begin) - - # how to add a new element - root.appointment.new_element = "new data" - - # remove the py:pytype stuff - objectify.deannotate(root) - etree.cleanup_namespaces(root) - obj_xml = etree.tostring(root, pretty_print=True) - print(obj_xml) - - # save your xml - with open("new.xml", "w") as f: - f.write(obj_xml) - -if __name__ == "__main__": - f = r'path\to\sample.xml' - parseXML(f) \ No newline at end of file diff --git a/Chapter 31 - lxml/simple_parser.py b/Chapter 31 - lxml/simple_parser.py deleted file mode 100644 index 1904b15..0000000 --- a/Chapter 31 - lxml/simple_parser.py +++ /dev/null @@ -1,22 +0,0 @@ -from lxml import etree -from StringIO import StringIO - -def parseXML(xmlFile): - """ - Parse the xml - """ - f = open(xmlFile) - xml = f.read() - f.close() - - tree = etree.parse(StringIO(xml)) - context = etree.iterparse(StringIO(xml)) - for action, elem in context: - if not elem.text: - text = "None" - else: - text = elem.text - print(elem.tag + " => " + text) - -if __name__ == "__main__": - parseXML("example.xml") \ No newline at end of file diff --git a/Chapter 32 - code analysis/crummy_code.py b/Chapter 32 - code analysis/crummy_code.py deleted file mode 100644 index 22f1223..0000000 --- a/Chapter 32 - code analysis/crummy_code.py +++ /dev/null @@ -1,20 +0,0 @@ -import sys - -class CarClass: - """""" - - def __init__(self, color, make, model, year): - """Constructor""" - self.color = color - self.make = make - self.model = model - self.year = year - - if "Windows" in platform.platform(): - print("You're using Windows!") - - self.weight = self.getWeight(1, 2, 3) - - def getWeight(this): - """""" - return "2000 lbs" \ No newline at end of file diff --git a/Chapter 32 - code analysis/crummy_code_fixed.py b/Chapter 32 - code analysis/crummy_code_fixed.py deleted file mode 100644 index b3cf6fb..0000000 --- a/Chapter 32 - code analysis/crummy_code_fixed.py +++ /dev/null @@ -1,20 +0,0 @@ -# crummy_code_fixed.py -import platform - -class CarClass: - """""" - def __init__(self, color, make, model, year): - """Constructor""" - self.color = color - self.make = make - self.model = model - self.year = year - - if "Windows" in platform.platform(): - print("You're using Windows!") - - self.weight = self.get_weight(3) - - def get_weight(self, this): - """""" - return "2000 lbs" \ No newline at end of file diff --git a/Chapter 33 - requests/submit_form_requests.py b/Chapter 33 - requests/submit_form_requests.py deleted file mode 100644 index 793ba22..0000000 --- a/Chapter 33 - requests/submit_form_requests.py +++ /dev/null @@ -1,7 +0,0 @@ -import requests - -url = 'https://duckduckgo.com/html/' -payload = {'q':'python'} -r = requests.get(url, params=payload) -with open("requests_results.html", "wb") as f: - f.write(r.content) \ No newline at end of file diff --git a/Chapter 33 - requests/submit_form_urllib.py b/Chapter 33 - requests/submit_form_urllib.py deleted file mode 100644 index 339043a..0000000 --- a/Chapter 33 - requests/submit_form_urllib.py +++ /dev/null @@ -1,12 +0,0 @@ -import urllib.request -import urllib.parse -import webbrowser - -data = urllib.parse.urlencode({'q': 'Python'}) -url = 'http://duckduckgo.com/html/' -full_url = url + '?' + data -response = urllib.request.urlopen(full_url) -with open("results.html", "wb") as f: - f.write(response.read()) - -webbrowser.open("results.html") \ No newline at end of file diff --git a/Chapter 34 - SQLAlchemy/add_data.py b/Chapter 34 - SQLAlchemy/add_data.py deleted file mode 100644 index e6ec996..0000000 --- a/Chapter 34 - SQLAlchemy/add_data.py +++ /dev/null @@ -1,43 +0,0 @@ -# add_data.py -import datetime -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from table_def import Album, Artist - -engine = create_engine('sqlite:///mymusic.db', echo=True) - -# create a Session -Session = sessionmaker(bind=engine) -session = Session() - -# Create an artist -new_artist = Artist(name="Newsboys") -new_artist.albums = [Album(title="Read All About It", - release_date=datetime.date(1988,12,1), - publisher="Refuge", media_type="CD")] - -# add more albums -more_albums = [Album(title="Hell Is for Wimps", - release_date=datetime.date(1990,7,31), - publisher="Star Song", media_type="CD"), - Album(title="Love Liberty Disco", - release_date=datetime.date(1999,11,16), - publisher="Sparrow", media_type="CD"), - Album(title="Thrive", - release_date=datetime.date(2002,3,26), - publisher="Sparrow", media_type="CD")] -new_artist.albums.extend(more_albums) - -# Add the record to the session object -session.add(new_artist) - -# commit the record the database -session.commit() - -# Add several artists -session.add_all([ - Artist(name="MXPX"), - Artist(name="Kutless"), - Artist(name="Thousand Foot Krutch") -]) -session.commit() \ No newline at end of file diff --git a/Chapter 34 - SQLAlchemy/deleting_data.py b/Chapter 34 - SQLAlchemy/deleting_data.py deleted file mode 100644 index 7558e0d..0000000 --- a/Chapter 34 - SQLAlchemy/deleting_data.py +++ /dev/null @@ -1,15 +0,0 @@ -# deleting_data.py -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from table_def import Album, Artist - -engine = create_engine('sqlite:///mymusic.db', echo=True) - -# create a Session -Session = sessionmaker(bind=engine) -session = Session() - -res = session.query(Artist).filter(Artist.name=="MXPX").first() - -session.delete(res) -session.commit() \ No newline at end of file diff --git a/Chapter 34 - SQLAlchemy/modify_data.py b/Chapter 34 - SQLAlchemy/modify_data.py deleted file mode 100644 index 5dd439e..0000000 --- a/Chapter 34 - SQLAlchemy/modify_data.py +++ /dev/null @@ -1,24 +0,0 @@ -# modify_data.py -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from table_def import Album, Artist - -engine = create_engine('sqlite:///mymusic.db', echo=True) - -# create a Session -Session = sessionmaker(bind=engine) -session = Session() - -# querying for a record in the Artist table -res = session.query(Artist).filter(Artist.name=="Kutless").first() -print(res.name) - -# changing the name -res.name = "Beach Boys" -session.commit() - -# editing Album data -artist, album = session.query(Artist, Album).filter( - Artist.id==Album.artist_id).filter(Album.title=="Thrive").first() -album.title = "Step Up to the Microphone" -session.commit() \ No newline at end of file diff --git a/Chapter 34 - SQLAlchemy/queries.py b/Chapter 34 - SQLAlchemy/queries.py deleted file mode 100644 index b633875..0000000 --- a/Chapter 34 - SQLAlchemy/queries.py +++ /dev/null @@ -1,33 +0,0 @@ -# queries.py -from sqlalchemy import create_engine -from sqlalchemy.orm import sessionmaker -from table_def import Album, Artist - -engine = create_engine('sqlite:///mymusic.db', echo=True) - -# create a Session -Session = sessionmaker(bind=engine) -session = Session() - -# how to do a SELECT * (i.e. all) -res = session.query(Artist).all() -for artist in res: - print(artist.name) - -# how to SELECT the first result -res = session.query(Artist).filter(Artist.name=="Newsboys").first() - -# how to sort the results (ORDER_BY) -res = session.query(Album).order_by(Album.title).all() -for album in res: - print(album.title) - -# how to do a JOINed query -qry = session.query(Artist, Album) -qry = qry.filter(Artist.id==Album.artist_id) -artist, album = qry.filter(Album.title=="Step Up to the Microphone").first() - -# how to use LIKE in a query -res = session.query(Album).filter(Album.publisher.like("S%a%")).all() -for item in res: - print(item.publisher) \ No newline at end of file diff --git a/Chapter 34 - SQLAlchemy/table_def.py b/Chapter 34 - SQLAlchemy/table_def.py deleted file mode 100644 index 719b0df..0000000 --- a/Chapter 34 - SQLAlchemy/table_def.py +++ /dev/null @@ -1,31 +0,0 @@ -# table_def.py -from sqlalchemy import create_engine, ForeignKey -from sqlalchemy import Column, Date, Integer, String -from sqlalchemy.ext.declarative import declarative_base -from sqlalchemy.orm import relationship, backref - -engine = create_engine('sqlite:///mymusic.db', echo=True) -Base = declarative_base() - -class Artist(Base): - """""" - __tablename__ = "artists" - - id = Column(Integer, primary_key=True) - name = Column(String) - - class Album(Base): - """""" - __tablename__ = "albums" - - id = Column(Integer, primary_key=True) - title = Column(String) - release_date = Column(Date) - publisher = Column(String) - media_type = Column(String) - - artist_id = Column(Integer, ForeignKey("artists.id")) - artist = relationship("Artist", backref=backref("albums", order_by=id)) - -# create tables -Base.metadata.create_all(engine) \ No newline at end of file diff --git a/Chapter 35 - virtualenv/readme.txt b/Chapter 35 - virtualenv/readme.txt deleted file mode 100644 index 20f3899..0000000 --- a/Chapter 35 - virtualenv/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This chapter is meant to be done in a terminal or console. \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/arithmetic.py b/Chapter 36 - creating modules and packages/arithmetic.py deleted file mode 100644 index 8ca2008..0000000 --- a/Chapter 36 - creating modules and packages/arithmetic.py +++ /dev/null @@ -1,11 +0,0 @@ -def add(x, y): - return x + y - -def division(x, y): - return x / y - -def multiply(x, y): - return x * y - -def subtract(x, y): - return x - y \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/arithmetic2.py b/Chapter 36 - creating modules and packages/arithmetic2.py deleted file mode 100644 index a77010c..0000000 --- a/Chapter 36 - creating modules and packages/arithmetic2.py +++ /dev/null @@ -1,28 +0,0 @@ -def add(x, y): - return x + y - -def division(x, y): - return x / y - -def multiply(x, y): - return x * y - -def subtract(x, y): - return x - y - -if __name__ == "__main__": - import sys - print(sys.argv) - v = sys.argv[1].lower() - valOne = int(sys.argv[2]) - valTwo = int(sys.argv[3]) - if v == "a": - print(add(valOne, valTwo)) - elif v == "d": - print(division(valOne, valTwo)) - elif v == "m": - print(multiply(valOne, valTwo)) - elif v == "s": - print(subtract(valOne, valTwo)) - else: - pass \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/modify_path.py b/Chapter 36 - creating modules and packages/modify_path.py deleted file mode 100644 index a51d621..0000000 --- a/Chapter 36 - creating modules and packages/modify_path.py +++ /dev/null @@ -1,11 +0,0 @@ -import sys - -# modify this path to match your environment -sys.path.append('C:\Users\mdriscoll\Documents') - -import mymath - -print(mymath.add(4,5)) -print(mymath.division(4, 2)) -print(mymath.multiply(10, 5)) -print(mymath.squareroot(48)) \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/__init__.py b/Chapter 36 - creating modules and packages/mymath/__init__.py deleted file mode 100644 index 81646bb..0000000 --- a/Chapter 36 - creating modules and packages/mymath/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# outer __init__.py -from . add import add -from . divide import division -from . multiply import multiply -from . subtract import subtract -from .adv.sqrt import squareroot \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/add.py b/Chapter 36 - creating modules and packages/mymath/add.py deleted file mode 100644 index 370d4fb..0000000 --- a/Chapter 36 - creating modules and packages/mymath/add.py +++ /dev/null @@ -1,2 +0,0 @@ -def add(x, y): - return x + y \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/adv/__init__.py b/Chapter 36 - creating modules and packages/mymath/adv/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/Chapter 36 - creating modules and packages/mymath/adv/sqrt.py b/Chapter 36 - creating modules and packages/mymath/adv/sqrt.py deleted file mode 100644 index 263e5b3..0000000 --- a/Chapter 36 - creating modules and packages/mymath/adv/sqrt.py +++ /dev/null @@ -1,5 +0,0 @@ -# sqrt.py -import math - -def squareroot(n): - return math.sqrt(n) \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/divide.py b/Chapter 36 - creating modules and packages/mymath/divide.py deleted file mode 100644 index ba34cf0..0000000 --- a/Chapter 36 - creating modules and packages/mymath/divide.py +++ /dev/null @@ -1,2 +0,0 @@ -def division(x, y): - return x / y \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/multiply.py b/Chapter 36 - creating modules and packages/mymath/multiply.py deleted file mode 100644 index 43dfa55..0000000 --- a/Chapter 36 - creating modules and packages/mymath/multiply.py +++ /dev/null @@ -1,2 +0,0 @@ -def multiply(x, y): - return x * y \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/mymath/subtract.py b/Chapter 36 - creating modules and packages/mymath/subtract.py deleted file mode 100644 index 910a92a..0000000 --- a/Chapter 36 - creating modules and packages/mymath/subtract.py +++ /dev/null @@ -1,2 +0,0 @@ -def subtract(x, y): - return x - y \ No newline at end of file diff --git a/Chapter 36 - creating modules and packages/setup.py b/Chapter 36 - creating modules and packages/setup.py deleted file mode 100644 index a514839..0000000 --- a/Chapter 36 - creating modules and packages/setup.py +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env python -from setuptools import setup - -# This setup is suitable for "python setup.py develop". -setup(name='mymath', - version='0.1', - description='A silly math package', - author='Mike Driscoll', - author_email='mike@mymath.org', - url='http://www.mymath.org/', - packages=['mymath', 'mymath.adv'], - ) \ No newline at end of file diff --git a/Chapter 37 - add your code to pypi/.pypirc b/Chapter 37 - add your code to pypi/.pypirc deleted file mode 100644 index 645ef74..0000000 --- a/Chapter 37 - add your code to pypi/.pypirc +++ /dev/null @@ -1,14 +0,0 @@ -[distutils] -index-servers= - pypi - test - -[test] -repository = https://testpypi.python.org/pypi -username = richard -password = - -[pypi] -repository = http://pypi.python.org/pypi -username = richard -password = \ No newline at end of file diff --git a/Chapter 37 - add your code to pypi/setup.py b/Chapter 37 - add your code to pypi/setup.py deleted file mode 100644 index 22b6855..0000000 --- a/Chapter 37 - add your code to pypi/setup.py +++ /dev/null @@ -1,6 +0,0 @@ -from distutils.core import setup - -setup(name='mymath', - version='0.1', - packages=['mymath', 'mymath.adv'], - ) \ No newline at end of file diff --git a/Chapter 37 - add your code to pypi/setup2.py b/Chapter 37 - add your code to pypi/setup2.py deleted file mode 100644 index 1137346..0000000 --- a/Chapter 37 - add your code to pypi/setup2.py +++ /dev/null @@ -1,10 +0,0 @@ -from distutils.core import setup - -setup(name='mymath', - version='0.1', - description='A silly math package', - author='Mike Driscoll', - author_email='mike@mymath.org', - url='http://www.mymath.org/', - packages=['mymath', 'mymath.adv'], - ) \ No newline at end of file diff --git a/Chapter 38 - Python eggs/setup.py b/Chapter 38 - Python eggs/setup.py deleted file mode 100644 index bc88077..0000000 --- a/Chapter 38 - Python eggs/setup.py +++ /dev/null @@ -1,7 +0,0 @@ -from setuptools import setup, find_packages - -setup( - name = "mymath", - version = "0.1", - packages = find_packages() - ) \ No newline at end of file diff --git a/Chapter 39 - Python wheels/readme.txt b/Chapter 39 - Python wheels/readme.txt deleted file mode 100644 index 20f3899..0000000 --- a/Chapter 39 - Python wheels/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This chapter is meant to be done in a terminal or console. \ No newline at end of file diff --git a/Chapter 4 - Conditionals/conditionals.py b/Chapter 4 - Conditionals/conditionals.py deleted file mode 100644 index b39d867..0000000 --- a/Chapter 4 - Conditionals/conditionals.py +++ /dev/null @@ -1,9 +0,0 @@ -# a simple if statement -if 2 > 1: - print("This is a True statement!") - -# another simple if statement -var1 = 1 -var2 = 3 -if var1 > var2: - print("This is also True") \ No newline at end of file diff --git a/Chapter 40 - py2exe/advanced_setup.py b/Chapter 40 - py2exe/advanced_setup.py deleted file mode 100644 index 7bbce7f..0000000 --- a/Chapter 40 - py2exe/advanced_setup.py +++ /dev/null @@ -1,28 +0,0 @@ -from distutils.core import setup -import py2exe - -includes = [] -excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger', - 'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', - 'Tkconstants', 'Tkinter'] -packages = [] -dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll', - 'tk84.dll'] - -setup( - options = {"py2exe": {"compressed": 2, - "optimize": 2, - "includes": includes, - "excludes": excludes, - "packages": packages, - "dll_excludes": dll_excludes, - "bundle_files": 3, - "dist_dir": "dist", - "xref": False, - "skip_archive": False, - "ascii": False, - "custom_boot_script": '', - } - }, - windows=['sampleApp.py'] - ) \ No newline at end of file diff --git a/Chapter 40 - py2exe/sampleApp.py b/Chapter 40 - py2exe/sampleApp.py deleted file mode 100644 index 494cd42..0000000 --- a/Chapter 40 - py2exe/sampleApp.py +++ /dev/null @@ -1,56 +0,0 @@ -import wx - -class DemoPanel(wx.Panel): - """""" - def __init__(self, parent): - """Constructor""" - wx.Panel.__init__(self, parent) - - labels = ["Name", "Address", "City", "State", "Zip", - "Phone", "Email", "Notes"] - - mainSizer = wx.BoxSizer(wx.VERTICAL) - lbl = wx.StaticText(self, label="Please enter your information here:") - lbl.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) - mainSizer.Add(lbl, 0, wx.ALL, 5) - for lbl in labels: - sizer = self.buildControls(lbl) - mainSizer.Add(sizer, 1, wx.EXPAND) - self.SetSizer(mainSizer) - mainSizer.Layout() - - def buildControls(self, label): - """ - Put the widgets together - """ - sizer = wx.BoxSizer(wx.HORIZONTAL) - size = (80,40) - font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) - lbl = wx.StaticText(self, label=label, size=size) - lbl.SetFont(font) - sizer.Add(lbl, 0, wx.ALL|wx.CENTER, 5) - if label != "Notes": - txt = wx.TextCtrl(self, name=label) - else: - txt = wx.TextCtrl(self, style=wx.TE_MULTILINE, name=label) - sizer.Add(txt, 1, wx.ALL, 5) - return sizer - -class DemoFrame(wx.Frame): - """ - Frame that holds all other widgets - """ - - def __init__(self): - """Constructor""" - wx.Frame.__init__(self, None, wx.ID_ANY, - "Py2Exe Tutorial", - size=(600,400) - ) - panel = DemoPanel(self) - self.Show() - -if __name__ == "__main__": - app = wx.App(False) - frame = DemoFrame() - app.MainLoop() \ No newline at end of file diff --git a/Chapter 40 - py2exe/setup.py b/Chapter 40 - py2exe/setup.py deleted file mode 100644 index 301f2a8..0000000 --- a/Chapter 40 - py2exe/setup.py +++ /dev/null @@ -1,4 +0,0 @@ -from distutils.core import setup -import py2exe - -setup(windows=['sampleApp.py']) \ No newline at end of file diff --git a/Chapter 41 - bbfreeze/bb_setup.py b/Chapter 41 - bbfreeze/bb_setup.py deleted file mode 100644 index cd416e5..0000000 --- a/Chapter 41 - bbfreeze/bb_setup.py +++ /dev/null @@ -1,6 +0,0 @@ -# bb_setup.py -from bbfreeze import Freezer - -f = Freezer(distdir="bb-binary") -f.addScript("sampleApp.py") -f() \ No newline at end of file diff --git a/Chapter 41 - bbfreeze/bb_setup2.py b/Chapter 41 - bbfreeze/bb_setup2.py deleted file mode 100644 index 0a64a7c..0000000 --- a/Chapter 41 - bbfreeze/bb_setup2.py +++ /dev/null @@ -1,15 +0,0 @@ -# bb_setup2.py -from bbfreeze import Freezer - -includes = [] -excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger', - 'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl', - 'Tkconstants', 'Tkinter'] - -bbFreeze_Class = Freezer('dist', includes=includes, excludes=excludes) - -bbFreeze_Class.addScript("sampleApp.py", gui_only=True) - -bbFreeze_Class.use_compression = 0 -bbFreeze_Class.include_py = True -bbFreeze_Class() \ No newline at end of file diff --git a/Chapter 41 - bbfreeze/config_1.py b/Chapter 41 - bbfreeze/config_1.py deleted file mode 100644 index a3bc2e6..0000000 --- a/Chapter 41 - bbfreeze/config_1.py +++ /dev/null @@ -1,36 +0,0 @@ -# config_1.py -import configobj - -def createConfig(configFile): - """ - Create the configuration file - """ - config = configobj.ConfigObj() - inifile = configFile - config.filename = inifile - config['server'] = "http://www.google.com" - config['username'] = "mike" - config['password'] = "dingbat" - config['update interval'] = 2 - config.write() - -def getConfig(configFile): - """ - Open the config file and return a configobj - """ - return configobj.ConfigObj(configFile) - -def createConfig2(path): - """ - Create a config file - """ - config = configobj.ConfigObj() - config.filename = path - config["Sony"] = {} - config["Sony"]["product"] = "Sony PS3" - config["Sony"]["accessories"] = ['controller', 'eye', 'memory stick'] - config["Sony"]["retail price"] = "$400" - config.write() - -if __name__ == "__main__": - createConfig2("sampleConfig2.ini") \ No newline at end of file diff --git a/Chapter 41 - bbfreeze/sampleApp.py b/Chapter 41 - bbfreeze/sampleApp.py deleted file mode 100644 index 494cd42..0000000 --- a/Chapter 41 - bbfreeze/sampleApp.py +++ /dev/null @@ -1,56 +0,0 @@ -import wx - -class DemoPanel(wx.Panel): - """""" - def __init__(self, parent): - """Constructor""" - wx.Panel.__init__(self, parent) - - labels = ["Name", "Address", "City", "State", "Zip", - "Phone", "Email", "Notes"] - - mainSizer = wx.BoxSizer(wx.VERTICAL) - lbl = wx.StaticText(self, label="Please enter your information here:") - lbl.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) - mainSizer.Add(lbl, 0, wx.ALL, 5) - for lbl in labels: - sizer = self.buildControls(lbl) - mainSizer.Add(sizer, 1, wx.EXPAND) - self.SetSizer(mainSizer) - mainSizer.Layout() - - def buildControls(self, label): - """ - Put the widgets together - """ - sizer = wx.BoxSizer(wx.HORIZONTAL) - size = (80,40) - font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) - lbl = wx.StaticText(self, label=label, size=size) - lbl.SetFont(font) - sizer.Add(lbl, 0, wx.ALL|wx.CENTER, 5) - if label != "Notes": - txt = wx.TextCtrl(self, name=label) - else: - txt = wx.TextCtrl(self, style=wx.TE_MULTILINE, name=label) - sizer.Add(txt, 1, wx.ALL, 5) - return sizer - -class DemoFrame(wx.Frame): - """ - Frame that holds all other widgets - """ - - def __init__(self): - """Constructor""" - wx.Frame.__init__(self, None, wx.ID_ANY, - "Py2Exe Tutorial", - size=(600,400) - ) - panel = DemoPanel(self) - self.Show() - -if __name__ == "__main__": - app = wx.App(False) - frame = DemoFrame() - app.MainLoop() \ No newline at end of file diff --git a/Chapter 42 - cx_Freeze/config_1.py b/Chapter 42 - cx_Freeze/config_1.py deleted file mode 100644 index a3bc2e6..0000000 --- a/Chapter 42 - cx_Freeze/config_1.py +++ /dev/null @@ -1,36 +0,0 @@ -# config_1.py -import configobj - -def createConfig(configFile): - """ - Create the configuration file - """ - config = configobj.ConfigObj() - inifile = configFile - config.filename = inifile - config['server'] = "http://www.google.com" - config['username'] = "mike" - config['password'] = "dingbat" - config['update interval'] = 2 - config.write() - -def getConfig(configFile): - """ - Open the config file and return a configobj - """ - return configobj.ConfigObj(configFile) - -def createConfig2(path): - """ - Create a config file - """ - config = configobj.ConfigObj() - config.filename = path - config["Sony"] = {} - config["Sony"]["product"] = "Sony PS3" - config["Sony"]["accessories"] = ['controller', 'eye', 'memory stick'] - config["Sony"]["retail price"] = "$400" - config.write() - -if __name__ == "__main__": - createConfig2("sampleConfig2.ini") \ No newline at end of file diff --git a/Chapter 42 - cx_Freeze/sampleApp.py b/Chapter 42 - cx_Freeze/sampleApp.py deleted file mode 100644 index 494cd42..0000000 --- a/Chapter 42 - cx_Freeze/sampleApp.py +++ /dev/null @@ -1,56 +0,0 @@ -import wx - -class DemoPanel(wx.Panel): - """""" - def __init__(self, parent): - """Constructor""" - wx.Panel.__init__(self, parent) - - labels = ["Name", "Address", "City", "State", "Zip", - "Phone", "Email", "Notes"] - - mainSizer = wx.BoxSizer(wx.VERTICAL) - lbl = wx.StaticText(self, label="Please enter your information here:") - lbl.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) - mainSizer.Add(lbl, 0, wx.ALL, 5) - for lbl in labels: - sizer = self.buildControls(lbl) - mainSizer.Add(sizer, 1, wx.EXPAND) - self.SetSizer(mainSizer) - mainSizer.Layout() - - def buildControls(self, label): - """ - Put the widgets together - """ - sizer = wx.BoxSizer(wx.HORIZONTAL) - size = (80,40) - font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) - lbl = wx.StaticText(self, label=label, size=size) - lbl.SetFont(font) - sizer.Add(lbl, 0, wx.ALL|wx.CENTER, 5) - if label != "Notes": - txt = wx.TextCtrl(self, name=label) - else: - txt = wx.TextCtrl(self, style=wx.TE_MULTILINE, name=label) - sizer.Add(txt, 1, wx.ALL, 5) - return sizer - -class DemoFrame(wx.Frame): - """ - Frame that holds all other widgets - """ - - def __init__(self): - """Constructor""" - wx.Frame.__init__(self, None, wx.ID_ANY, - "Py2Exe Tutorial", - size=(600,400) - ) - panel = DemoPanel(self) - self.Show() - -if __name__ == "__main__": - app = wx.App(False) - frame = DemoFrame() - app.MainLoop() \ No newline at end of file diff --git a/Chapter 42 - cx_Freeze/setup.py b/Chapter 42 - cx_Freeze/setup.py deleted file mode 100644 index 57c6d69..0000000 --- a/Chapter 42 - cx_Freeze/setup.py +++ /dev/null @@ -1,9 +0,0 @@ -# setup.py -from cx_Freeze import setup, Executable - -setup( - name = "wxSampleApp", - version = "0.1", - description = "An example wxPython script", - executables = [Executable("sampleApp.py")] -) \ No newline at end of file diff --git a/Chapter 42 - cx_Freeze/setup2.py b/Chapter 42 - cx_Freeze/setup2.py deleted file mode 100644 index 4e954bc..0000000 --- a/Chapter 42 - cx_Freeze/setup2.py +++ /dev/null @@ -1,13 +0,0 @@ -from cx_Freeze import setup, Executable - -exe = Executable( - script="sampleApp.py", - base="Win32GUI", -) - -setup( - name = "wxSampleApp", - version = "0.1", - description = "An example wxPython script", - executables = [exe] -) \ No newline at end of file diff --git a/Chapter 43 - PyInstaller/config_1.py b/Chapter 43 - PyInstaller/config_1.py deleted file mode 100644 index a3bc2e6..0000000 --- a/Chapter 43 - PyInstaller/config_1.py +++ /dev/null @@ -1,36 +0,0 @@ -# config_1.py -import configobj - -def createConfig(configFile): - """ - Create the configuration file - """ - config = configobj.ConfigObj() - inifile = configFile - config.filename = inifile - config['server'] = "http://www.google.com" - config['username'] = "mike" - config['password'] = "dingbat" - config['update interval'] = 2 - config.write() - -def getConfig(configFile): - """ - Open the config file and return a configobj - """ - return configobj.ConfigObj(configFile) - -def createConfig2(path): - """ - Create a config file - """ - config = configobj.ConfigObj() - config.filename = path - config["Sony"] = {} - config["Sony"]["product"] = "Sony PS3" - config["Sony"]["accessories"] = ['controller', 'eye', 'memory stick'] - config["Sony"]["retail price"] = "$400" - config.write() - -if __name__ == "__main__": - createConfig2("sampleConfig2.ini") \ No newline at end of file diff --git a/Chapter 43 - PyInstaller/sampleApp.py b/Chapter 43 - PyInstaller/sampleApp.py deleted file mode 100644 index 494cd42..0000000 --- a/Chapter 43 - PyInstaller/sampleApp.py +++ /dev/null @@ -1,56 +0,0 @@ -import wx - -class DemoPanel(wx.Panel): - """""" - def __init__(self, parent): - """Constructor""" - wx.Panel.__init__(self, parent) - - labels = ["Name", "Address", "City", "State", "Zip", - "Phone", "Email", "Notes"] - - mainSizer = wx.BoxSizer(wx.VERTICAL) - lbl = wx.StaticText(self, label="Please enter your information here:") - lbl.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) - mainSizer.Add(lbl, 0, wx.ALL, 5) - for lbl in labels: - sizer = self.buildControls(lbl) - mainSizer.Add(sizer, 1, wx.EXPAND) - self.SetSizer(mainSizer) - mainSizer.Layout() - - def buildControls(self, label): - """ - Put the widgets together - """ - sizer = wx.BoxSizer(wx.HORIZONTAL) - size = (80,40) - font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) - lbl = wx.StaticText(self, label=label, size=size) - lbl.SetFont(font) - sizer.Add(lbl, 0, wx.ALL|wx.CENTER, 5) - if label != "Notes": - txt = wx.TextCtrl(self, name=label) - else: - txt = wx.TextCtrl(self, style=wx.TE_MULTILINE, name=label) - sizer.Add(txt, 1, wx.ALL, 5) - return sizer - -class DemoFrame(wx.Frame): - """ - Frame that holds all other widgets - """ - - def __init__(self): - """Constructor""" - wx.Frame.__init__(self, None, wx.ID_ANY, - "Py2Exe Tutorial", - size=(600,400) - ) - panel = DemoPanel(self) - self.Show() - -if __name__ == "__main__": - app = wx.App(False) - frame = DemoFrame() - app.MainLoop() \ No newline at end of file diff --git a/Chapter 44 - Creating an installer/sampleApp.py b/Chapter 44 - Creating an installer/sampleApp.py deleted file mode 100644 index 494cd42..0000000 --- a/Chapter 44 - Creating an installer/sampleApp.py +++ /dev/null @@ -1,56 +0,0 @@ -import wx - -class DemoPanel(wx.Panel): - """""" - def __init__(self, parent): - """Constructor""" - wx.Panel.__init__(self, parent) - - labels = ["Name", "Address", "City", "State", "Zip", - "Phone", "Email", "Notes"] - - mainSizer = wx.BoxSizer(wx.VERTICAL) - lbl = wx.StaticText(self, label="Please enter your information here:") - lbl.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) - mainSizer.Add(lbl, 0, wx.ALL, 5) - for lbl in labels: - sizer = self.buildControls(lbl) - mainSizer.Add(sizer, 1, wx.EXPAND) - self.SetSizer(mainSizer) - mainSizer.Layout() - - def buildControls(self, label): - """ - Put the widgets together - """ - sizer = wx.BoxSizer(wx.HORIZONTAL) - size = (80,40) - font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD) - lbl = wx.StaticText(self, label=label, size=size) - lbl.SetFont(font) - sizer.Add(lbl, 0, wx.ALL|wx.CENTER, 5) - if label != "Notes": - txt = wx.TextCtrl(self, name=label) - else: - txt = wx.TextCtrl(self, style=wx.TE_MULTILINE, name=label) - sizer.Add(txt, 1, wx.ALL, 5) - return sizer - -class DemoFrame(wx.Frame): - """ - Frame that holds all other widgets - """ - - def __init__(self): - """Constructor""" - wx.Frame.__init__(self, None, wx.ID_ANY, - "Py2Exe Tutorial", - size=(600,400) - ) - panel = DemoPanel(self) - self.Show() - -if __name__ == "__main__": - app = wx.App(False) - frame = DemoFrame() - app.MainLoop() \ No newline at end of file diff --git a/Chapter 5 - Loops/for_loops.py b/Chapter 5 - Loops/for_loops.py deleted file mode 100644 index 71fc156..0000000 --- a/Chapter 5 - Loops/for_loops.py +++ /dev/null @@ -1,34 +0,0 @@ -# a basic for loop -for number in range(5): - print(number) - -# you can also write the above like this -for number in [0, 1, 2, 3, 4]: - print(number) - -# this is how to loop over the keys in a dict -a_dict = {"one":1, "two":2, "three":3} -for key in a_dict: - print(key) - -# sort the keys before looping over them -a_dict = {1:"one", 2:"two", 3:"three"} -keys = a_dict.keys() -sorted(keys) -for key in keys: - print(key) - -# Let's use a conditional to print out only even numbers -for number in range(10): - if number % 2 == 0: - print(number) - -# using the else statement -my_list = [1, 2, 3, 4, 5] -for i in my_list: - if i == 3: - print("Item found!") - break - print(i) -else: - print("Item not found!") \ No newline at end of file diff --git a/Chapter 5 - Loops/while_loops.py b/Chapter 5 - Loops/while_loops.py deleted file mode 100644 index e2d21d5..0000000 --- a/Chapter 5 - Loops/while_loops.py +++ /dev/null @@ -1,25 +0,0 @@ -# a simple while loop -i = 0 -while i < 10: - print(i) - i = i + 1 - -# this is how to break out of a loop -while i < 10: - print(i) - if i == 5: - break - i += 1 - -# an example of break and continue -i = 0 -while i < 10: - if i == 3: - i += 1 - continue - - print(i) - - if i == 5: - break - i += 1 \ No newline at end of file diff --git a/Chapter 6 - Comprehensions/comprehensions.py b/Chapter 6 - Comprehensions/comprehensions.py deleted file mode 100644 index e05a5c3..0000000 --- a/Chapter 6 - Comprehensions/comprehensions.py +++ /dev/null @@ -1,24 +0,0 @@ -# a simple list comprehension -x = [i for i in range(5)] - -# turn a list of strings into a list of ints -x = ['1', '2', '3', '4', '5'] -y = [int(i) for i in x] - -# strip off all the leading or ending white space -myStrings = [s.strip() for s in myStringList] - -# how to turn a list of lists into one list (flattening) -vec = [[1,2,3], [4,5,6], [7,8,9]] -flat_vec = [num for elem in vec for num in elem] - -# a simple dict comprehension -print( {i: str(i) for i in range(5)} ) - -# swapping keys and values with a dict comprehension -my_dict = {1:"dog", 2:"cat", 3:"hamster"} -print( {value:key for key, value in my_dict.items()} ) - -# turn a list into a set using a set comprehension -my_list = [1, 2, 2, 3, 4, 5, 5, 7, 8] -my_set = {x for x in my_list} \ No newline at end of file diff --git a/Chapter 7 - Exceptions/exceptions.py b/Chapter 7 - Exceptions/exceptions.py deleted file mode 100644 index ba8e8c3..0000000 --- a/Chapter 7 - Exceptions/exceptions.py +++ /dev/null @@ -1,73 +0,0 @@ -# raise a ZeroDivisionError exception -try: - 1 / 0 -except ZeroDivisionError: - print("You cannot divide by zero!") - -# this is known as a "bare except" -try: - 1 / 0 -except: - print("You cannot divide by zero!") - -# let's raise a KeyError -my_dict = {"a":1, "b":2, "c":3} -try: - value = my_dict["d"] -except KeyError: - print("That key does not exist!") - -# now let's raise an IndexError -my_list = [1, 2, 3, 4, 5] -try: - my_list[6] -except IndexError: - print("That index is not in the list!") - -# the following shows how to catch multiple exceptions -my_dict = {"a":1, "b":2, "c":3} -try: - value = my_dict["d"] -except IndexError: - print("This index does not exist!") -except KeyError: - print("This key is not in the dictionary!") -except: - print("Some other error occurred!") - -# here's a shorter method of catching multiple exceptions -try: - value = my_dict["d"] -except (IndexError, KeyError): - print("An IndexError or KeyError occurred!") - -# here is an example of the "finally" statement -# note: the statement following finally always runs -my_dict = {"a":1, "b":2, "c":3} -try: - value = my_dict["d"] -except KeyError: - print("A KeyError occurred!") -finally: - print("The finally statement has executed!") - -# here we learn how to use the "else" statement -# note: else only runs when no errors occur -my_dict = {"a":1, "b":2, "c":3} -try: - value = my_dict["a"] -except KeyError: - print("A KeyError occurred!") -else: - print("No error occurred!") - -# this last example demonstrates both else and finally -my_dict = {"a":1, "b":2, "c":3} -try: - value = my_dict["a"] -except KeyError: - print("A KeyError occurred!") -else: - print("No error occurred!") -finally: - print("The finally statement ran!") \ No newline at end of file diff --git a/Chapter 8 - Working with Files/catching_errors.py b/Chapter 8 - Working with Files/catching_errors.py deleted file mode 100644 index b59d424..0000000 --- a/Chapter 8 - Working with Files/catching_errors.py +++ /dev/null @@ -1,17 +0,0 @@ -# catching errors the old school way -try: - file_handler = open("test.txt") - for line in file_handler: - print(line) -except IOError: - print("An IOError has occurred!") -finally: - file_handler.close() - -# catching errors when using the with operator -try: - with open("test.txt") as file_handler: - for line in file_handler: - print(line) -except IOError: - print("An IOError has occurred!" \ No newline at end of file diff --git a/Chapter 8 - Working with Files/file_io.py b/Chapter 8 - Working with Files/file_io.py deleted file mode 100644 index 4a0ac24..0000000 --- a/Chapter 8 - Working with Files/file_io.py +++ /dev/null @@ -1,8 +0,0 @@ -# open a file that is in the same folder as this script -handle = open("test.txt") - -# open a file by specifying its path -handle = open(r"C:\Users\mike\py101book\data\test.txt", "r") - -# open the file in read-only binary mode -handle = open("test.pdf", "rb") \ No newline at end of file diff --git a/Chapter 8 - Working with Files/open_and_close.py b/Chapter 8 - Working with Files/open_and_close.py deleted file mode 100644 index 947b113..0000000 --- a/Chapter 8 - Working with Files/open_and_close.py +++ /dev/null @@ -1,8 +0,0 @@ -# open a file in read-only mode -handle = open("test.txt", "r") -# read the data -data = handle.read() -# print it out -print(data) -# close the file -handle.close() \ No newline at end of file diff --git a/Chapter 8 - Working with Files/open_and_close2.py b/Chapter 8 - Working with Files/open_and_close2.py deleted file mode 100644 index ebb8872..0000000 --- a/Chapter 8 - Working with Files/open_and_close2.py +++ /dev/null @@ -1,4 +0,0 @@ -handle = open("test.txt", "r") -data = handle.readline() # read just one line -print(data) -handle.close() \ No newline at end of file diff --git a/Chapter 8 - Working with Files/open_and_close3.py b/Chapter 8 - Working with Files/open_and_close3.py deleted file mode 100644 index 90b7a15..0000000 --- a/Chapter 8 - Working with Files/open_and_close3.py +++ /dev/null @@ -1,4 +0,0 @@ -handle = open("test.txt", "r") -data = handle.readlines() # read ALL the lines! -print(data) -handle.close() \ No newline at end of file diff --git a/Chapter 8 - Working with Files/open_with.py b/Chapter 8 - Working with Files/open_with.py deleted file mode 100644 index 2ea04a7..0000000 --- a/Chapter 8 - Working with Files/open_with.py +++ /dev/null @@ -1,4 +0,0 @@ -# open and read the file using the with operator -with open("test.txt") as file_handler: - for line in file_handler: - print(line) \ No newline at end of file diff --git a/Chapter 8 - Working with Files/read_in_chunks.py b/Chapter 8 - Working with Files/read_in_chunks.py deleted file mode 100644 index ee61380..0000000 --- a/Chapter 8 - Working with Files/read_in_chunks.py +++ /dev/null @@ -1,6 +0,0 @@ -handle = open("test.txt", "r") -while True: - data = handle.read(1024) - print(data) - if not data: - break \ No newline at end of file diff --git a/Chapter 8 - Working with Files/read_line_by_line.py b/Chapter 8 - Working with Files/read_line_by_line.py deleted file mode 100644 index 9e3a79b..0000000 --- a/Chapter 8 - Working with Files/read_line_by_line.py +++ /dev/null @@ -1,4 +0,0 @@ -handle = open("test.txt", "r") -for line in handle: - print(line) -handle.close() \ No newline at end of file diff --git a/Chapter 8 - Working with Files/test.txt b/Chapter 8 - Working with Files/test.txt deleted file mode 100644 index 6641cea..0000000 --- a/Chapter 8 - Working with Files/test.txt +++ /dev/null @@ -1,4 +0,0 @@ -This is a test file -line 2 -line 3 -this line intentionally left blank \ No newline at end of file diff --git a/Chapter 8 - Working with Files/write_file.py b/Chapter 8 - Working with Files/write_file.py deleted file mode 100644 index f410841..0000000 --- a/Chapter 8 - Working with Files/write_file.py +++ /dev/null @@ -1,3 +0,0 @@ -handle = open("output.txt", "w") -handle.write("This is a test!") -handle.close() \ No newline at end of file diff --git a/Chapter 9 - Imports/readme.txt b/Chapter 9 - Imports/readme.txt deleted file mode 100644 index 10768ea..0000000 --- a/Chapter 9 - Imports/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This chapter was skipped because it just demonstrates different ways of importing modules. The examples in chapter 9 should be practiced in IDLE or a Python editor of your choice. \ No newline at end of file From a2510bdd034e1e96d9b46982b2bbd1b9ef2b535b Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 26 Feb 2020 13:00:42 -0600 Subject: [PATCH 02/89] update README for 2nd edition --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb0d14a..3d162ca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Python 101 Book Code -Code examples from the book, [Python 101](https://leanpub.com/python_101) by Michael Driscoll. +Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition by Michael Driscoll. -You can get the book on [Leanpub](https://leanpub.com/python_101) or read it for free at [www.Python101.org](www.Python101.org) +You can get the book on [Leanpub](https://leanpub.com/py101) soon. + +If you are looking for the code for Python 101, 1st Edition, they can be found [here](https://github.com/driscollis/Python-101-Community-Edition) + +[](https://leanpub.com/py101/) \ No newline at end of file From 862b85bf40fbe182f631a77eee48ca986434f32f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 26 Feb 2020 13:01:26 -0600 Subject: [PATCH 03/89] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3d162ca..b2f6e48 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,6 @@ Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition You can get the book on [Leanpub](https://leanpub.com/py101) soon. -If you are looking for the code for Python 101, 1st Edition, they can be found [here](https://github.com/driscollis/Python-101-Community-Edition) +If you are looking for the code for **Python 101**, 1st Edition, they can be found [here](https://github.com/driscollis/Python-101-Community-Edition) -[](https://leanpub.com/py101/) \ No newline at end of file +[](https://leanpub.com/py101/) From d6c91633da0f72ddac96bb71aa10340d08788002 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 26 Feb 2020 13:01:59 -0600 Subject: [PATCH 04/89] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2f6e48..90c42b1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Python 101 Book Code +# Python 101, 2nd Edition Book Code Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition by Michael Driscoll. From 8e833ad461005d8e7a0960e1ba709b5f522920d8 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 4 Mar 2020 09:56:38 -0600 Subject: [PATCH 05/89] ignore WingIDE project files --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0c1ab0d --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ + +py101code\.wpr + +py101code\.wpu From 8272a8595095b6fac3fc3e58c4f77c909c51078c Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 4 Mar 2020 09:56:52 -0600 Subject: [PATCH 06/89] add example code for chapter 14 --- chapter14_files/example.txt | 3 +++ chapter14_files/read_file.py | 4 ++++ chapter14_files/read_file_with.py | 3 +++ 3 files changed, 10 insertions(+) create mode 100644 chapter14_files/example.txt create mode 100644 chapter14_files/read_file.py create mode 100644 chapter14_files/read_file_with.py diff --git a/chapter14_files/example.txt b/chapter14_files/example.txt new file mode 100644 index 0000000..92819ab --- /dev/null +++ b/chapter14_files/example.txt @@ -0,0 +1,3 @@ +This is an example text file +with multiple lines +for reading by Python \ No newline at end of file diff --git a/chapter14_files/read_file.py b/chapter14_files/read_file.py new file mode 100644 index 0000000..dc43fc0 --- /dev/null +++ b/chapter14_files/read_file.py @@ -0,0 +1,4 @@ +file_handler = open('example.txt') +for line in file_handler: + print(line) +file_handler.close() \ No newline at end of file diff --git a/chapter14_files/read_file_with.py b/chapter14_files/read_file_with.py new file mode 100644 index 0000000..fae2a8a --- /dev/null +++ b/chapter14_files/read_file_with.py @@ -0,0 +1,3 @@ +with open('example.txt') as file_handler: + for line in file_handler: + print(line) \ No newline at end of file From f94621c724cdb742e628eff7bdf7d7a88390c4ff Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 19 Mar 2020 10:48:39 -0500 Subject: [PATCH 07/89] add a class example --- chapter_18_classes/ball.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 chapter_18_classes/ball.py diff --git a/chapter_18_classes/ball.py b/chapter_18_classes/ball.py new file mode 100644 index 0000000..117fda2 --- /dev/null +++ b/chapter_18_classes/ball.py @@ -0,0 +1,24 @@ +# ball.py + +class Ball: + + def __init__(self, color: str, size: float, weight: float, + ball_type: str) -> None: + self.color = color + self.size = size + self.weight = weight + self.ball_type = ball_type + + def bounce(self): + if self.ball_type.lower() == 'bowling': + print("Bowling balls can't bounce!") + else: + print(f"The {self.ball_type} ball is bouncing!") + + +if __name__ == "__main__": + ball_one = Ball('black', 6, 12, 'bowling') + ball_two = Ball('red', 12, 1, 'beach') + + ball_one.bounce() + ball_two.bounce() \ No newline at end of file From 98f0dfaead47e156db39dda632854b9a40992fef Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 19 Mar 2020 13:59:03 -0500 Subject: [PATCH 08/89] ignore WingIDE files --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 0c1ab0d..ba52102 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ py101code\.wpr py101code\.wpu + +py101_2nd_code.wpr + +py101_2nd_code.wpu From a7e018350184f99e7d15c1dbb1b519d1e34d6d90 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 19 Mar 2020 14:35:53 -0500 Subject: [PATCH 09/89] update name --- {chapter_18_classes => chapter18_classes}/ball.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {chapter_18_classes => chapter18_classes}/ball.py (100%) diff --git a/chapter_18_classes/ball.py b/chapter18_classes/ball.py similarity index 100% rename from chapter_18_classes/ball.py rename to chapter18_classes/ball.py From 0be9e091682e7a4e0a0066989bee90d4cd70ce2e Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 19 Mar 2020 14:36:03 -0500 Subject: [PATCH 10/89] add subclass example --- chapter18_classes/bowling_ball.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 chapter18_classes/bowling_ball.py diff --git a/chapter18_classes/bowling_ball.py b/chapter18_classes/bowling_ball.py new file mode 100644 index 0000000..c78949e --- /dev/null +++ b/chapter18_classes/bowling_ball.py @@ -0,0 +1,11 @@ +# bowling_ball.py +import ball + +class BowlingBall(Ball): + + def roll(self): + print(f'You are rolling the {self.ball_type} ball') + +if __name__ == '__main__': + ball = BowlingBall() + ball.roll() \ No newline at end of file From 54ef94c4b4fcddab0c47c906bb1610f0ea86f470 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 19 Mar 2020 15:57:32 -0500 Subject: [PATCH 11/89] Add some more class examples --- .../__pycache__/ball.cpython-38.pyc | Bin 0 -> 955 bytes chapter18_classes/ball_printable.py | 27 ++++++++++++++ chapter18_classes/ball_printable_str.py | 33 ++++++++++++++++++ chapter18_classes/bowling_ball.py | 11 +++--- 4 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 chapter18_classes/__pycache__/ball.cpython-38.pyc create mode 100644 chapter18_classes/ball_printable.py create mode 100644 chapter18_classes/ball_printable_str.py diff --git a/chapter18_classes/__pycache__/ball.cpython-38.pyc b/chapter18_classes/__pycache__/ball.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8aa99da357de7098e9ec6698b4522f4bdee424d7 GIT binary patch literal 955 zcmZ`%&2Q5%6n}P{Htp7ec0z(fcS7Z`Fisp0n#$L0LV{g#z)E9p&FaR*PE}U*w*3Q~ z0ckt(FXhUq{{k0yFWJzL;6?uBec12gXCL)?T|jyD*?%w`;0GDEB}C%@mw%1$1{5fE zf$N+npqb)R?nW9^po9ul>s%xptv2eB>Yx>9ekrbifexC#>b`^FR))F$k``JAxcnmo z4GB|#nF1~F3l!G*8d8l5k%Uy|0+N#)4MD2exe7fojNwiedEVdyThPnt_qD^YFCAGmlx%bxi&Ua6V^Zn&8pR8+eY2f zI|0^bUB23?=WAm44v>i=ooOknu9P#Y7KZd~DL*b!a~%nMiM5W6O-o0w-t`HHwOc?n z9Wg|g>}gwslycy|w%fIzO3l)|kTMC!Ce5ZB>S{y%xh;ewa9V9B1IBflP4IQr2i+a= gMMRXeg}&CxrTuRoRrIVG<@ujx`gbFozt1D~8x!!>ApigX literal 0 HcmV?d00001 diff --git a/chapter18_classes/ball_printable.py b/chapter18_classes/ball_printable.py new file mode 100644 index 0000000..41ad44e --- /dev/null +++ b/chapter18_classes/ball_printable.py @@ -0,0 +1,27 @@ +# ball_printable.py + +class Ball: + + def __init__(self, color: str, size: float, weight: float, + ball_type: str) -> None: + self.color = color + self.size = size + self.weight = weight + self.ball_type = ball_type + + def bounce(self): + if self.ball_type.lower() == 'bowling': + print("Bowling balls can't bounce!") + else: + print(f'The {self.ball_type} ball is bouncing!') + + def __repr__(self): + return f'' + + +if __name__ == "__main__": + ball_one = Ball('black', 6, 12, 'bowling') + ball_two = Ball('red', 12, 1, 'beach') + + print(ball_one) + print(ball_two) \ No newline at end of file diff --git a/chapter18_classes/ball_printable_str.py b/chapter18_classes/ball_printable_str.py new file mode 100644 index 0000000..4fc530b --- /dev/null +++ b/chapter18_classes/ball_printable_str.py @@ -0,0 +1,33 @@ +# ball_printable.py + +class Ball: + + def __init__(self, color: str, size: float, weight: float, + ball_type: str) -> None: + self.color = color + self.size = size + self.weight = weight + self.ball_type = ball_type + + def bounce(self): + if self.ball_type.lower() == 'bowling': + print("Bowling balls can't bounce!") + else: + print(f'The {self.ball_type} ball is bouncing!') + + def __repr__(self): + return f'' + + def __str__(self): + return f'{self.color} {self.ball_type} ball' + + +if __name__ == "__main__": + ball_one = Ball('black', 6, 12, 'bowling') + ball_two = Ball('red', 12, 1, 'beach') + + print(ball_one) + print(ball_two) + + print(f'{ball_one.__repr__()}') + print(f'{ball_one.__str__()}') \ No newline at end of file diff --git a/chapter18_classes/bowling_ball.py b/chapter18_classes/bowling_ball.py index c78949e..09d2a72 100644 --- a/chapter18_classes/bowling_ball.py +++ b/chapter18_classes/bowling_ball.py @@ -1,11 +1,12 @@ # bowling_ball.py import ball -class BowlingBall(Ball): - +class BowlingBall(ball.Ball): + def roll(self): print(f'You are rolling the {self.ball_type} ball') - + if __name__ == '__main__': - ball = BowlingBall() - ball.roll() \ No newline at end of file + ball = BowlingBall('green', 10, 15, 'bowling') + ball.roll() + From 75354690fd80c7b85139a014a1755e5157aa7773 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 12:46:05 -0500 Subject: [PATCH 12/89] ignore mac file --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ba52102..db9cb8e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ py101code\.wpu py101_2nd_code.wpr py101_2nd_code.wpu + +.DS_Store From 73fc41b228007a2241ca5cdd64c0a9403dcf01c0 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 12:46:22 -0500 Subject: [PATCH 13/89] add examples for chapter 18 --- chapter18_classes/simple_ball.py | 7 +++++++ chapter18_classes/simple_ball_type_hints.py | 6 ++++++ 2 files changed, 13 insertions(+) create mode 100644 chapter18_classes/simple_ball.py create mode 100644 chapter18_classes/simple_ball_type_hints.py diff --git a/chapter18_classes/simple_ball.py b/chapter18_classes/simple_ball.py new file mode 100644 index 0000000..9425718 --- /dev/null +++ b/chapter18_classes/simple_ball.py @@ -0,0 +1,7 @@ +class Ball: + + def __init__(self, color, size, weight): + """Constructor""" + self.color = color + self.size = size + self.weight = weight \ No newline at end of file diff --git a/chapter18_classes/simple_ball_type_hints.py b/chapter18_classes/simple_ball_type_hints.py new file mode 100644 index 0000000..22541e5 --- /dev/null +++ b/chapter18_classes/simple_ball_type_hints.py @@ -0,0 +1,6 @@ +class Ball: + + def __init__(self, color: str, size: float, weight: float) -> None: + self.color = color + self.size = size + self.weight = weight \ No newline at end of file From 8abf0f47f73f80b1a1b47bd5542abfb23c75f9ec Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 12:47:31 -0500 Subject: [PATCH 14/89] ignore notebook checkpoints --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index db9cb8e..110daaa 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ py101_2nd_code.wpr py101_2nd_code.wpu .DS_Store + +.ipynb_checkpoints \ No newline at end of file From ab056c21346443efad8b4b6a6370aff345a6c60f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 12:47:47 -0500 Subject: [PATCH 15/89] add jupyter notebook for chapter 4 --- .../Chapter 3 - Numeric Types.ipynb | 259 ++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb diff --git a/chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb b/chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb new file mode 100644 index 0000000..dd18be4 --- /dev/null +++ b/chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb @@ -0,0 +1,259 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4 - Numeric Types" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Python is a little different than some languages in that it basically only has three built-in numeric types. A built-in data type means that you don't have to do anything to use them other than typing out their name.\n", + "\n", + "The built-in numeric types are:\n", + "\n", + "* `int`\n", + "* `float`\n", + "* `complex`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Integers\n", + "\n", + "You can create an integer in two ways in Python. The most common way is to assign an integer to a variable:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "my_integer = 3" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The other way to create an integer is to use the `int` function, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "my_integer = int(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Floats\n", + "\n", + "A `float` in Python refers to a number that has a decimal point in it. For example, 2.0 is a `float` while 2 is an `int`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can create a `float` in Python like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "my_float = 2.0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also create a float like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "my_float = float(2.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Complex Numbers\n", + "\n", + "A complex number has a *real* and an *imaginary* part, which are each a floating-point number. To get each of these parts, let's say you have a variable named `comp`. You can use `comp.real` and `comp.imag` to extract the real and imaginary parts, respectively, from the number." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's look at a quick example using Python's interpreter:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "```python\n", + ">>> comp = 1 + 2j\n", + ">>> type(comp)\n", + "\n", + ">>> comp.real\n", + "1.0\n", + ">>> comp.imag\n", + "2.0\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use the `complex()` built-in function to create a complex number:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10+12j)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "complex(10, 12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Numeric Operations\n", + "\n", + "All the numeric types, with the exception of `complex`, support a set of numeric operations.\n", + "\n", + "Here is a listing of the operations that you can do:\n", + "\n", + "|Operation |Result |\n", + "|-----------------|--------------------------------------------|\n", + "|a + b |The sum of a and b |\n", + "|a - b |The difference of a and b |\n", + "|a * b |The product of a and b |\n", + "|a / b |The quotient of a and b |\n", + "|a // b |The floored quotient of a and b |\n", + "|a % b |The remainder of `a / b` |\n", + "|-a |`a` negated (convert to negative) |\n", + "|abs(a) |absolute value of `a` |\n", + "|int(a) |`a` converted to integer |\n", + "|float(x) |`a` converted to a floating-point number |\n", + "|complex(re, im) |A complex number with real and imaginary |\n", + "|c.conjugate() |The conjugate of the complex number `c` |\n", + "|divmod(a, b) |The pair: (a // b, a % b) |\n", + "|pow(x, b) |`a` to the power of `b` |\n", + "|a ** b |`a` to the power of `b` |" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See also [https://docs.python.org/3/library/stdtypes.html](https://docs.python.org/3/library/stdtypes.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Augmented Assignment\n", + "\n", + "Python supports doing some types of arithmetic using a concept called **Augmented Assignment**. This idea was first proposed in PEP 203:\n", + "\n", + "* " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The syntax allows you to do various arithmetic operations using the following operators:\n", + "\n", + "`+= -= *= /= %= **= <<= >>= &= ^= |=`\n", + "\n", + "This syntax is a shortcut for doing common arithmetic in Python. With it you can replace the following code:\n", + "\n", + "```python\n", + ">>> x = 1\n", + ">>> x = x + 2\n", + ">>> x\n", + "3\n", + "```\n", + "\n", + "with this:\n", + "\n", + "```python\n", + ">>> x = 1\n", + ">>> x += 2\n", + ">>> x\n", + "3\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 153a95d6611064acf67df3bc43d328f1d88ce87f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 12:47:53 -0500 Subject: [PATCH 16/89] add jupyter notebook for chapter 5 --- .../Chapter 5 - Learning About Lists.ipynb | 814 ++++++++++++++++++ 1 file changed, 814 insertions(+) create mode 100644 chapter05_lists/Chapter 5 - Learning About Lists.ipynb diff --git a/chapter05_lists/Chapter 5 - Learning About Lists.ipynb b/chapter05_lists/Chapter 5 - Learning About Lists.ipynb new file mode 100644 index 0000000..afae5a6 --- /dev/null +++ b/chapter05_lists/Chapter 5 - Learning About Lists.ipynb @@ -0,0 +1,814 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 5 - Learning About Lists" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating Lists\n", + "\n", + "There are several ways to create a `list`. You may construct a list in any of the following ways:\n", + "\n", + "* Using a pair of square brackets with nothing inside creates an empty list: `[]`\n", + "* Using square brackets with comma-separated items: `[1, 2, 3]`\n", + "* Using a list comprehension (see Chapter 13 for more information): [x for x in iterable]\n", + "* Using the `list()` function: `list(iterable)`" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or use the `list()` function to create a list:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "list_of_strings = list('abc')\n", + "print(list_of_strings)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The last example to look at is how to create empty lists:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "empty_list = []\n", + "another_empty_list = list()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## List Methods\n", + "\n", + "A Python `list` has several methods that you can call. Here is a listing of the methods you can use with a `list`:\n", + "\n", + "* `append()`\n", + "* `clear()`\n", + "* `copy()`\n", + "* `count()`\n", + "* `extend()`\n", + "* `index()`\n", + "* `insert()`\n", + "* `pop()`\n", + "* `remove()`\n", + "* `reverse()`\n", + "* `sort()`" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "my_list = list('abcc')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list.count('c')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list.index('c')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list.index('a')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['c', 'c', 'b', 'a']\n" + ] + } + ], + "source": [ + "my_list = list('abcc')\n", + "my_list.reverse()\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Adding to a List\n", + "\n", + "There are three `list` methods that you can use to add to a list. They are as follows:\n", + "\n", + "* `append()`\n", + "* `extend()`\n", + "* `insert()`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'b', 'c', 'c']\n" + ] + } + ], + "source": [ + "my_list = list('abcc')\n", + "print(my_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a', 'b', 'c', 'c', 1]\n" + ] + } + ], + "source": [ + "my_list.append(1)\n", + "print(my_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(my_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['first', 'a', 'b', 'c', 'c', 1]\n" + ] + } + ], + "source": [ + "my_list.insert(0, 'first')\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two other ways to add items to a `list`. You can add an iterable to a `list` using `extend()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3, 4, 5, 6]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "other_list = [4, 5, 6]\n", + "my_list.extend(other_list)\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also combine lists using concatenation:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3, 4, 5, 6]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "other_list = [4, 5, 6]\n", + "my_list += other_list\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Accessing and Changing List Elements" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To access an item in a `list`, you need to use square braces and pass in the index of the item that you wish to access. In the example above, you access the first and third elements." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "my_list[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lists also support accessing items in reverse by using negative values:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list[-1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you try to use an index that does not exist in the `list`, you will get an `IndexError`:\n", + "\n", + "```python\n", + ">>> my_list[-5]\n", + "Traceback (most recent call last):\n", + " Python Shell, prompt 41, line 1\n", + "builtins.IndexError: list index out of range\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deleting From a List" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Deleting items from a `list` is pretty straight-forward. There are 4 primary methods of removing items from a list:\n", + "\n", + "* `clear()`\n", + "* `pop()`\n", + "* `remove()`\n", + "* `del`" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "my_list.clear()\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you would rather remove individual items, then you should check out `pop()` or `remove()`. Let's start with `pop()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "my_list.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2]\n" + ] + } + ], + "source": [ + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`remove()` will delete the first instance of the passed in item" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 3]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "my_list.remove(2)\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sorting a List" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lists in Python can be sorted. You can use the built-in `sort()` method to sort a `list` in-place or you can use Python's `sorted()` function." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 4, 9, 10, 23]\n" + ] + } + ], + "source": [ + "my_list = [4, 10, 2, 1, 23, 9]\n", + "my_list.sort()\n", + "print(my_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A common misconception with Python is that if you call `sort()`, you can assign the result to a variable, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], + "source": [ + "sorted_list = my_list.sort()\n", + "print(sorted_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, when you do that, you will see that `sort()` doesn't actually return a sorted list. It always returns `None`.\n", + "\n", + "Fortunately you can use Python's built-in `sorted()` method for this too:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 4, 9, 10, 23]\n" + ] + } + ], + "source": [ + "my_list = [4, 10, 2, 1, 23, 9]\n", + "sorted_list = sorted(my_list)\n", + "print(sorted_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also sort in reverse using `sorted()`" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[23, 10, 9, 4, 2, 1]\n" + ] + } + ], + "source": [ + "my_list = [4, 10, 2, 1, 23, 9]\n", + "sorted_list = sorted(my_list, reverse=True)\n", + "print(sorted_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## List Slicing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Python lists support the idea of slicing. Slicing a list is done by using square brackets and entering a start and stop value. For example, if you had `my_list[1:3]`, you would be saying that you want to create a new list with the element starting at index one through 3 but not including index 3." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[10, 2]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = [4, 10, 2, 1, 23, 9]\n", + "my_list[1:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[23, 9]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list[-2:]" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[4, 10, 2]" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list[:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Copying a List\n", + "\n", + "Occasionally you will want to copy a `list`. One simple way to copy your `list` is to use the `copy` method:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "new_list = my_list.copy()\n", + "print(new_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also copy a list by using this funny syntax:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "new_list = my_list[:]\n", + "print(new_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You could also use Python's `list()` function to copy a list:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 2, 3]\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "new_list = list(my_list)\n", + "print(new_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "No matter which method you choose though, whether it by `[:]`, `copy()` or `list()`, all three will do a shallow copy. If you run into weird issues where changing one list affects the copied list, then you should use `deepcopy` method from the `copy` module instead. You will learn about importing modules in chapter 16." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From a31128c9e547301f8e3b822fa02b012aba011049 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 13:44:47 -0500 Subject: [PATCH 17/89] add notebook for chapter 6 --- .../Chapter 6 - Learning About Tuples.ipynb | 327 ++++++++++++++++++ 1 file changed, 327 insertions(+) create mode 100644 chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb diff --git a/chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb b/chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb new file mode 100644 index 0000000..ec057af --- /dev/null +++ b/chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb @@ -0,0 +1,327 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6 - Learning About Tuples\n", + "\n", + "Tuples are another sequence type in Python. Tuples consist of a number of values that are separated by commas. A tuple is immutable whereas a list is not. Immutable means that the tuple has a fixed value and cannot change. You cannot add, delete or modify items in a tuple. Immutable objects are useful when you need a constant hash value. The most popular example is the key to a Python dictionary, which you will learn about in **chapter 7**." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating Tuples\n", + "\n", + "You can create tuples in several different ways. Let's take a look:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tuple" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = (4, 5)\n", + "type(a_tuple)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also cast a `list` into a `tuple` using the `tuple()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "tuple" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = tuple(['1', '2', '3'])\n", + "type(a_tuple)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Working With Tuples\n", + "\n", + "Tuples actually don't have a lot of ways to work with them due to the fact that they are immutable. If you were you run `dir(tuple())`, you would find that tuples have only two methods:\n", + "\n", + "* `count()`\n", + "* `index()`\n", + "\n", + "You can use `count()` to find out how many elements match the value that you pass in:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = (1, 2, 3, 3)\n", + "a_tuple.count(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can use `index()` to find the first index of a value:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = (1, 2, 3, 3)\n", + "a_tuple[2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try to modify an element in your `tuple`:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'tuple' object does not support item assignment", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma_tuple\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m8\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" + ] + } + ], + "source": [ + "a_tuple[0] = 8" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Concatenating Tuples\n", + "\n", + "Tuples can be concatenated together. However, when you do that, you will end up creating a new tuple:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4437658264" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = (1, 2, 3, 3)\n", + "id(a_tuple)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4434750920" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_tuple = a_tuple + (6, 7)\n", + "id(a_tuple)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Special Case Tuples\n", + "\n", + "There are two special-case tuples. A `tuple` with zero items and a `tuple` with one item. The reason they are special cases is that the syntax to create them is a little different." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create an empty tuple, you can do one of the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "empty = tuple()\n", + "len(empty)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "also_empty = ()\n", + "len(also_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's create a `tuple` with a single element:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "single = 2, # <-- Note the comma on the end\n", + "len(single)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 16d130b7df8c73e193c5afaf0f2d27ed3aedaa43 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 14:10:33 -0500 Subject: [PATCH 18/89] add notebook for chapter 7 --- ...pter 7 - Learning About Dictionaries.ipynb | 735 ++++++++++++++++++ 1 file changed, 735 insertions(+) create mode 100644 chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb diff --git a/chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb b/chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb new file mode 100644 index 0000000..332e9c0 --- /dev/null +++ b/chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb @@ -0,0 +1,735 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 7 - Learning About Dictionaries\n", + "\n", + "Dictionaries are another fundamental data type in Python. A dictionary is a key, value pair. Some programming languages refer to them as hash tables. They are described as a *mapping* object that maps hashable values to arbitrary objects.\n", + "\n", + "A dictionary's keys must be immutable, that is, unable to change. Starting in Python 3.7, dictionaries are ordered. What that means is that when you add a new key, value pair to a dictionary, it remembers what order they were added. Prior to Python 3.7, this was not the case and you could not rely on insertion order." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating Dictionaries\n", + "\n", + "You can create a dictionary in a couple of different ways. The most common method is by placing a comma-separated list `key: value` pairs within curly braces.\n", + "\n", + "Let's look at an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use Python's built-in `dict()` function to create a dictionary. `dict()` will accept a series of keyword arguments (i.e. 1='one', 2='two', etc), a list of tuples or another dictionary.\n", + "\n", + "Here are a couple of examples:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'one': 1, 'two': 2, 'three': 3}\n" + ] + } + ], + "source": [ + "numbers = dict(one=1, two=2, three=3)\n", + "print(numbers)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoes@gmail.com'}\n" + ] + } + ], + "source": [ + "info_list = [('first_name', 'James'), ('last_name', 'Doe'), ('email', 'jdoes@gmail.com')]\n", + "info_dict = dict(info_list)\n", + "print(info_dict)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first example uses `dict()` on a series of keyword arguments. You will learn more about these when you learn about functions. You can think of keyword arguments as a series of keywords with the equals sign between them and their value.\n", + "\n", + "The second example shows you how to create a list that has 3 tuples inside of it. Then you pass that list to `dict()` to convert it to a dictionary." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accessing Dictionaries\n", + "\n", + "Dictionaries claim to fame is that they are very fast. You can access any value in a dictionary via the key. If the key is not found, you will receive a `KeyError`.\n", + "\n", + "Let's take a look at how to use a dictionary:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'James'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict['first_name']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's try to get a key that doesn't exist:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'address'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msample_dict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'address'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m: 'address'" + ] + } + ], + "source": [ + "sample_dict['address']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Well that didn't work! You asked the dictionary to give you a value that wasn't in the dictionary!\n", + "\n", + "You can use Python's `in` keyword to ask if a key is in the dictionary:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'address' in sample_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'first_name' in sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also check to see if a key is **not** in a dictionary by using Python's `not` keyword:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'first_name' not in sample_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'address' not in sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dictionary Methods\n", + "\n", + "As with most Python data types, dictionaries have special methods you can use. Let's check out some of the dictionarie's methods!\n", + "\n", + "### d.get(key[, default])\n", + "\n", + "You can use the `get()` method to get a value. `get()` requires you to specify a key to look for. It optionally allows you to return a default if the key is not found. The default is `None`. Let's take a look:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "None\n" + ] + } + ], + "source": [ + "print(sample_dict.get('address'))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Not Found\n" + ] + } + ], + "source": [ + "print(sample_dict.get('address', 'Not Found'))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.clear()\n", + "\n", + "The `clear()` method can be used to remove all the items from the dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.clear()\n", + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.copy()\n", + "\n", + "If you need to create a shallow copy of the dictionary, then the `copy()` method is for you:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "copied_dict = sample_dict.copy()\n", + "copied_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If your dictionary has objects or dictionaries inside of it, then you may end up running into logic errors due to this method as changing one dictionary can affect the copy. In those case, you should use Python's `copy` module, which has a `deepcopy` function that will create a completely separate copy for you." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.items()\n", + "\n", + "The `items()` method will return a new view of the dictionary's items:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_items([('first_name', 'James'), ('last_name', 'Doe'), ('email', 'jdoe@gmail.com')])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.items()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.keys()\n", + "\n", + "If you need to get a view of the keys that are in a dictionary, then `keys()` is the method for you. As a view object, it will provide you with a dynamic view of the dictionary's keys. You can iterate over a view and also check membership view the `in` keyword:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['first_name', 'last_name', 'email'])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.values()\n", + "\n", + "The `values()` method also returns a view object, but in this case it is a dynamic view of the dictionary's values:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_values(['James', 'Doe', 'jdoe@gmail.com'])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.values()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.pop(key[, default])\n", + "\n", + "Do you need to remove a key from a dictionary? Then `pop()` is the method for you. The `pop()` method takes a key and an option default string. If you don't set the default and the key is not found, a `KeyError` will be raised.\n", + "\n", + "Here are some examples:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'something'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0msample_dict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'first_name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'James'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'last_name'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Doe'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'email'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'jdoe@gmail.com'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0msample_dict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'something'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m: 'something'" + ] + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.pop('something')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Not found!'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict.pop('something', 'Not found!')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'James'" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict.pop('first_name')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'last_name': 'Doe', 'email': 'jdoe@gmail.com'}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### d.popitem()\n", + "\n", + "The `popitem()` method is used to remove and return a `(key, value)` pair from the dictionary. The pairs are returned in last-in first-out (LIFO) order. If called on an empty dictionary, you will receive a `KeyError`" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "('email', 'jdoe@gmail.com')" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.popitem()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modifying Your Dictionary\n", + "\n", + "You will need to modify your dictionary from time to time. Let's assume that you need to add a new key, value pair:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'first_name': 'James',\n", + " 'last_name': 'Doe',\n", + " 'email': 'jdoe@gmail.com',\n", + " 'address': '123 Dunn St'}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict['address'] = '123 Dunn St'\n", + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To add a new item to a dictionary, you can use the square braces to enter a new key and set it to a value.\n", + "\n", + "If you need to update a pre-existing key, you can do the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'first_name': 'James', 'last_name': 'Doe', 'email': 'jame@doe.com'}" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict['email'] = 'jame@doe.com'\n", + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deleting Items From Your Dictionary\n", + "\n", + "Sometimes you will need to remove a key from a dictionary. You can use Python's `del` keyword for that:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'first_name': 'James', 'last_name': 'Doe'}" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "del sample_dict['email']\n", + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The other method for removing a key is to use the dictionary's `pop()` method, which was mentioned in the previous section:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'first_name': 'James', 'last_name': 'Doe'}" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'first_name': 'James', 'last_name': 'Doe', 'email': 'jdoe@gmail.com'}\n", + "sample_dict.pop('email')\n", + "sample_dict" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you use `pop()`, it will return the value that is being removed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From ed28041e9629ca92f4f0af9b51e28b778cb6135b Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 15:06:22 -0500 Subject: [PATCH 19/89] add notebook for chapter 8 --- .../Chapter 8 - Learning About Sets.ipynb | 672 ++++++++++++++++++ 1 file changed, 672 insertions(+) create mode 100644 chapter08_sets/Chapter 8 - Learning About Sets.ipynb diff --git a/chapter08_sets/Chapter 8 - Learning About Sets.ipynb b/chapter08_sets/Chapter 8 - Learning About Sets.ipynb new file mode 100644 index 0000000..579b497 --- /dev/null +++ b/chapter08_sets/Chapter 8 - Learning About Sets.ipynb @@ -0,0 +1,672 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 8 - Learning About Sets" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A `set` data type is defined as an \"unordered collection of distinct hashable objects\" according to the Python 3 documentation. You can use a `set` for membership testing, removing duplicates from a sequence and computing mathematical operations, like intersection, union, difference, and symmetric difference." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There is two types of `set` built-in to the Python language:\n", + "\n", + "* `set` - which is mutable\n", + "* `frozenset` - which is immutable and hashable\n", + "\n", + "This chapter will focus on `set`.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a Set\n", + "\n", + "Creating a `set` is pretty straight-forward. You can create them by adding a series of comma-separated objects inside of curly braces or you can pass a sequence to the `set()` built-in function.\n", + "\n", + "Let's look at an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'a', 'b', 'c'}" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's try creating a `set` using `set()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1, 2, 3, 4}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = [1, 2, 3, 4]\n", + "my_set = set(my_list)\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accessing Set Members\n", + "\n", + "You can check if an item is in a `set` by using Python's `is` operator" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "\"a\" in my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sets do not allow you to use slicing or the like to access individual members of the `set`. Instead, you would need to iterate over a `set`. You can do that using a loop, such as a `while` loop or a `for` loop. You won't be covering loops until **chapter 12**, but here is the basic syntax using a `for` loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n", + "c\n" + ] + } + ], + "source": [ + "for item in my_set:\n", + " print(item)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Changing Items\n", + "\n", + "Once a `set` is created, you cannot change any of its items. \n", + "\n", + "However, you can add new items to a `set`. Let's find out how!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Adding Items\n", + "\n", + "There are two ways to add items to a `set`:\n", + "\n", + "* `add()`\n", + "* `update()`\n", + "\n", + "Let's try adding an item using `add()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'a', 'b', 'c', 'd'}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.add('d')\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you'd like to add multiple items all at once, then you should use `update()` instead:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'a', 'b', 'e', 'd', 'c', 'f'}\n" + ] + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.update(['d', 'e', 'f'])\n", + "print(my_set)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that `update()` will take any iterable you pass to it. So it could take a `list`, `tuple` or `set` for example." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Removing Items\n", + "\n", + "You can remove items from sets in several different ways.\n", + "\n", + "You can use:\n", + "\n", + "* `remove()`\n", + "* `discard()`\n", + "* `pop()`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using .remove()\n", + "\n", + "The `remove()` method will attempt to remove the specified item from a `set`:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'b', 'c'}\n" + ] + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.remove('a')\n", + "print(my_set)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you happen to ask the `set` to `remove()` an item that does not exist, you will receive an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'f'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mmy_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\"a\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"b\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmy_set\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'f'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m: 'f'" + ] + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.remove('f')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using .discard()\n", + "\n", + "The `discard()` method works in almost exactly the same way as `remove()` in that it will remove the specified item from the `set`:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.discard('b')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The difference with `discard()` though is that it **won't** throw an error if you try to remove an item that doesn't exist:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.discard('d')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using .pop()\n", + "\n", + "The `pop()` method will remove and return an arbitrary item from the `set`:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'a'" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.pop()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'b', 'c'}" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If your set is empty and you try to `pop()` and item out, you will receive an error" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Clearing or Deleting a Set\n", + "\n", + "Sometimes you will want to empty a `set` or even completely remove it. \n", + "\n", + "To empty a `set`, you can use `clear()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "set()" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "my_set.clear()\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to completely remove the `set`, then you can use Python's `del` built-in:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'my_set' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mmy_set\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m\"a\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"b\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"c\"\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mdel\u001b[0m \u001b[0mmy_set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mmy_set\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'my_set' is not defined" + ] + } + ], + "source": [ + "my_set = {\"a\", \"b\", \"c\", \"c\"}\n", + "del my_set\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set Operations\n", + "\n", + "Sets provide you with some common operations such as:\n", + "\n", + "* `union()` - Combines two sets and returns a new set\n", + "* `intersection()` - Returns a new set with the elements that are common between the two sets\n", + "* `difference()` - Returns a new with elements in the set that are not in the other set\n", + "\n", + "These operations are the most common ones that you will use when working with `sets`. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `union()` method is actually kind of like the `update()` method that you learned about earlier, in that it combines two or more sets together into a new set. However the difference is that it returns a new set rather than updating the original set with new items:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'banana', 'one', 'orange', 'peach', 'three', 'two'}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_set = {'one', 'two', 'three'}\n", + "second_set = {'orange', 'banana', 'peach'}\n", + "first_set.union(second_set)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'one', 'three', 'two'}" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you create two sets. Then you use `union()` on the first set to add the second set to it. However `union` doesn't update the `set`. It creates a new `set`. If you want to save the new `set`, then you should do the following instead:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'banana', 'one', 'orange', 'peach', 'three', 'two'}" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "united_set = first_set.union(second_set)\n", + "united_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `intersection()` method will take two sets and returns a new `set` that contains only the items that are the same in the two sets.\n", + "\n", + "Let's look at an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'one'}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_set = {'one', 'two', 'three'}\n", + "second_set = {'orange', 'banana', 'peach', 'one'}\n", + "first_set.intersection(second_set)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "These two sets have only one item in common: the string \"one\". So when you call `intersection()`, it returns a new `set` with a single element in it. As with `union()`, if you want to save off this new `set`, then you would want to assign the result to a variable" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `difference()` method will return a new set with the elements in the set that are **not** in the other sets. This can be a bit confusing, so let's look at a couple of examples:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'two'}" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_set = {'one', 'two', 'three'}\n", + "second_set = {'three', 'four', 'one'}\n", + "first_set.difference(second_set)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'four'}" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "second_set.difference(first_set)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you call `difference()` on the `first_set`, it returns a `set` with \"two\" as its only element. This is because \"two\" is the only string not found in the `second_set`. When you call `difference()` on the `second_set`, it will return \"four\" because \"four\" is not in the `first_set`.\n", + "\n", + "There are other methods that you can use with sets, but they are used pretty infrequently. You should go check the documentation for full details on them though should you need to use them." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 35df604d2762f5499dd07c67895c803063aa1efd Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 16:00:48 -0500 Subject: [PATCH 20/89] add notebook for chapter 9 --- .../Chapter 9 - Working with Strings.ipynb | 1210 +++++++++++++++++ 1 file changed, 1210 insertions(+) create mode 100644 chapter09_strings/Chapter 9 - Working with Strings.ipynb diff --git a/chapter09_strings/Chapter 9 - Working with Strings.ipynb b/chapter09_strings/Chapter 9 - Working with Strings.ipynb new file mode 100644 index 0000000..c8afbb3 --- /dev/null +++ b/chapter09_strings/Chapter 9 - Working with Strings.ipynb @@ -0,0 +1,1210 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 9 - Working with Strings\n", + "\n", + "You will be using strings very often when you program. A string is a series of letters surrounded by single, double or triple quotes. Python 3 defines string as a \"Text Sequence Type\". You can cast other types to a string using the built-in `str()` function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating Strings\n", + "\n", + "Here are some examples of creating strings:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "name = 'Mike'\n", + "first_name = 'Mike'\n", + "last_name = \"Driscoll\"\n", + "triple = \"\"\"multi-line\n", + "string\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you use triple quotes, you may use three double quotes at the beginning and end of the string or three single quotes. Also, note that using triple quotes allows you to create multi-line strings. Any whitespace within the string will also be included.\n", + "\n", + "Here is an example of converting an integer to a string:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'5'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "number = 5\n", + "str(number)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Python, backslashes can be used to create escape sequences. Here are a couple of examples:\n", + "\n", + "* `\\b` - backspace\n", + "* `\\n` - line feed\n", + "* `\\r` - ASCII carriage return\n", + "* `\\t` - tab\n", + "\n", + "There are several others that you can learn about if you read Python's documentation." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use backslashes to escape quotes:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"This string has a single quote, ', in the middle\"" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'This string has a single quote, \\', in the middle'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## String Methods\n", + "\n", + "In Python, everything is an object. You will learn how useful this can be in chapter 18 when you learn about introspection. For now, just know that strings have methods (or functions) that you can call on them.\n", + "\n", + "Here are three examples:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Mike'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name = 'mike'\n", + "name.capitalize()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'MIKE'" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name.upper()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'mike'" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'MIke'.lower()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get a full listing of the methods and attributes that you can access, you can use Python's built-in `dir()` function:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dir(name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's do a little exercise where you will learn how to parse out the 2nd word in a string.\n", + "\n", + "To start, here's a string:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "my_string = 'This is a string of words'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now to get the parts of a string, you can call `.split()`, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['This', 'is', 'a', 'string', 'of', 'words']" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_string.split()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is a `list` of strings. Now normally you would assign this result to a variable, but for demonstration purposes, you can skip that part.\n", + "\n", + "Instead, since you now know that the result is a string, you can use list slicing to get the second element:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'is'" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'This is a string of words'.split()[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember, in Python, lists elements start at 0 (zero), so when you tell it you want element 1 (one), that is the second element in the list." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## String Formatting\n", + "\n", + "String formatting or string substitution is where you have a string that you would like to insert into another string. This is especially useful when you need to do a template, like a form letter. But you will use string substitution a lot for debugging output, printing to standard out and much more.\n", + "\n", + "Python has three different ways to accomplish string formatting:\n", + "\n", + "* Using the % Method\n", + "* Using `.format()`\n", + "* Using formatted string literals (f-strings)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Formatting Strings Using %s (printf-style)\n", + "\n", + "Using the `%` method is Python's oldest method of string formatting. It is sometimes referred to as \"printf-style string formatting\". If you have used C or C++ in the past, then you may already be familiar with this type of string substitution. For brevity, you will learn the basics of using `%` here.\n", + "\n", + "The most common use of using the `%` sign is when you would use `%s`, which means convert any Python object to a string using `str()`.\n", + "\n", + "Here is an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "My name is Mike\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "print('My name is %s' % name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this code, you take the variable `name` and insert it into another string using the special `%s` syntax. To make it work, you need to use `%` outside of the string followed by the string or variable that you want to insert.\n", + "\n", + "Here is a second example that shows that you can pass in an `int` into a string and have it automatically converted for you:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You must be at least 18 to continue\n" + ] + } + ], + "source": [ + "age = 18\n", + "print('You must be at least %s to continue' % age)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also do string formatting with multiple variables. In fact, there are two ways to do this.\n", + "\n", + "Here's the first one:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Mike. You must be at least 18 to continue!\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "age = 18\n", + "print('Hello %s. You must be at least %i to continue!' % (name, age))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you create two variables and use `%s` and `%i`. The `%i` indicates that you are going to pass an integer. To pass in multiple items, you use the percent sign followed by a tuple of the items to insert.\n", + "\n", + "You can make this clearer by using names, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Mike. You must be at least 18 to continue!\n" + ] + } + ], + "source": [ + "print('Hello %(name)s. You must be at least %(age)i to continue!' % {'name': name, 'age': age})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When the argument on the right side of the `%` sign is a dictionary (or another mapping type), then the formats in the string must refer to the parenthesized key in the dictionary. In other words, if you see `%(name)s`, then the dictionary to the right of the `%` must have a `name` key.\n", + "\n", + "If you do not include all the keys that are required, you will receive an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "KeyError", + "evalue": "'name'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Hello %(name)s. You must be at least %(age)i to continue!'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'age'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mage\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mKeyError\u001b[0m: 'name'" + ] + } + ], + "source": [ + "print('Hello %(name)s. You must be at least %(age)i to continue!' % {'age': age})" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For more information about using the printf-style string formatting, you should see the following link:\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Formatting Strings Using .format()\n", + "\n", + "Python strings have supported the `.format()` method for a long time. While this book will focus on using f-strings, you will find that `.format()` is still quite popular.\n", + "\n", + "For full details on how formatting works, see the following:\n", + "\n", + "\n", + "\n", + "Let's take a look at a few short examples to see how `.format()` works." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Mike. You must be at least 18 to continue!\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "age = 18\n", + "print('Hello {}. You must be at least {} to continue!'.format(name, age))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example uses positional arguments. Python looks for two instances of `{}` and will insert the variables accordingly. If you do not pass in enough arguments, you will receive an error like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "ename": "IndexError", + "evalue": "tuple index out of range", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Hello {}. You must be at least {} to continue!'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mIndexError\u001b[0m: tuple index out of range" + ] + } + ], + "source": [ + "print('Hello {}. You must be at least {} to continue!'.format(age))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This error indicates that you do not have enough items inside the `.format()` call.\n", + "\n", + "You can also use named arguments in a similar way to the previous section:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Mike. You must be at least 18 to continue!\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "age = 18\n", + "print('Hello {name}. You must be at least {age} to continue!'.format(name=name, age=age))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use repeat a variable multiple times in the string using `.format()`:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello Mike. Why do they call you Mike?\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "print('Hello {name}. Why do they call you {name}?'.format(name=name))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you refer to `{name}` twice in the string and you are able to replace both of them using `.format()`.\n", + "\n", + "If you want, you can also interpolate values using numbers:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello 18. You must be at least Mike to continue!\n" + ] + } + ], + "source": [ + "print('Hello {1}. You must be at least {0} to continue!'.format(name, age))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Because most things in Python start at 0 (zero), in this example you ended up passing the `age` to `{1}` and the `name` to `{0}`.\n", + "\n", + "A common coding style when working with `.format()` is to create a formatted string and save it to a variable to be used later:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello Mike. You must be at least 18 to continue!'" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name = 'Mike'\n", + "age = 18\n", + "greetings = 'Hello {name}. You must be at least {age} to continue!'\n", + "greetings.format(name=name, age=age)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This allows you to reuse `greetings` and pass in updated values for `name` and `age` later on in your program.\n", + "\n", + "You can also specify the string width and alignment:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'left aligned '" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'{:<20}'.format('left aligned')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "' right aligned'" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'{:>20}'.format('right aligned')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "' centered '" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'{:^20}'.format('centered')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Left aligned is the default. The colon (`:`) tells Python that you are going to apply some kind of formatting. In the first example, you are specifying that the string be left aligned and 20 characters wide. The second example is also 20 characters wide, but it is right aligned. Finally the `^` tells Python to center the string within the 20 character string." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you want to pass in a variable like in the previous examples, here is how you would do that:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "' centered '" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'{name:^20}'.format(name='centered')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the `name` must come before the `:` inside of the `{}`.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Formatting Strings with f-strings\n", + "\n", + "Formatted string literals or f-strings are strings that have an \"f\" at the beginning and curly braces inside of them that contain expressions, much like the ones you saw in the previous section. These expressions tell the f-string about any special processing that needs to be done to the inserted string, such as justification, float precision, etc.\n", + "\n", + "The f-string was added in Python 3.6. You can read more about it and how it works by checking out PEP 498 here:\n", + "\n", + "\n", + "\n", + "The expressions that are contained inside of f-strings are evaluated at runtime. This makes it impossible to use an f-string as a docstring to a function, method or class if it contains an expression. The reason being that docstrings are defined at function definition time.\n", + "\n", + "Let's go ahead and look at a simple example:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello Mike. You are 18 years old'" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name = 'Mike'\n", + "age = 18\n", + "f'Hello {name}. You are {age} years old'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you create the f-string by putting an \"f\" right before the single, double or triple quote that begins your string. Then inside of the string, you use the curly braces, `{}`, to insert variables into your string.\n", + "\n", + "However, your curly braces must enclose something. If you create an f-string with empty braces, you will get an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "f-string: empty expression not allowed (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m f'Hello {}. You are {} years old'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m f-string: empty expression not allowed\n" + ] + } + ], + "source": [ + "f'Hello {}. You are {} years old'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The f-string can do things that neither `%s` nor `.format()` can do though. Because of the fact that f-strings are evaluated at runtime, you can put any valid Python expression inside of them.\n", + "\n", + "For example, you could increase the `age` variable:" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'22'" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age = 20\n", + "f'{age+2}'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or call a method or function:" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'mike'" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "name = 'Mike'\n", + "f'{name.lower()}'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also access dictionary values directly inside of an f-string:" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello Tom. You are 40 years old'" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sample_dict = {'name': 'Tom', 'age': 40}\n", + "f'Hello {sample_dict[\"name\"]}. You are {sample_dict[\"age\"]} years old'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "However, backslashes are not allowed in f-string expressions:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "f-string expression part cannot include a backslash (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m print(f'My name is {name\\n}')\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m f-string expression part cannot include a backslash\n" + ] + } + ], + "source": [ + "print(f'My name is {name\\n}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But you can use backslashes outside of the expression in an f-string:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "My name is Mike\n", + "\n" + ] + } + ], + "source": [ + "name = 'Mike'\n", + "print(f'My name is {name}\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One other thing that you can't do is add a comment inside of an expression in an f-string:" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "f-string expression part cannot include '#' (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m f'My name is {name # name of person}'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m f-string expression part cannot include '#'\n" + ] + } + ], + "source": [ + "f'My name is {name # name of person}'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Python 3.8, f-strings added support for `=`, which will expand the text of the expression to include the text of the expression plus the equal sign and then the evaluated expression. That sounds kind of complicated, so let's look at an example:\n", + "\n", + "```python\n", + ">>> username = 'jdoe'\n", + ">>> f'Your {username=}'\n", + "\"Your username='jdoe'\"\n", + "```\n", + "\n", + "This example demonstrates that the text inside of the expression, `username=` is added to the output followed by the actual value of `username` in quotes.\n", + "\n", + "f-strings are very powerful and extremely useful. They will simplify your code quite a bit if you use them wisely. You should definitely give them a try." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## String Concatenation\n", + "\n", + "Strings also allow concatenation, which is a fancy word for joining two strings into one.\n", + "\n", + "To concatenate strings together, you can use the `+` sign:" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'My name isMike'" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_string = 'My name is'\n", + "second_string = 'Mike'\n", + "first_string + second_string" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Oops! It looks like the strings merged in a weird way because you forgot to add a space to the end of the `first_string`. You can change it like this:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'My name is Mike'" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_string = 'My name is '\n", + "second_string = 'Mike'\n", + "first_string + second_string" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another way to merge strings is to use the `.join()` method. The `.join()` method accepts an iterable, such as a list, of strings and joins them together." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'My name is Mike'" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_string = 'My name is '\n", + "second_string = 'Mike'\n", + "''.join([first_string, second_string])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will make the strings join right next to each other. You could put something inside of the string that you are joining though:" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'My name is ***Mike'" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'***'.join([first_string, second_string])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, it will join the first string to `***` plus the second string.\n", + "\n", + "More often than not, you can use an f-string rather than concatenation or `.join()` and the code will be easier to follow." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## String Slicing\n", + "\n", + "Slicing in strings works in much the same way that it does for Python lists. Let's take the string \"Mike\". The letter \"M\" is at position zero and the letter \"e\" is at position 3.\n", + "\n", + "If you want to grab characters 0-3, you would use this syntax: `my_string[0:4]`\n", + "\n", + "What that means is that you want the substring starting at position zero up to but not including position 4.\n", + "\n", + "Here are a few examples:" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'this'" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'this is a string'[0:4]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'this'" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'this is a string'[:4]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'ring'" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "'this is a string'[-4:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first example grabs the first four letters from the string and returns them. If you want to, you can drop the zero as that is the default and use `[:4]` instead, which is what example two does.\n", + "\n", + "You can also use negative position values. So `[-4:]` means that you want to start at the end of the string and get the last four letters of the string.\n", + "\n", + "You should play around with slicing on your own and see what other slices you can come up with." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 350c8423bcef038609b970874f9056fa5034900f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 25 Mar 2020 16:12:17 -0500 Subject: [PATCH 21/89] add notebook for chapter 10 --- ...ter 10 - Boolean Operations and None.ipynb | 517 ++++++++++++++++++ 1 file changed, 517 insertions(+) create mode 100644 chapter10_bool/Chapter 10 - Boolean Operations and None.ipynb diff --git a/chapter10_bool/Chapter 10 - Boolean Operations and None.ipynb b/chapter10_bool/Chapter 10 - Boolean Operations and None.ipynb new file mode 100644 index 0000000..5e9d744 --- /dev/null +++ b/chapter10_bool/Chapter 10 - Boolean Operations and None.ipynb @@ -0,0 +1,517 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 10 - Boolean Operations and None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You will find that you often need to know if something is `True` or `False`. For example, you might want to know if someone's old enough to create a bank account. If they are, that is usually represented as `True`. These are known as Boolean operations or `bool` for short.\n", + "\n", + "In Python, `False` maps to 0 (zero) and `True` maps to 1 (one). \n", + "\n", + "You can easily see this is true using Python's interpreter:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "True == 1" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "False == 0" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "False == True" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you want to compare two values in Python, you need to use `==` instead of a single `=`. A single `=` is known as the assignment operator, as was mentioned in previous chapters. It assigns the value on the right to the variable on the left.\n", + "\n", + "Let's try to assign a value to `True` and see what happens:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "can't assign to keyword (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m True = 1\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m can't assign to keyword\n" + ] + } + ], + "source": [ + "True = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Python doesn't allow that!\n", + "\n", + "You can't assign anything to keywords in Python." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The bool() Function\n", + "\n", + "Python also provides the `bool()` function, which allows you to cast other types to `True` or `False`.\n", + "\n", + "Let's give it a try:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool('1')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool('2')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool('0')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Anything greater than zero should be cast as `True`. But wait, that third one is a string with a zero in it and it returned `True` as well! What's going on here?\n", + "\n", + "Python has the concept of \"truthy\" and \"falsey\". What that means is that when you are dealing with non-Numeric types, `True` will map to sequences with one or more items and `False` will map to sequences with zero items.\n", + "\n", + "In this case, the string, `'0'`, has one character, so it maps to `True`. Let's try it with an empty string:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool('')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the string is empty (i.e. it has no characters in it), it will cast to `False`. \n", + "\n", + "Let's see what happens when we try casting some of Python's other types:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool([])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool(['something'])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool({})" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool({1: 'one'})" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bool(12)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you try casting an empty list, a list with one item, an empty dictionary, a dictionary with one key/value pair and an integer. Empty lists and dictionaries map to `False`, while lists and dictionaries with one or more items map to `True`. Integers or floats that are 0 or 0.0 will map to `False`, while any other value will map to `True`." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What About None?\n", + "\n", + "Python also has the concept of `None`, which is Python's null value. `None` is a keyword in Python and its data type is the `NoneType`. `None` is not the same as 0, `False` or an empty string. In fact, comparing `None` to anything other than itself will return `False`:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "None == 1" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "None == []" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "None == ''" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "None == None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can assign `None` to a variable. Note that all instances of `None` point to the same object though:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "x = None\n", + "y = None" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4304537616" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4304537616" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "id(y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you want to check if a variable is `None`, you should use Python's `is` operator. The reason for that is that `is` will check the variable's identity and verify that it really is `None`. You will learn more about why this is important in the next chapter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 2c55a057f8fbe23870851c486f805c0b6bbb8904 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 26 Mar 2020 10:12:16 -0500 Subject: [PATCH 22/89] add notebook for chapter 11 --- .../Chapter 11 - Conditional Statements.ipynb | 592 ++++++++++++++++++ 1 file changed, 592 insertions(+) create mode 100644 chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb diff --git a/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb b/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb new file mode 100644 index 0000000..63544db --- /dev/null +++ b/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb @@ -0,0 +1,592 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 11 - Conditional Statements\n", + "\n", + "Developers have to make decisions all the time. How do you approach this problem? Do you use technology X or technology Y? Which programming language(s) can you use to solve this? Your code also sometimes needs to make a decision.\n", + "\n", + "In this chapter you will learn about the following:\n", + "\n", + "* Comparison operators\n", + "* Creating a simple conditional\n", + "* Branching conditional statements\n", + "* Nesting conditionals\n", + "* Logical operators\n", + "* Special operators\n", + "\n", + "Let's get started by learning about comparison operators!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comparison Operators\n", + "\n", + "Before you get started using conditionals, it will be useful to learn about comparison operator. Comparison operators let you ask if something equals something else or if they are greater than or less than a value, etc.\n", + "\n", + "Python's comparison operators are shown in the following table:\n", + "\n", + "|Operator |Meaning |\n", + "|---------|--------|\n", + "|> |Greater than - This is `True` is the left operand is greater than the right|\n", + "|< |Less than - This is `True` is the left operand is less than the right one|\n", + "|== |Equal to - This is `True` only when both operands are equal|\n", + "|!= |Not equal to - This is `True` if the operands are not equal|\n", + "|>= |Greater than or equal to - This is `True` when the left operand is greater than or equal to the right|\n", + "|<= |Less than or equal to - This is `True` when the left operand is less than or equal to the right|\n", + "\n", + "Now that you know what comparison operators are available to you in Python, you can start using them!\n", + "\n", + "Here are some examples:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a = 2\n", + "b = 3\n", + "a == b" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a > b" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a < b" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a >= b" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a <= b" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a != b" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a Simple Conditional" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Creating a conditional statement allows your code to branch down two different paths. Let's take authentication as an example. If you go to your web mail account on a new computer, you will need to login to view your email. The code for the main page will either load up your email box when you go there or it will prompt you to login.\n", + "\n", + "You can make a pretty safe bet that the code is using a conditional statement to check and see if you authenticated / authorized to view the email. If you are, it loads your email. If you are not, it loads the login screen.\n", + "\n", + "Let's create a pretend authentication example:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are logged in\n" + ] + } + ], + "source": [ + "authenticated = True\n", + "if authenticated:\n", + " print('You are logged in')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you create a variable called `authenticated` and set it to `True`. Then you create a conditional statement using Python's `if` keyword. A conditional statement in Python takes this form:\n", + "\n", + "```\n", + "if :\n", + " # do something here\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Branching Conditional Statements\n", + "\n", + "You will often need to do different things depending on the answer of a question. So for this hypothetical situation, you want to let the user know when they aren't authenticated so that they will go login.\n", + "\n", + "To get that to work, you can use the keyword `else`:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Please login\n" + ] + } + ], + "source": [ + "authenticated = False\n", + "if authenticated:\n", + " print('You are logged in')\n", + "else:\n", + " print('Please login')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What this code is doing is that if you are `authenticated`, it will print \"You are logged in\" and when you are not, it will print \"Please login\". In a real program, you would have more than just a `print()` statement. You would have code that would redirect the user to the login page or if they were authenticated, it would run code to load their inbox.\n", + "\n", + "Let's create a new scenario. Let's create a conditional statement that will check your age and let you purchase different items depending on that factor:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You can buy candy\n" + ] + } + ], + "source": [ + "age = 10\n", + "if age < 18:\n", + " print('You can buy candy')\n", + "elif age < 21:\n", + " print('You can purchase tobacco and candy, but not alcohol')\n", + "elif age >= 21:\n", + " print('You can buy anything!')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you use `if` and `elif`. The keyword, `elif` is short for \"else if\". So what you are doing here is that you are checking the age against different hard-coded values. If the age is less than 18, then the buyer can only buy candy. \n", + "\n", + "If they are older than 18 but less than 21, they can purchase tobacco. Of course, you shouldn't do that because tobacco is not good for you, but it has an age restriction in most places. Next you check if the buyer's age is greater than or equal to 21. Then they can buy whatever they want.\n", + "\n", + "You could change the last `elif` to be simply an `else` clause if you wanted to, but Python encourages developers to be explicit in their code and it's easier to understand by using `elif` in this case.\n", + "\n", + "You can use as many `elif` statements as you need, although it is usually recommended that when you see a long `if/elif` statement, that code probably needs to be reworked." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nesting Conditionals\n", + "\n", + "You can put an `if` statement inside of another `if` statement. This is known as nesting.\n", + "\n", + "Let's look at a silly example:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are a blonde\n" + ] + } + ], + "source": [ + "age = 21\n", + "hair = 'blonde'\n", + "if age >= 21:\n", + " if hair == 'brown':\n", + " print('You are a brunette')\n", + " elif hair == 'blonde':\n", + " print('You are a blonde')\n", + "else:\n", + " print('Not checking hair color')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This code has multiple paths that it can take because it depends on two variables: `age` and `hair`. If the age is greater than a certain value, then it falls into that code block and will execute the nested `if` statement, which checks the `hair` color. If the `age` is less than an arbitrary amount then it will simply print out a message.\n", + "\n", + "Theoretically, you can nest conditionals any number of times. However, the more nesting you do, the more complicated it is to debug later. You should keep the nesting to only one or two levels deep in most cases.\n", + "\n", + "Fortunately, logical operators can help alleviate this issue!\n", + "\n", + "## Logical Operators\n", + "\n", + "Logical operators allow you to chain multiple expressions together using special keywords.\n", + "\n", + "Here are the three logical operators that Python supports:\n", + "\n", + "* `and` - Only `True` is both the operands are true\n", + "* `or` - `True` is either of the operands are true\n", + "* `not` - `True` is the operand is false\n", + "\n", + "Let's try using the logical operator, `and` with the example from the last section to flatten your conditional statements:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are a blonde\n" + ] + } + ], + "source": [ + "age = 21\n", + "hair = 'blonde'\n", + "if age >= 21 and hair == 'brown':\n", + " print('You are a brunette')\n", + "elif age >= 21 and hair == 'blonde':\n", + " print('You are a blonde')\n", + "else:\n", + " print('Not checking hair color')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you use `and`, both expressions must evaluate to `True` for the code underneath them to execute. So the first conditional checks to see if the age is greater than or equal to 21 AND the hair color is brown. Since it isn't both of those things, you drop down to the `elif` and check those conditions. This time both conditions are `True`, so it prints our your hair color.\n", + "\n", + "Let's see what happens if you change the `and` to an `or`:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are a brunette\n" + ] + } + ], + "source": [ + "age = 21\n", + "hair = 'blonde'\n", + "if age >= 21 or hair == 'brown':\n", + " print('You are a brunette')\n", + "elif age >= 21 and hair == 'blonde':\n", + " print('You are a blonde')\n", + "else:\n", + " print('Not checking hair color')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wait a minute! You just said your hair color was blonde, but this code is saying you're a brunette! What's going on here?\n", + "\n", + "Well when you use a logical `or`, that means that the code in that code block will execute if either of the statements are `True`. \n", + "\n", + "Let's break this down a bit. There are two expressions in `if age >= 21 or hair == 'brown'`. The first one is `age >= 21`. That evaluates to `True`. As soon as Python sees the `or` and that the first statement is `True`, it evaluates the whole thing as `True`. Either your age is greater than or equal to 21 **or** your hair is brown. Either way, it's true and that code gets executed.\n", + "\n", + "Using `not` is a bit different. It doesn't really fit with this example at all, so you'll have to write something else. \n", + "\n", + "Here is one way you could use `not`:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = [1, 2, 3, 4]\n", + "5 not in my_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this case, you are checking to see if an integer is `not` in a `list`.\n", + "\n", + "Let's use another authentication example to demonstrate how you might use `not`:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are not authorized!\n" + ] + } + ], + "source": [ + "ids = [1234, 5678]\n", + "my_id = 1001\n", + "if my_id not in ids:\n", + " print('You are not authorized!')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you have a set of known ids. These ids could be numeric like they are here or they could be email addresses or something else. Regardless, you need to check if the given id, `my_id` is in your list of known ids. If it's not, then you can let the user know that they are not authorized to continue.\n", + "\n", + "You can also combine logical operators in a conditional statement. Here's an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You are 21 years old with brown hair\n" + ] + } + ], + "source": [ + "hair = 'brown'\n", + "age = 21\n", + "if age >= 21 and (hair == 'brown' or hair == 'blue'):\n", + " print(f'You are {age} years old with {hair} hair')\n", + "else:\n", + " print(f'You are too young at {age} years old')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Special Operators\n", + "\n", + "There are some special operators that you can use in conditional expressions. In fact, you already used one of them in the previous section.\n", + "\n", + "Do you remember which one of these you just used?\n", + "\n", + "* `is` - `True` when the operands are identical (i.e. have the same id)\n", + "* `is not` - `True` when the operands are not identical\n", + "* `in` - `True` when the value is in the sequence \n", + "* `not in` - `True` when the value is not in the sequence\n", + "\n", + "You used the last one, `not in` to determine if an id was not in the authorized access list. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can use `in` and `not in` to test if something is in a sequence. Sequences in Python refer to such things as lists, strings, tuples, etc. \n", + "\n", + "Here's one way you could use this knowledge:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x is not in yn\n" + ] + } + ], + "source": [ + "valid_chars = 'yn'\n", + "char = 'x'\n", + "if char in valid_chars:\n", + " print(f'{char} is a valid character')\n", + "else:\n", + " print(f'{char} is not in {valid_chars}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you check to see if the `char` is in the string of `valid_chars`. If it isn't, it will print out what the valid letters are." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 90deb83ee87651807fd0986ad1b7903564380564 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 26 Mar 2020 10:33:49 -0500 Subject: [PATCH 23/89] add binder support --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 90c42b1..2ea6335 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,9 @@ Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition by Michael Driscoll. -You can get the book on [Leanpub](https://leanpub.com/py101) soon. +You can get early access to the book on [Leanpub](https://leanpub.com/py101) as well as all updates as they come out. The book will be finished by **September 2020**. + +The first dozen or so chapters will have [Jupyter Notebooks](https://jupyter.org/) rather than simple code examples. You can run the examples in your browser by using this link: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/driscollis/python101code/master). Then navigate to each chapter and open the Jupyter Notebook, If you are looking for the code for **Python 101**, 1st Edition, they can be found [here](https://github.com/driscollis/Python-101-Community-Edition) -[](https://leanpub.com/py101/) From 75e43e064bb6cfa72dca996e1f0c59844bd9f42d Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 26 Mar 2020 10:38:13 -0500 Subject: [PATCH 24/89] add install instructions for Jupyter --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ea6335..e32926f 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition You can get early access to the book on [Leanpub](https://leanpub.com/py101) as well as all updates as they come out. The book will be finished by **September 2020**. -The first dozen or so chapters will have [Jupyter Notebooks](https://jupyter.org/) rather than simple code examples. You can run the examples in your browser by using this link: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/driscollis/python101code/master). Then navigate to each chapter and open the Jupyter Notebook, +The first dozen or so chapters will have [Jupyter Notebooks](https://jupyter.org/) rather than simple code examples. You can run the examples in your browser by using this link: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/driscollis/python101code/master). Then navigate to each chapter and open the Jupyter Notebook. + +Alternatively, you can download the code (or clone it with Git) and use Jupyter on your own machine. Once you have gotten the code / notebooks from this repo, you will need to [install Jupyter](https://jupyter.org/install). Once installed, you should open up a terminal (or cmd.exe on Windows) and navigate to the folder where your save the code to. Then run `jupyter notebook` in your terminal. If you are looking for the code for **Python 101**, 1st Edition, they can be found [here](https://github.com/driscollis/Python-101-Community-Edition) From 68af8d51207b1b611a9e8362dc81fa599d82cceb Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 27 Mar 2020 09:29:33 -0500 Subject: [PATCH 25/89] fixed inconsistent indentation --- chapter18_classes/simple_ball_type_hints.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/chapter18_classes/simple_ball_type_hints.py b/chapter18_classes/simple_ball_type_hints.py index 22541e5..c9824ae 100644 --- a/chapter18_classes/simple_ball_type_hints.py +++ b/chapter18_classes/simple_ball_type_hints.py @@ -1,6 +1,6 @@ class Ball: - + def __init__(self, color: str, size: float, weight: float) -> None: - self.color = color - self.size = size - self.weight = weight \ No newline at end of file + self.color = color + self.size = size + self.weight = weight \ No newline at end of file From b079673aa8ef70d46cb36398c9e9065f36870ac3 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 27 Mar 2020 09:30:06 -0500 Subject: [PATCH 26/89] add code and notebook for chapter 12 --- .../Chapter 12 - Learning About Loops.ipynb | 629 ++++++++++++++++++ chapter12_loops/for_loop_else.py | 8 + chapter12_loops/for_loop_else_2.py | 8 + chapter12_loops/for_loop_with_break.py | 6 + chapter12_loops/nested_loops.py | 5 + chapter12_loops/while_with_break.py | 7 + 6 files changed, 663 insertions(+) create mode 100644 chapter12_loops/Chapter 12 - Learning About Loops.ipynb create mode 100644 chapter12_loops/for_loop_else.py create mode 100644 chapter12_loops/for_loop_else_2.py create mode 100644 chapter12_loops/for_loop_with_break.py create mode 100644 chapter12_loops/nested_loops.py create mode 100644 chapter12_loops/while_with_break.py diff --git a/chapter12_loops/Chapter 12 - Learning About Loops.ipynb b/chapter12_loops/Chapter 12 - Learning About Loops.ipynb new file mode 100644 index 0000000..963595b --- /dev/null +++ b/chapter12_loops/Chapter 12 - Learning About Loops.ipynb @@ -0,0 +1,629 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 12 - Learning About Loops\n", + "\n", + "There are many times when you are writing code that you will need to find a way to iterate over something. Perhaps you'll need to iterate over the letters in a string or the objects in a `list`. The process of iterating over something is done via a loop. \n", + "\n", + "A loop is a programming construct that allows you to iterate over chunks. Those chunks could be the letters in the string or the lines of a file. \n", + "\n", + "In Python, there are two types of loop constructs:\n", + "\n", + "* The `for` loop\n", + "* The `while` loop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a `for` Loop\n", + "\n", + "The `for` loop is the most popular looping construct in Python. A `for` loop is created using the following syntax:\n", + "\n", + "```python\n", + "for x in iterable:\n", + "\t# do something\n", + "```\n", + "\n", + "Now the code above does nothing. So let's write a `for` loop that iterates over a list, one item at a time:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "3\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "for item in my_list:\n", + " print(item)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this code, you create a `list` with three integers in it. Next you create a `for` loop that says \"for each item in my list, print out the item\".\n", + "\n", + "Of course, most of the time you will actually want to do something to the item. For example, you might want to double it:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "4\n", + "6\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "for item in my_list:\n", + " print(f'{item * 2}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or you might want to only print out only the even numbered items:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 is even\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "for item in my_list:\n", + " if item % 2 == 0:\n", + " print(f'{item} is even')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here you use the modulus operator, `%`, to find the remainder of the item divided by 2. If the remainder is 0, then you know that the item is an even number.\n", + "\n", + "You can use loops and conditionals and any other Python construct to create complex pieces of code that are only limited by your imagination.\n", + "\n", + "Let's learn what else you can loop over besides lists." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Looping Over a String\n", + "\n", + "One of the differences of the `for` loop in Python versus other programming languages is that you can iterate over any sequence. So you can iterate over other data types.\n", + "\n", + "Let's look at iterating over a string:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a\n", + "b\n", + "c\n", + "d\n", + "e\n", + "f\n", + "g\n" + ] + } + ], + "source": [ + "my_str = 'abcdefg'\n", + "for letter in my_str:\n", + " print(letter)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Looping Over a Dictionary\n", + "\n", + "Python dictionaries also allow looping. By default, when you loop over a dictionary, you will loop over its keys:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mdriscoll\n", + "guido\n", + "steve\n" + ] + } + ], + "source": [ + "users = {'mdriscoll': 'password', 'guido': 'python', 'steve': 'guac'}\n", + "for user in users:\n", + " print(user)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you specify that you want to extract the `user` and the `password` in each iteration. As you might recall, the `items()` method returns a view that is formatted like a list of tuples. Because of that, you can extract each `key: value` pair from this view and print them out.\n", + "\n", + "This leads us to looping over tuples and getting out individual items from a tuple while looping!\n", + "\n", + "## Extracting Multiple Values in a Tuple While Looping\n", + "\n", + "Sometimes you will need to loop over a list of tuples and get each item within the tuple. It sounds kind of weird, but you will find that it is a fairly common programming task.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 - banana\n", + "2 - apple\n", + "3 - pear\n" + ] + } + ], + "source": [ + "list_of_tuples = [(1, 'banana'), (2, 'apple'), (3, 'pear')]\n", + "for number, fruit in list_of_tuples:\n", + " print(f'{number} - {fruit}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To get this to work, you take advantage of the fact that you know each tuple has two items in it. Since you know the format of the list of tuples ahead of time, you know how to extract the values.\n", + "\n", + "If you hadn't extracted the items individually from the tuples, you would have ended up with this kind of output:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1, 'banana')\n", + "(2, 'apple')\n", + "(3, 'pear')\n" + ] + } + ], + "source": [ + "list_of_tuples = [(1, 'banana'), (2, 'apple'), (3, 'pear')]\n", + "for item in list_of_tuples:\n", + " print(item)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Using `enumerate` with Loops\n", + "\n", + "Python comes with a built-in function called `enumerate`. This function takes in an iterator or sequence, like a string or list, and returns a tuple in the form of `(position, item)`. \n", + "\n", + "This allows you to know the position of the item in the sequence easily while looping over the sequence.\n", + "\n", + "Here's an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 - a\n", + "1 - b\n", + "2 - c\n", + "3 - d\n", + "4 - e\n", + "5 - f\n", + "6 - g\n" + ] + } + ], + "source": [ + "my_str = 'abcdefg'\n", + "for pos, letter in enumerate(my_str):\n", + " print(f'{pos} - {letter}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating a `while` Loop\n", + "\n", + "Python has one other type of looping construct that is called the `while` loop. A `while` loop is created with the keyword `while` followed by an expression. In other words, `while` loops will run until a specific condition is met.\n", + "\n", + "Let's take a look at how these loops work:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n", + "7\n", + "8\n", + "9\n" + ] + } + ], + "source": [ + "count = 0\n", + "while count < 10:\n", + " print(count)\n", + " count += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This loop is formulated in much the same way as a conditional statement. You tell Python that you want the loop to run as long as the `count` is less than 10. Inside of the loop, you print out the current `count` and then you increment the `count` by one.\n", + "\n", + "If you forgot to increment the `count`, the loop would run until you stop or terminate the Python process. \n", + "\n", + "You can create an infinite loop by making that mistake or you could do something like this:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "while True:\n", + " print('Program running')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since the expression is always `True`, this code will print out the string, \"Program running\", forever or until you kill the process." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Breaking Out of a Loop\n", + "\n", + "Sometimes you want to stop a loop early. For example, you might want to loop until you find something specific. A good use case would be looping over the lines in a text file and stopping when you find the first occurrence of a particular string. \n", + "\n", + "To stop a loop early, you can use the keyword `break`:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "count=4\n" + ] + } + ], + "source": [ + "count = 0\n", + "while count < 10:\n", + " if count == 4:\n", + " print(f'count={count}')\n", + " break\n", + " print(count)\n", + " count += 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also use `break` in a `for` loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 - banana\n", + "Apple found!\n" + ] + } + ], + "source": [ + "list_of_tuples = [(1, 'banana'), (2, 'apple'), (3, 'pear')]\n", + "for number, fruit in list_of_tuples:\n", + " if fruit == 'apple':\n", + " print('Apple found!')\n", + " break\n", + " print(f'{number} - {fruit}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this example, you want to break out of the loop when you find an apple. Otherwise you print out what fruit you have found. Since the apple is in the second tuple, you will never get to the third one.\n", + "\n", + "When you use `break`, the loop will only break out of the innermost loop that the `break` statement is in.\n", + "\n", + "You can use `break` to help control the flow of the program. In fact, conditional statements along with `break` are known as `flow control` statements.\n", + "\n", + "## Using `continue`\n", + "\n", + "The `continue` statement is used for continuing to the next iteration in the loop. You can use `continue` to skip over something.\n", + "\n", + "Let's write a loop that skips over even numbers:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "5\n", + "7\n", + "9\n", + "11\n" + ] + } + ], + "source": [ + "for number in range(2, 12):\n", + " if number % 2 == 0:\n", + " continue\n", + " print(number)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this code, you loop over a range of numbers starting at 2 and ending at 11. For each number in this range, you use the modulus operator, `%`, to get the remainder of the number divided by 2. If the remainder is zero, it's an even number and you use the `continue` statement to continue to the next value in the sequence. This effectively skips even numbers so that you only print out the odd ones.\n", + "\n", + "You can use clever conditional statements to skip over any number of things in a sequence by using the `continue` statement.\n", + "\n", + "## Loops and the `else` Statement\n", + "\n", + "A little known fact about Python loops is that you can add an `else` statement to them like you do with an `if/else` statement. The `else` statement only gets executed when no `break` statement occurs.\n", + "\n", + "Another way to look at it is that the `else` statement only executes if the loop completes successfully.\n", + "\n", + "The primary use case for the `else` statement in a loop is for searching for an item in a sequence. You would use the `else` statement to raise an exception if the item was not found.\n", + "\n", + "Let's look at a quick example:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "3\n", + "Number 4 not found\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3]\n", + "for number in my_list:\n", + " if number == 4:\n", + " print('Found number 4!')\n", + " break\n", + " print(number)\n", + "else:\n", + " print('Number 4 not found')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This example loops over a `list` of three integers. It looks for the number 4 and will break out of the loop if it is found. If that number is not found, then the `else` statement will execute and let you know.\n", + "\n", + "Try adding the number 4 to the `list` and then re-run the code:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "2\n", + "3\n", + "Found number 4!\n" + ] + } + ], + "source": [ + "my_list = [1, 2, 3, 4]\n", + "for number in my_list:\n", + " if number == 4:\n", + " print('Found number 4!')\n", + " break\n", + " print(number)\n", + "else:\n", + " print('Number 4 not found')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nesting Loops\n", + "\n", + "Loops can also be nested inside of each other. There are many reasons to nest loops. One of the most common reasons is to unravel a nested data structure. \n", + "\n", + "Let's use a nested `list` for your example:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "List = ['mike', 12]\n", + "Item -> mike\n", + "Item -> 12\n", + "List = ['jan', 15]\n", + "Item -> jan\n", + "Item -> 15\n", + "List = ['alice', 8]\n", + "Item -> alice\n", + "Item -> 8\n" + ] + } + ], + "source": [ + "nested = [['mike', 12], ['jan', 15], ['alice', 8]]\n", + "for lst in nested:\n", + " print(f'List = {lst}')\n", + " for item in lst:\n", + " print(f'Item -> {item}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The outer loop will extract each nested `list` and print it out as well. Then in the inner loop, your code will extract each item within the nested list and print it out.\n", + "\n", + "This type of code is especially useful when the nested lists are of varying lengths. You may need to do extra processing on the lists that have extra data or not enough data in them, for example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/chapter12_loops/for_loop_else.py b/chapter12_loops/for_loop_else.py new file mode 100644 index 0000000..159cc5a --- /dev/null +++ b/chapter12_loops/for_loop_else.py @@ -0,0 +1,8 @@ +my_list = [1, 2, 3] +for number in my_list: + if number == 4: + print('Found number 4!') + break + print(number) +else: + print('Number 4 not found') \ No newline at end of file diff --git a/chapter12_loops/for_loop_else_2.py b/chapter12_loops/for_loop_else_2.py new file mode 100644 index 0000000..0ca6b8e --- /dev/null +++ b/chapter12_loops/for_loop_else_2.py @@ -0,0 +1,8 @@ +my_list = [1, 2, 3, 4] +for number in my_list: + if number == 4: + print('Found number 4!') + break + print(number) +else: + print('Number 4 not found') \ No newline at end of file diff --git a/chapter12_loops/for_loop_with_break.py b/chapter12_loops/for_loop_with_break.py new file mode 100644 index 0000000..4fb2e9a --- /dev/null +++ b/chapter12_loops/for_loop_with_break.py @@ -0,0 +1,6 @@ +list_of_tuples = [(1, 'banana'), (2, 'apple'), (3, 'pear')] +for number, fruit in list_of_tuples: + if fruit == 'apple': + print('Apple found!') + break + print(f'{number} - {fruit}') \ No newline at end of file diff --git a/chapter12_loops/nested_loops.py b/chapter12_loops/nested_loops.py new file mode 100644 index 0000000..75c3246 --- /dev/null +++ b/chapter12_loops/nested_loops.py @@ -0,0 +1,5 @@ +nested = [['mike', 12], ['jan', 15], ['alice', 8]] +for lst in nested: + print(f'List = {lst}') + for item in lst: + print(f'Item -> {item}') \ No newline at end of file diff --git a/chapter12_loops/while_with_break.py b/chapter12_loops/while_with_break.py new file mode 100644 index 0000000..d024329 --- /dev/null +++ b/chapter12_loops/while_with_break.py @@ -0,0 +1,7 @@ +count = 0 +while count < 10: + if count == 4: + print(f'count={count}') + break + print(count) + count += 1 \ No newline at end of file From 2a028393e24e283fdf777e8bf933f7957ddc14c2 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 27 Mar 2020 09:48:10 -0500 Subject: [PATCH 27/89] add notebook for chapter 13 --- .../Chapter 13 - Python Comprehensions.ipynb | 460 ++++++++++++++++++ 1 file changed, 460 insertions(+) create mode 100644 chapter13_comprehensions/Chapter 13 - Python Comprehensions.ipynb diff --git a/chapter13_comprehensions/Chapter 13 - Python Comprehensions.ipynb b/chapter13_comprehensions/Chapter 13 - Python Comprehensions.ipynb new file mode 100644 index 0000000..1e596cb --- /dev/null +++ b/chapter13_comprehensions/Chapter 13 - Python Comprehensions.ipynb @@ -0,0 +1,460 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 13 - Python Comprehensions\n", + "\n", + "Python supports a short hand method for creating lists, dictionaries and sets that is known as **comprehensions**. The common use case is that you want to create a new list where each element has had some kind of operation done to them. For example, if you have a `list` of numbers and you want to create a new `list` with all the numbers doubled, you could use a comprehension.\n", + "\n", + "In this chapter you will learn about:\n", + "\n", + "* List comprehensions\n", + "* Dictionary comprehensions\n", + "* Set comprehensions\n", + "\n", + "## List Comprehensions\n", + "\n", + "A `list` comprehension allows you to create a list from another sequence, such as a `list` or `dict`. You end up using list-like syntax with a `for` loop on a single line.\n", + "\n", + "The syntax goes of a list comprehension is having square brackets that contain an expression followed by a `for` loop. This can optionally be followed by zero or more `for` or `if` clauses.\n", + "\n", + "Here is an example:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sequence = [1, 2, 3]\n", + "new_list = [x for x in sequence]\n", + "new_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is equivalent to the following loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sequence = [1, 2, 3]\n", + "new_list = []\n", + "for x in sequence:\n", + " new_list.append(x)\n", + "new_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Usually when you use a list comprehension, you want to do something to each of the items in the sequence. For example, let's try doubling each of the items:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[2, 4, 6]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sequence = [1, 2, 3]\n", + "new_list = [x * 2 for x in sequence]\n", + "new_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Filtering List Comprehensions\n", + "\n", + "You can add an `if` statement to a list comprehension as a type of filter. Python comes with a built-in `range()` function that takes in an integer. It then returns an iterable `range` object that allows you to get a range of integers starting at 0 and ending at the integer you passed in minus one.\n", + "\n", + "Here is how it works:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "range(0, 10)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "range(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(range(10))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can use Python's `list()` function to turn the `range` object into a list of numbers, 0-9.\n", + "\n", + "Now let's say you want to create a list that contains only the odd numbers in that range. You can use a list comprehension with an `if` statement in it to do that:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 3, 5, 7, 9]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "odd_numbers = [x for x in range(10) if x % 2]\n", + "odd_numbers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's try using nested `for` loops in a list comprehension. For this exercise, you will create a `dict` and transform it into a `list` of tuples:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(1, 'dog'), (2, 'cat'), (3, 'python')]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict = {1: 'dog', 2: 'cat', 3: 'python'}\n", + "[(num, animal) for num in my_dict for animal in my_dict.values() if my_dict[num] == animal]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This code creates a `tuple` of number and animals for each number in the dictionary and each animal, but it filters it so that it will only create the `tuple` if the dictionary key equals its value.\n", + "\n", + "Here is the equivalent as a regular `for` loop:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(1, 'dog'), (2, 'cat'), (3, 'python')]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict = {1: 'dog', 2: 'cat', 3: 'python'}\n", + "my_list = []\n", + "for num in my_dict:\n", + " for animal in my_dict.values():\n", + " if my_dict[num] == animal:\n", + " my_list.append((num, animal))\n", + "my_list" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can make the previous list comprehension a bit more readable by putting some line breaks in it, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(1, 'dog'), (2, 'cat'), (3, 'python')]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_dict = {1: 'dog', 2: 'cat', 3: 'python'}\n", + "[(num, animal) for num in my_dict \n", + " for animal in my_dict.values() \n", + " if my_dict[num] == animal]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is easier to read than the one-liner version. List comprehensions are fun to write, but they can be difficult to debug or reacquaint yourself with. Always be sure to give good names to the variables inside of list comprehensions. If the comprehension gets too complex, it would probably be better to break it down into smaller pieces.\n", + "\n", + "## Nested List Comprehensions\n", + "\n", + "You can also nest list comprehensions inside of each other. For the most part, this is not recommended. If you search the Internet, you will find that the most common use case for nesting list comprehensions is for matrix math.\n", + "\n", + "A matrix is usually represented as a list of lists where the internal lists contain integers or floats. \n", + "\n", + "Let's look at an example of that:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[18, 16, 14], [12, 10, 8], [6, 4, 2]]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "matrix = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]\n", + "[[element * 2 for element in row] for row in matrix]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This matrix has three lists in it. These internal lists can be thought of as rows. Next you create a nested list comprehension that will loop over each element in a row and multiply that element by 2. Then in the outer portion of the list comprehension, you will loop over each row in the matrix itself.\n", + "\n", + "If you get the chance, you should go check out Python's documentation on list comprehensions. It has several other interesting examples in it that are well worth your time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dictionary Comprehensions\n", + "\n", + "Dictionary comprehensions were originally created in Python 3.0, but they were then backported to Python 2.7. You can read all about them in [Python Enhancement Proposal 274 (PEP 274)](http://www.python.org/dev/peps/pep-0274/), which goes into all the details of how they work.\n", + "\n", + "The syntax for a dictionary comprehension is quite similar to a list comprehension. Instead of square braces, you use curly braces. Inside the braces, you have a `key: value` expression followed by the `for` loop which itself can be followed by additional `if` or `for` clauses.\n", + "\n", + "You can write a dictionary comprehension like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "{key: value for key, value in enumerate('abcde')}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, you create a `key: value` pair for every `key` and `value` that is returned from `enumerate`. The `enumerate` function returns the position of an item and the item itself as it iterates over the data structure. \n", + "\n", + "You probably won't see dictionary comprehensions as often as you will list comprehensions. They just aren't as useful. You also have to be careful when you create a dictionary comprehension as they keys have to be immutable. If they aren't, you will receive an exception." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set Comprehensions\n", + "\n", + "You learned about sets back in chapter 8. They are useful for creating sequences that contain a unique group of elements. You can create a `set` using a set comprehension.\n", + "\n", + "To create a set comprehension, you will need to use curly braces and loop over a sequence. In fact, the syntax for a set comprehension matches a list comprehension completely except that set comprehensions use curly braces instead of square braces.\n", + "\n", + "Let's take a look:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['a', 'a', 'a', 'b', 'b', 'c', 'd', 'e']" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_list = list('aaabbcde')\n", + "my_list" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'a', 'b', 'c', 'd', 'e'}" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "my_set = {item for item in my_list}\n", + "my_set" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Set comprehensions are pretty straightforward. Here you loop over each item in the `list` and put it into a `set`. Then you print out the `set` to verify that the elements were deduped." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From b879c02c0493ed575bca2ace7576b4b4f4dce3b0 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 27 Mar 2020 10:43:27 -0500 Subject: [PATCH 28/89] fix image in readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e32926f..cdc0491 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Python 101, 2nd Edition Book Code +Python 201 2nd Edition + Code examples from the book, [Python 101](https://leanpub.com/py101) 2nd Edition by Michael Driscoll. You can get early access to the book on [Leanpub](https://leanpub.com/py101) as well as all updates as they come out. The book will be finished by **September 2020**. From 6799fca4225569cb278062412a6e90f9950ef8cf Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Apr 2020 10:07:12 -0500 Subject: [PATCH 29/89] reorder chapters --- .../Chapter 9 - Working with Strings.ipynb | 0 .../Chapter 3 - Numeric Types.ipynb | 0 .../Chapter 5 - Learning About Lists.ipynb | 0 .../Chapter 6 - Learning About Tuples.ipynb | 0 .../Chapter 7 - Learning About Dictionaries.ipynb | 0 .../Chapter 8 - Learning About Sets.ipynb | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename {chapter09_strings => chapter04_strings}/Chapter 9 - Working with Strings.ipynb (100%) rename {chapter04_numeric_types => chapter05_numeric_types}/Chapter 3 - Numeric Types.ipynb (100%) rename {chapter05_lists => chapter06_lists}/Chapter 5 - Learning About Lists.ipynb (100%) rename {chapter06_tuples => chapter07_tuples}/Chapter 6 - Learning About Tuples.ipynb (100%) rename {chapter07_dictionaries => chapter08_dictionaries}/Chapter 7 - Learning About Dictionaries.ipynb (100%) rename {chapter08_sets => chapter09_sets}/Chapter 8 - Learning About Sets.ipynb (100%) diff --git a/chapter09_strings/Chapter 9 - Working with Strings.ipynb b/chapter04_strings/Chapter 9 - Working with Strings.ipynb similarity index 100% rename from chapter09_strings/Chapter 9 - Working with Strings.ipynb rename to chapter04_strings/Chapter 9 - Working with Strings.ipynb diff --git a/chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb b/chapter05_numeric_types/Chapter 3 - Numeric Types.ipynb similarity index 100% rename from chapter04_numeric_types/Chapter 3 - Numeric Types.ipynb rename to chapter05_numeric_types/Chapter 3 - Numeric Types.ipynb diff --git a/chapter05_lists/Chapter 5 - Learning About Lists.ipynb b/chapter06_lists/Chapter 5 - Learning About Lists.ipynb similarity index 100% rename from chapter05_lists/Chapter 5 - Learning About Lists.ipynb rename to chapter06_lists/Chapter 5 - Learning About Lists.ipynb diff --git a/chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb b/chapter07_tuples/Chapter 6 - Learning About Tuples.ipynb similarity index 100% rename from chapter06_tuples/Chapter 6 - Learning About Tuples.ipynb rename to chapter07_tuples/Chapter 6 - Learning About Tuples.ipynb diff --git a/chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb b/chapter08_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb similarity index 100% rename from chapter07_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb rename to chapter08_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb diff --git a/chapter08_sets/Chapter 8 - Learning About Sets.ipynb b/chapter09_sets/Chapter 8 - Learning About Sets.ipynb similarity index 100% rename from chapter08_sets/Chapter 8 - Learning About Sets.ipynb rename to chapter09_sets/Chapter 8 - Learning About Sets.ipynb From 7574ef5fd9605ace361514dbefbb4c9cfa73f5f8 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Apr 2020 10:07:28 -0500 Subject: [PATCH 30/89] update titles of notebooks --- ... => Chapter 4 - Working with Strings.ipynb} | 2 +- ...s.ipynb => Chapter 5 - Numeric Types.ipynb} | 2 +- ... => Chapter 6 - Learning About Lists.ipynb} | 2 +- ...=> Chapter 7 - Learning About Tuples.ipynb} | 2 +- ...pter 8 - Learning About Dictionaries.ipynb} | 2 +- ...b => Chapter 9 - Learning About Sets.ipynb} | 2 +- chapter22_threading/worker_threads.py | 18 ++++++++++++++++++ 7 files changed, 24 insertions(+), 6 deletions(-) rename chapter04_strings/{Chapter 9 - Working with Strings.ipynb => Chapter 4 - Working with Strings.ipynb} (99%) rename chapter05_numeric_types/{Chapter 3 - Numeric Types.ipynb => Chapter 5 - Numeric Types.ipynb} (99%) rename chapter06_lists/{Chapter 5 - Learning About Lists.ipynb => Chapter 6 - Learning About Lists.ipynb} (99%) rename chapter07_tuples/{Chapter 6 - Learning About Tuples.ipynb => Chapter 7 - Learning About Tuples.ipynb} (99%) rename chapter08_dictionaries/{Chapter 7 - Learning About Dictionaries.ipynb => Chapter 8 - Learning About Dictionaries.ipynb} (99%) rename chapter09_sets/{Chapter 8 - Learning About Sets.ipynb => Chapter 9 - Learning About Sets.ipynb} (99%) create mode 100644 chapter22_threading/worker_threads.py diff --git a/chapter04_strings/Chapter 9 - Working with Strings.ipynb b/chapter04_strings/Chapter 4 - Working with Strings.ipynb similarity index 99% rename from chapter04_strings/Chapter 9 - Working with Strings.ipynb rename to chapter04_strings/Chapter 4 - Working with Strings.ipynb index c8afbb3..1931c7c 100644 --- a/chapter04_strings/Chapter 9 - Working with Strings.ipynb +++ b/chapter04_strings/Chapter 4 - Working with Strings.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 9 - Working with Strings\n", + "# Chapter 4 - Working with Strings\n", "\n", "You will be using strings very often when you program. A string is a series of letters surrounded by single, double or triple quotes. Python 3 defines string as a \"Text Sequence Type\". You can cast other types to a string using the built-in `str()` function." ] diff --git a/chapter05_numeric_types/Chapter 3 - Numeric Types.ipynb b/chapter05_numeric_types/Chapter 5 - Numeric Types.ipynb similarity index 99% rename from chapter05_numeric_types/Chapter 3 - Numeric Types.ipynb rename to chapter05_numeric_types/Chapter 5 - Numeric Types.ipynb index dd18be4..13c3fd4 100644 --- a/chapter05_numeric_types/Chapter 3 - Numeric Types.ipynb +++ b/chapter05_numeric_types/Chapter 5 - Numeric Types.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 4 - Numeric Types" + "# Chapter 5 - Numeric Types" ] }, { diff --git a/chapter06_lists/Chapter 5 - Learning About Lists.ipynb b/chapter06_lists/Chapter 6 - Learning About Lists.ipynb similarity index 99% rename from chapter06_lists/Chapter 5 - Learning About Lists.ipynb rename to chapter06_lists/Chapter 6 - Learning About Lists.ipynb index afae5a6..dbee46c 100644 --- a/chapter06_lists/Chapter 5 - Learning About Lists.ipynb +++ b/chapter06_lists/Chapter 6 - Learning About Lists.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 5 - Learning About Lists" + "# Chapter 6 - Learning About Lists" ] }, { diff --git a/chapter07_tuples/Chapter 6 - Learning About Tuples.ipynb b/chapter07_tuples/Chapter 7 - Learning About Tuples.ipynb similarity index 99% rename from chapter07_tuples/Chapter 6 - Learning About Tuples.ipynb rename to chapter07_tuples/Chapter 7 - Learning About Tuples.ipynb index ec057af..fb5bcac 100644 --- a/chapter07_tuples/Chapter 6 - Learning About Tuples.ipynb +++ b/chapter07_tuples/Chapter 7 - Learning About Tuples.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 6 - Learning About Tuples\n", + "# Chapter 7 - Learning About Tuples\n", "\n", "Tuples are another sequence type in Python. Tuples consist of a number of values that are separated by commas. A tuple is immutable whereas a list is not. Immutable means that the tuple has a fixed value and cannot change. You cannot add, delete or modify items in a tuple. Immutable objects are useful when you need a constant hash value. The most popular example is the key to a Python dictionary, which you will learn about in **chapter 7**." ] diff --git a/chapter08_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb b/chapter08_dictionaries/Chapter 8 - Learning About Dictionaries.ipynb similarity index 99% rename from chapter08_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb rename to chapter08_dictionaries/Chapter 8 - Learning About Dictionaries.ipynb index 332e9c0..3a01e9d 100644 --- a/chapter08_dictionaries/Chapter 7 - Learning About Dictionaries.ipynb +++ b/chapter08_dictionaries/Chapter 8 - Learning About Dictionaries.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 7 - Learning About Dictionaries\n", + "# Chapter 8 - Learning About Dictionaries\n", "\n", "Dictionaries are another fundamental data type in Python. A dictionary is a key, value pair. Some programming languages refer to them as hash tables. They are described as a *mapping* object that maps hashable values to arbitrary objects.\n", "\n", diff --git a/chapter09_sets/Chapter 8 - Learning About Sets.ipynb b/chapter09_sets/Chapter 9 - Learning About Sets.ipynb similarity index 99% rename from chapter09_sets/Chapter 8 - Learning About Sets.ipynb rename to chapter09_sets/Chapter 9 - Learning About Sets.ipynb index 579b497..3ffd92b 100644 --- a/chapter09_sets/Chapter 8 - Learning About Sets.ipynb +++ b/chapter09_sets/Chapter 9 - Learning About Sets.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Chapter 8 - Learning About Sets" + "# Chapter 9 - Learning About Sets" ] }, { diff --git a/chapter22_threading/worker_threads.py b/chapter22_threading/worker_threads.py new file mode 100644 index 0000000..0091535 --- /dev/null +++ b/chapter22_threading/worker_threads.py @@ -0,0 +1,18 @@ +# worker_threads.py + +import random +import threading +import time + + +def worker(name: str) -> None: + print(f'Started worker {name}') + worker_time = random.choice(range(1, 5)) + time.sleep(worker_time) + print(f'{name} worker finished in {worker_time} seconds') + +if __name__ == '__main__': + for i in range(5): + thread = threading.Thread(target=worker, + args=(f'computer_{i}',)) + thread.start() From adeb75f203fef9b7877a5cf95d5e39a657edd1c5 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Apr 2020 15:48:05 -0500 Subject: [PATCH 31/89] add a couple more threading examples --- chapter22_threading/worker_thread_subclass.py | 28 +++++++++++++++ chapter22_threading/writing_thread.py | 36 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 chapter22_threading/worker_thread_subclass.py create mode 100644 chapter22_threading/writing_thread.py diff --git a/chapter22_threading/worker_thread_subclass.py b/chapter22_threading/worker_thread_subclass.py new file mode 100644 index 0000000..2b0ffcb --- /dev/null +++ b/chapter22_threading/worker_thread_subclass.py @@ -0,0 +1,28 @@ +# worker_thread_subclass.py + +import random +import threading +import time + +class WorkerThread(threading.Thread): + + def __init__(self, name): + threading.Thread.__init__(self) + self.name = name + + def run(self): + """ + Run the thread + """ + worker(self.name) + +def worker(name: str) -> None: + print(f'Started worker {name}') + worker_time = random.choice(range(1, 5)) + time.sleep(worker_time) + print(f'{name} worker finished in {worker_time} seconds') + +if __name__ == '__main__': + for i in range(5): + thread = WorkerThread(name=f'computer_{i}') + thread.start() diff --git a/chapter22_threading/writing_thread.py b/chapter22_threading/writing_thread.py new file mode 100644 index 0000000..57f1ef7 --- /dev/null +++ b/chapter22_threading/writing_thread.py @@ -0,0 +1,36 @@ +# writing_thread.py + +import random +import time +from threading import Thread + + +class WritingThread(Thread): + + def __init__(self, filename: str, number_of_lines: int, + work_time: int = 1) -> None: + Thread.__init__(self) + self.filename = filename + self.number_of_lines = number_of_lines + self.work_time = work_time + + def run(self) -> None: + """ + Run the thread + """ + print(f'Writing {self.number_of_lines} lines of text to ' + f'{self.filename}') + with open(self.filename, 'w') as f: + for line in range(self.number_of_lines): + text = f'This is line {line+1}\n' + f.write(text) + time.sleep(self.work_time) + print(f'Finished writing {self.filename}') + +if __name__ == '__main__': + files = [f'test{x}.txt' for x in range(1, 6)] + for filename in files: + work_time = random.choice(range(1, 3)) + number_of_lines = random.choice(range(5, 20)) + thread = WritingThread(filename, number_of_lines, work_time) + thread.start() \ No newline at end of file From dd3ad8ebcb1f50443ceb5703b3f816b2128d8cca Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 14 Apr 2020 12:35:58 -0500 Subject: [PATCH 32/89] Move threading examples to new folder --- .../worker_thread_subclass.py | 0 {chapter22_threading => chapter23_threading}/worker_threads.py | 0 {chapter22_threading => chapter23_threading}/writing_thread.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {chapter22_threading => chapter23_threading}/worker_thread_subclass.py (100%) rename {chapter22_threading => chapter23_threading}/worker_threads.py (100%) rename {chapter22_threading => chapter23_threading}/writing_thread.py (100%) diff --git a/chapter22_threading/worker_thread_subclass.py b/chapter23_threading/worker_thread_subclass.py similarity index 100% rename from chapter22_threading/worker_thread_subclass.py rename to chapter23_threading/worker_thread_subclass.py diff --git a/chapter22_threading/worker_threads.py b/chapter23_threading/worker_threads.py similarity index 100% rename from chapter22_threading/worker_threads.py rename to chapter23_threading/worker_threads.py diff --git a/chapter22_threading/writing_thread.py b/chapter23_threading/writing_thread.py similarity index 100% rename from chapter22_threading/writing_thread.py rename to chapter23_threading/writing_thread.py From a19c957815d665ff0c35b691bba74048581329db Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 14 Apr 2020 12:36:07 -0500 Subject: [PATCH 33/89] add multiprocessing examples --- chapter24_multiprocessing/process_pool.py | 17 ++++++++++ .../worker_process_subclass.py | 33 +++++++++++++++++++ chapter24_multiprocessing/worker_processes.py | 21 ++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 chapter24_multiprocessing/process_pool.py create mode 100644 chapter24_multiprocessing/worker_process_subclass.py create mode 100644 chapter24_multiprocessing/worker_processes.py diff --git a/chapter24_multiprocessing/process_pool.py b/chapter24_multiprocessing/process_pool.py new file mode 100644 index 0000000..12a32df --- /dev/null +++ b/chapter24_multiprocessing/process_pool.py @@ -0,0 +1,17 @@ +import random +import time + +from multiprocessing import Pool + + +def worker(name: str) -> None: + print(f'Started worker {name}') + worker_time = random.choice(range(1, 5)) + time.sleep(worker_time) + print(f'{name} worker finished in {worker_time} seconds') + +if __name__ == '__main__': + process_names = [f'computer_{i}' for i in range(15)] + pool = Pool(processes=5) + pool.map(worker, process_names) + #pool.terminate() \ No newline at end of file diff --git a/chapter24_multiprocessing/worker_process_subclass.py b/chapter24_multiprocessing/worker_process_subclass.py new file mode 100644 index 0000000..f9ff58e --- /dev/null +++ b/chapter24_multiprocessing/worker_process_subclass.py @@ -0,0 +1,33 @@ +# worker_thread_subclass.py + +import random +import multiprocessing +import time + +class WorkerProcess(multiprocessing.Process): + + def __init__(self, name): + multiprocessing.Process.__init__(self) + self.name = name + + def run(self): + """ + Run the thread + """ + worker(self.name) + +def worker(name: str) -> None: + print(f'Started worker {name}') + worker_time = random.choice(range(1, 5)) + time.sleep(worker_time) + print(f'{name} worker finished in {worker_time} seconds') + +if __name__ == '__main__': + processes = [] + for i in range(5): + process = WorkerProcess(name=f'computer_{i}') + processes.append(process) + process.start() + + for process in processes: + process.join() diff --git a/chapter24_multiprocessing/worker_processes.py b/chapter24_multiprocessing/worker_processes.py new file mode 100644 index 0000000..4920645 --- /dev/null +++ b/chapter24_multiprocessing/worker_processes.py @@ -0,0 +1,21 @@ +import multiprocessing +import random +import time + + +def worker(name: str) -> None: + print(f'Started worker {name}') + worker_time = random.choice(range(1, 5)) + time.sleep(worker_time) + print(f'{name} worker finished in {worker_time} seconds') + +if __name__ == '__main__': + processes = [] + for i in range(5): + process = multiprocessing.Process(target=worker, + args=(f'computer_{i}',)) + processes.append(process) + process.start() + + for proc in processes: + proc.join() \ No newline at end of file From b35fdb3eba13a3a1ad5eefb91494555f1cf3b5aa Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 14 Apr 2020 12:36:27 -0500 Subject: [PATCH 34/89] ignore mypy output --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 110daaa..e2d226b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ py101_2nd_code.wpu .DS_Store -.ipynb_checkpoints \ No newline at end of file +.ipynb_checkpoints +chapter22_type_hints/.mypy_cache/ From 09b12c645ed61f3094b01170ae70cb623be35b70 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 14 Apr 2020 12:36:38 -0500 Subject: [PATCH 35/89] add type hinting chapter examples --- chapter22_type_hints/bad_type_hinting.py | 4 ++++ chapter22_type_hints/bad_type_hinting2.py | 4 ++++ chapter22_type_hints/good_type_hinting.py | 4 ++++ 3 files changed, 12 insertions(+) create mode 100644 chapter22_type_hints/bad_type_hinting.py create mode 100644 chapter22_type_hints/bad_type_hinting2.py create mode 100644 chapter22_type_hints/good_type_hinting.py diff --git a/chapter22_type_hints/bad_type_hinting.py b/chapter22_type_hints/bad_type_hinting.py new file mode 100644 index 0000000..917f127 --- /dev/null +++ b/chapter22_type_hints/bad_type_hinting.py @@ -0,0 +1,4 @@ +# bad_type_hinting.py + +def my_function(a: str, b: str) -> None: + return a.keys() + b.keys() diff --git a/chapter22_type_hints/bad_type_hinting2.py b/chapter22_type_hints/bad_type_hinting2.py new file mode 100644 index 0000000..76caf86 --- /dev/null +++ b/chapter22_type_hints/bad_type_hinting2.py @@ -0,0 +1,4 @@ +# bad_type_hinting2.py + +def my_function(a: str, b: str) -> str: + return a + b diff --git a/chapter22_type_hints/good_type_hinting.py b/chapter22_type_hints/good_type_hinting.py new file mode 100644 index 0000000..81066c7 --- /dev/null +++ b/chapter22_type_hints/good_type_hinting.py @@ -0,0 +1,4 @@ +# good_type_hinting.py + +def my_function(a: str, b: str) -> str: + return a + b From 0275db60a78a3f53d384c11274e05be7aaf82cd6 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 15 Apr 2020 13:18:33 -0500 Subject: [PATCH 36/89] sync notebook with book contents --- .../Chapter 11 - Conditional Statements.ipynb | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb b/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb index 63544db..44fd594 100644 --- a/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb +++ b/chapter11_conditionals/Chapter 11 - Conditional Statements.ipynb @@ -305,34 +305,34 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "You are a blonde\n" + "You buy American\n" ] } ], "source": [ "age = 21\n", - "hair = 'blonde'\n", + "car = 'Ford'\n", "if age >= 21:\n", - " if hair == 'brown':\n", - " print('You are a brunette')\n", - " elif hair == 'blonde':\n", - " print('You are a blonde')\n", + " if car in ['Honda', 'Toyota']:\n", + " print('You buy foreign cars')\n", + " elif car in ['Ford', 'Chevrolet']:\n", + " print('You buy American')\n", "else:\n", - " print('Not checking hair color')" + " print('You are too young!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "This code has multiple paths that it can take because it depends on two variables: `age` and `hair`. If the age is greater than a certain value, then it falls into that code block and will execute the nested `if` statement, which checks the `hair` color. If the `age` is less than an arbitrary amount then it will simply print out a message.\n", + "This code has multiple paths that it can take because it depends on two variables: `age` and `car`. If the age is greater than a certain value, then it falls into that code block and will execute the nested `if` statement, which checks the `car` type. If the `age` is less than an arbitrary amount then it will simply print out a message.\n", "\n", "Theoretically, you can nest conditionals any number of times. However, the more nesting you do, the more complicated it is to debug later. You should keep the nesting to only one or two levels deep in most cases.\n", "\n", @@ -353,70 +353,70 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "You are a blonde\n" + "You buy American\n" ] } ], "source": [ "age = 21\n", - "hair = 'blonde'\n", - "if age >= 21 and hair == 'brown':\n", - " print('You are a brunette')\n", - "elif age >= 21 and hair == 'blonde':\n", - " print('You are a blonde')\n", + "car = 'Ford'\n", + "if age >= 21 and car in ['Honda', 'Toyota']:\n", + " print('You buy foreign cars')\n", + "elif age >= 21 and car in ['Ford', 'Chevrolet']:\n", + " print('You buy American')\n", "else:\n", - " print('Not checking hair color')" + " print('You are too young!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "When you use `and`, both expressions must evaluate to `True` for the code underneath them to execute. So the first conditional checks to see if the age is greater than or equal to 21 AND the hair color is brown. Since it isn't both of those things, you drop down to the `elif` and check those conditions. This time both conditions are `True`, so it prints our your hair color.\n", + "When you use `and`, both expressions must evaluate to `True` for the code underneath them to execute. So the first conditional checks to see if the age is greater than or equal to 21 AND the car is in the list of Japanese cars. Since it isn't both of those things, you drop down to the `elif` and check those conditions. This time both conditions are `True`, so it prints your car preference.\n", "\n", "Let's see what happens if you change the `and` to an `or`:" ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "You are a brunette\n" + "You buy foreign cars\n" ] } ], "source": [ "age = 21\n", - "hair = 'blonde'\n", - "if age >= 21 or hair == 'brown':\n", - " print('You are a brunette')\n", - "elif age >= 21 and hair == 'blonde':\n", - " print('You are a blonde')\n", + "car = 'Ford'\n", + "if age >= 21 or car in ['Honda', 'Toyota']:\n", + " print('You buy foreign cars')\n", + "elif age >= 21 and car in ['Ford', 'Chevrolet']:\n", + " print('You buy American')\n", "else:\n", - " print('Not checking hair color')" + " print('You are too young!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Wait a minute! You just said your hair color was blonde, but this code is saying you're a brunette! What's going on here?\n", + "Wait a minute! You said your car was \"Ford\", but this code is saying you buy foreign cars! What's going on here?\n", "\n", "Well when you use a logical `or`, that means that the code in that code block will execute if either of the statements are `True`. \n", "\n", - "Let's break this down a bit. There are two expressions in `if age >= 21 or hair == 'brown'`. The first one is `age >= 21`. That evaluates to `True`. As soon as Python sees the `or` and that the first statement is `True`, it evaluates the whole thing as `True`. Either your age is greater than or equal to 21 **or** your hair is brown. Either way, it's true and that code gets executed.\n", + "Let's break this down a bit. There are two expressions in `if age >= 21 or car in ['Honda', 'Toyota']`. The first one is `age >= 21`. That evaluates to `True`. As soon as Python sees the `or` and that the first statement is `True`, it evaluates the whole thing as `True`. Either your age is greater than or equal to 21 **or** your car is Ford. Either way, it's true and that code gets executed.\n", "\n", "Using `not` is a bit different. It doesn't really fit with this example at all, so you'll have to write something else. \n", "\n", From ed304b179b4e82544c3c64e118408ff79065a2d0 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 27 Apr 2020 10:02:03 -0500 Subject: [PATCH 37/89] Make threading subclass more interesting --- chapter23_threading/worker_thread_subclass.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/chapter23_threading/worker_thread_subclass.py b/chapter23_threading/worker_thread_subclass.py index 2b0ffcb..0b83bf9 100644 --- a/chapter23_threading/worker_thread_subclass.py +++ b/chapter23_threading/worker_thread_subclass.py @@ -9,18 +9,20 @@ class WorkerThread(threading.Thread): def __init__(self, name): threading.Thread.__init__(self) self.name = name + self.id = id(self) def run(self): """ Run the thread """ - worker(self.name) + worker(self.name, self.id) -def worker(name: str) -> None: - print(f'Started worker {name}') +def worker(name: str, instance_id: int) -> None: + print(f'Started worker {name} - {instance_id}') worker_time = random.choice(range(1, 5)) time.sleep(worker_time) - print(f'{name} worker finished in {worker_time} seconds') + print(f'{name} - {instance_id} worker finished in ' + f'{worker_time} seconds') if __name__ == '__main__': for i in range(5): From 10434aed14a1040aef19db233c46921e162f5260 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 27 Apr 2020 10:02:39 -0500 Subject: [PATCH 38/89] ignore pyc files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index e2d226b..c560be3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ py101_2nd_code.wpu .ipynb_checkpoints chapter22_type_hints/.mypy_cache/ + +*.pyc From 852e9fba003f148e3dc18975976fd8b47f549df3 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 27 Apr 2020 10:02:50 -0500 Subject: [PATCH 39/89] add debug code example --- chapter26_debugging/debug_code.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 chapter26_debugging/debug_code.py diff --git a/chapter26_debugging/debug_code.py b/chapter26_debugging/debug_code.py new file mode 100644 index 0000000..b963634 --- /dev/null +++ b/chapter26_debugging/debug_code.py @@ -0,0 +1,13 @@ +# debug_code.py + +def log(number): + print(f'Processing {number}') + print(f'Adding 2 to number: {number + 2}') + + +def looper(number): + for i in range(number): + log(i) + +if __name__ == '__main__': + looper(5) \ No newline at end of file From 81b759876819631509364c5c02ad5377c01806ea Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 29 Apr 2020 10:02:47 -0500 Subject: [PATCH 40/89] Add two more debugging examples --- chapter26_debugging/debug_code_with_breakpoint.py | 14 ++++++++++++++ chapter26_debugging/debug_code_with_settrace.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 chapter26_debugging/debug_code_with_breakpoint.py create mode 100644 chapter26_debugging/debug_code_with_settrace.py diff --git a/chapter26_debugging/debug_code_with_breakpoint.py b/chapter26_debugging/debug_code_with_breakpoint.py new file mode 100644 index 0000000..f310fc6 --- /dev/null +++ b/chapter26_debugging/debug_code_with_breakpoint.py @@ -0,0 +1,14 @@ +# debug_code_with_breakpoint.py + +def log(number): + print(f'Processing {number}') + print(f'Adding 2 to number: {number + 2}') + + +def looper(number): + for i in range(number): + breakpoint() + log(i) + +if __name__ == '__main__': + looper(5) \ No newline at end of file diff --git a/chapter26_debugging/debug_code_with_settrace.py b/chapter26_debugging/debug_code_with_settrace.py new file mode 100644 index 0000000..3de0a72 --- /dev/null +++ b/chapter26_debugging/debug_code_with_settrace.py @@ -0,0 +1,14 @@ +# debug_code_with_settrace.py + +def log(number): + print(f'Processing {number}') + print(f'Adding 2 to number: {number + 2}') + + +def looper(number): + for i in range(number): + import pdb; pdb.set_trace() + log(i) + +if __name__ == '__main__': + looper(5) \ No newline at end of file From d93703941e50689573cf1b7731362e0b750af2c6 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 12 May 2020 16:06:16 -0500 Subject: [PATCH 41/89] add decorator examples --- .../amount_with_properties.py | 24 ++++++++++++ .../amount_with_property_decorator.py | 25 +++++++++++++ .../amount_without_properties.py | 22 +++++++++++ chapter27_decorators/decorator_class.py | 24 ++++++++++++ chapter27_decorators/decorator_syntax.py | 16 ++++++++ .../decorator_syntax_with_arguments.py | 21 +++++++++++ chapter27_decorators/first_decorator.py | 16 ++++++++ .../first_decorator_updated.py | 18 +++++++++ chapter27_decorators/logging_decorator.py | 37 +++++++++++++++++++ .../stacked_decorator_tracing.py | 18 +++++++++ chapter27_decorators/stacked_decorators.py | 16 ++++++++ chapter27_decorators/treble.log | 3 ++ 12 files changed, 240 insertions(+) create mode 100644 chapter27_decorators/amount_with_properties.py create mode 100644 chapter27_decorators/amount_with_property_decorator.py create mode 100644 chapter27_decorators/amount_without_properties.py create mode 100644 chapter27_decorators/decorator_class.py create mode 100644 chapter27_decorators/decorator_syntax.py create mode 100644 chapter27_decorators/decorator_syntax_with_arguments.py create mode 100644 chapter27_decorators/first_decorator.py create mode 100644 chapter27_decorators/first_decorator_updated.py create mode 100644 chapter27_decorators/logging_decorator.py create mode 100644 chapter27_decorators/stacked_decorator_tracing.py create mode 100644 chapter27_decorators/stacked_decorators.py create mode 100644 chapter27_decorators/treble.log diff --git a/chapter27_decorators/amount_with_properties.py b/chapter27_decorators/amount_with_properties.py new file mode 100644 index 0000000..6fce4ee --- /dev/null +++ b/chapter27_decorators/amount_with_properties.py @@ -0,0 +1,24 @@ +class Amount: + + def __init__(self): + # private attribute + self._amount = None + + def get_amount(self): + return self._amount + + def set_amount(self, value): + if isinstance(value, int) or isinstance(value, float): + self._amount = value + else: + print(f'Value must be an int or float') + + amount = property(get_amount, set_amount) + +if __name__ == '__main__': + amt = Amount() + print(f'The current amount is {amt.amount}') + amt.amount = 'the' + print(f'The current amount is {amt.amount}') + amt.amount = 5.5 + print(f'The current amount is {amt.amount}') diff --git a/chapter27_decorators/amount_with_property_decorator.py b/chapter27_decorators/amount_with_property_decorator.py new file mode 100644 index 0000000..fa6074d --- /dev/null +++ b/chapter27_decorators/amount_with_property_decorator.py @@ -0,0 +1,25 @@ +class Amount: + + def __init__(self): + # private attribute + self._amount = None + + @property + def amount(self): + return self._amount + + @amount.setter + def amount(self, value): + if isinstance(value, int) or isinstance(value, float): + self._amount = value + else: + print(f'Value must be an int or float') + + +if __name__ == '__main__': + amt = Amount() + print(f'The current amount is {amt.amount}') + amt.amount = 'the' + print(f'The current amount is {amt.amount}') + amt.amount = 5.5 + print(f'The current amount is {amt.amount}') diff --git a/chapter27_decorators/amount_without_properties.py b/chapter27_decorators/amount_without_properties.py new file mode 100644 index 0000000..a384f94 --- /dev/null +++ b/chapter27_decorators/amount_without_properties.py @@ -0,0 +1,22 @@ +class Amount: + + def __init__(self): + # private attribute + self._amount = None + + def get_amount(self): + return self._amount + + def set_amount(self, value): + if isinstance(value, int) or isinstance(value, float): + self._amount = value + else: + print(f'Value must be an int or float') + +if __name__ == '__main__': + amt = Amount() + print(f'The current amount is {amt.get_amount()}') + amt.set_amount('the') + print(f'The current amount is {amt.get_amount()}') + amt.set_amount(5.5) + print(f'The current amount is {amt.get_amount()}') diff --git a/chapter27_decorators/decorator_class.py b/chapter27_decorators/decorator_class.py new file mode 100644 index 0000000..fdbdb6a --- /dev/null +++ b/chapter27_decorators/decorator_class.py @@ -0,0 +1,24 @@ +# decorator_class.py + +class info: + + def __init__(self, arg1, arg2): + print('in __init__') + self.arg1 = arg1 + self.arg2 = arg2 + print('Decorator args: {}, {}'.format(arg1, arg2)) + + def __call__(self, function): + print('in __call__') + + def wrapper(*args, **kwargs): + print('in wrapper()') + return function(*args, **kwargs) + + return wrapper + +@info(3, 'Python') +def treble(number): + return number * 3 + +print(treble(5)) \ No newline at end of file diff --git a/chapter27_decorators/decorator_syntax.py b/chapter27_decorators/decorator_syntax.py new file mode 100644 index 0000000..1c5dd13 --- /dev/null +++ b/chapter27_decorators/decorator_syntax.py @@ -0,0 +1,16 @@ +# decorator_syntax.py + +def func_info(func): + def wrapper(*args): + print('Function name: ' + func.__name__) + print('Function docstring: ' + str(func.__doc__)) + result = func(*args) + return result + return wrapper + +@func_info +def treble(a: int) -> int: + """A function that triples its input""" + return a * 3 + +print(treble(5)) diff --git a/chapter27_decorators/decorator_syntax_with_arguments.py b/chapter27_decorators/decorator_syntax_with_arguments.py new file mode 100644 index 0000000..ee861f2 --- /dev/null +++ b/chapter27_decorators/decorator_syntax_with_arguments.py @@ -0,0 +1,21 @@ +# decorator_syntax_with_arguments.py + +def func_info(arg1, arg2): + print('Decorator arg1 = ' + str(arg1)) + print('Decorator arg2 = ' + str(arg2)) + + def the_real_decorator(function): + + def wrapper(*args, **kwargs): + print('Function {} args: {} kwargs: {}'.format( + function.__name__, str(args), str(kwargs))) + return function(*args, **kwargs) + return wrapper + + return the_real_decorator + +@func_info(3, 'Python') +def treble(number): + return number * 3 + +print(treble(5)) diff --git a/chapter27_decorators/first_decorator.py b/chapter27_decorators/first_decorator.py new file mode 100644 index 0000000..57c6293 --- /dev/null +++ b/chapter27_decorators/first_decorator.py @@ -0,0 +1,16 @@ + + +def func_info(func): + def wrapper(): + print('Function name: ' + func.__name__) + print('Function docstring: ' + str(func.__doc__)) + result = func() + return result + return wrapper + + +def treble(): + return 3 * 3 + +decorator = func_info(treble) +print(decorator()) diff --git a/chapter27_decorators/first_decorator_updated.py b/chapter27_decorators/first_decorator_updated.py new file mode 100644 index 0000000..1d61a9c --- /dev/null +++ b/chapter27_decorators/first_decorator_updated.py @@ -0,0 +1,18 @@ +# first_decorator_updated.py + +def func_info(func): + def wrapper(*args): + print('Function name: ' + func.__name__) + print('Function docstring: ' + str(func.__doc__)) + result = func(*args) + return result + return wrapper + + +def treble(a: int) -> int: + """A function that triples its input""" + return a * 3 + + +my_decorator = func_info(treble) +print(my_decorator(5)) diff --git a/chapter27_decorators/logging_decorator.py b/chapter27_decorators/logging_decorator.py new file mode 100644 index 0000000..ca71d71 --- /dev/null +++ b/chapter27_decorators/logging_decorator.py @@ -0,0 +1,37 @@ +import logging + +def logging_formatter(logger, name): + """ + Format logger and add file handler + """ + fh = logging.FileHandler(f"{name}.log") + fmt = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' + formatter = logging.Formatter(fmt) + fh.setFormatter(formatter) + logger.addHandler(fh) + +def log(func): + """ + Log what function is called + """ + def wrapper(*args, **kwargs): + name = func.__name__ + logger = logging.getLogger(name) + logger.setLevel(logging.INFO) + + # add logging formatter and file handler + logging_formatter(logger, name) + + logger.info(f"Running function: {name}") + logger.info(f"{args=}, {kwargs=}") + result = func(*args, **kwargs) + logger.info("Result: %s" % result) + return func + return wrapper + +@log +def treble(a): + return a * 3 + +if __name__ == '__main__': + treble(5) diff --git a/chapter27_decorators/stacked_decorator_tracing.py b/chapter27_decorators/stacked_decorator_tracing.py new file mode 100644 index 0000000..07b25a9 --- /dev/null +++ b/chapter27_decorators/stacked_decorator_tracing.py @@ -0,0 +1,18 @@ +def bold(func): + print(f'You are wrapping {func.__name__} in bold') + def bold_wrapper(): + return "" + func() + "" + return bold_wrapper + +def italic(func): + print(f'You are wrapping {func.__name__} in italic') + def italic_wrapper(): + return "" + func() + "" + return italic_wrapper + +@bold +@italic +def formatted_text(): + return 'Python rocks!' + +print(formatted_text()) \ No newline at end of file diff --git a/chapter27_decorators/stacked_decorators.py b/chapter27_decorators/stacked_decorators.py new file mode 100644 index 0000000..9ebdf05 --- /dev/null +++ b/chapter27_decorators/stacked_decorators.py @@ -0,0 +1,16 @@ +def bold(func): + def wrapper(): + return "" + func() + "" + return wrapper + +def italic(func): + def wrapper(): + return "" + func() + "" + return wrapper + +@bold +@italic +def formatted_text(): + return 'Python rocks!' + +print(formatted_text()) \ No newline at end of file diff --git a/chapter27_decorators/treble.log b/chapter27_decorators/treble.log new file mode 100644 index 0000000..ccf0f36 --- /dev/null +++ b/chapter27_decorators/treble.log @@ -0,0 +1,3 @@ +2020-05-04 16:22:02,781 - treble - INFO - Running function: treble +2020-05-04 16:22:02,781 - treble - INFO - args=(5,), kwargs={} +2020-05-04 16:22:02,781 - treble - INFO - Result: 15 From ab30de19deb4de3e9bbc296bb754d060e642ce2a Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 22 May 2020 13:51:08 -0500 Subject: [PATCH 42/89] sync up decorator example --- chapter27_decorators/decorator_class.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter27_decorators/decorator_class.py b/chapter27_decorators/decorator_class.py index fdbdb6a..1ab3964 100644 --- a/chapter27_decorators/decorator_class.py +++ b/chapter27_decorators/decorator_class.py @@ -3,7 +3,7 @@ class info: def __init__(self, arg1, arg2): - print('in __init__') + print('running __init__') self.arg1 = arg1 self.arg2 = arg2 print('Decorator args: {}, {}'.format(arg1, arg2)) From ef3796f2c9610ade6f4f42bc6acecfa2219e4ebc Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 22 May 2020 13:51:17 -0500 Subject: [PATCH 43/89] add profiling examples --- chapter29_profiling/callee_stats.py | 12 ++++++++++++ chapter29_profiling/filtered_stats.py | 11 +++++++++++ chapter29_profiling/formatted_output.py | 11 +++++++++++ chapter29_profiling/profile_output.txt | Bin 0 -> 1021 bytes chapter29_profiling/profile_test.py | 24 ++++++++++++++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 chapter29_profiling/callee_stats.py create mode 100644 chapter29_profiling/filtered_stats.py create mode 100644 chapter29_profiling/formatted_output.py create mode 100644 chapter29_profiling/profile_output.txt create mode 100644 chapter29_profiling/profile_test.py diff --git a/chapter29_profiling/callee_stats.py b/chapter29_profiling/callee_stats.py new file mode 100644 index 0000000..a1a631c --- /dev/null +++ b/chapter29_profiling/callee_stats.py @@ -0,0 +1,12 @@ +import pstats + +def formatted_stats_output(path): + p = pstats.Stats(path) + stripped_dirs = p.strip_dirs() + sorted_stats = stripped_dirs.sort_stats('filename') + sorted_stats.print_callers('\(main') + sorted_stats.print_callees('\(main') + +if __name__ =='__main__': + path = 'profile_output.txt' + formatted_stats_output(path) \ No newline at end of file diff --git a/chapter29_profiling/filtered_stats.py b/chapter29_profiling/filtered_stats.py new file mode 100644 index 0000000..086c800 --- /dev/null +++ b/chapter29_profiling/filtered_stats.py @@ -0,0 +1,11 @@ +import pstats + +def formatted_stats_output(path): + p = pstats.Stats(path) + stripped_dirs = p.strip_dirs() + sorted_stats = stripped_dirs.sort_stats('filename') + sorted_stats.print_stats('\(main') + +if __name__ =='__main__': + path = 'profile_output.txt' + formatted_stats_output(path) \ No newline at end of file diff --git a/chapter29_profiling/formatted_output.py b/chapter29_profiling/formatted_output.py new file mode 100644 index 0000000..d35ca8a --- /dev/null +++ b/chapter29_profiling/formatted_output.py @@ -0,0 +1,11 @@ +import pstats + +def formatted_stats_output(path): + p = pstats.Stats(path) + stripped_dirs = p.strip_dirs() + sorted_stats = stripped_dirs.sort_stats('filename') + sorted_stats.print_stats() + +if __name__ =='__main__': + path = 'profile_output.txt' + formatted_stats_output(path) \ No newline at end of file diff --git a/chapter29_profiling/profile_output.txt b/chapter29_profiling/profile_output.txt new file mode 100644 index 0000000000000000000000000000000000000000..3b7e13e6ca674fcdc0eed9cff1fe80ccb5d84a4e GIT binary patch literal 1021 zcmeyZ$^474?j-{d{F1jxD$UF((ap?L$W1ND$WKuK^E2~`^-?QRlkGHFUoryK6|n$` zbfpEA)^A_#wM$pJkX^HnnZ=>nK$E!$EYAcoOaZrH1x1;8B_Pv41{JY^Ok0-S7C2K^ z#vab72D*#CpeR2rGbc5^B(=Ciub}cJD^Tez*22=v-Pzl$f5X$pUsc#QEFfVoD#lG1{lY7%(loAT3c7^vK?y}gqEuH-~%`)XLA3IdhhV#!U+%mexm6lIW5z|a74KG*^tkQz`_pt$Jdyy&;g z`ySb)H-F2MapQhqUtJ^&QiB|^7;4~V@`KD2KsR%q;J&CN!!$TS_2GAEM{V; zftx7;GE)@YOo>m)>f-xe+NHZ+`*>PO2S>!!b0$EfE7* lB93m!n^_ Date: Tue, 26 May 2020 20:19:41 -0500 Subject: [PATCH 44/89] add code examples for testing chapter --- chapter30_testing/add_doctest.py | 10 ++++++++++ chapter30_testing/add_doctest_working.py | 10 ++++++++++ chapter30_testing/add_test_in_code.py | 14 +++++++++++++ chapter30_testing/doctest_external.py | 4 ++++ .../fizzbuzz_buzz_test/fizzbuzz.py | 3 +++ .../fizzbuzz_buzz_test/test_fizzbuzz.py | 13 ++++++++++++ .../fizzbuzz_buzz_test_passing/fizzbuzz.py | 5 +++++ .../test_fizzbuzz.py | 13 ++++++++++++ .../fizzbuzz_final_test/fizzbuzz.py | 7 +++++++ .../fizzbuzz_final_test/test_fizzbuzz.py | 20 +++++++++++++++++++ .../fizzbuzz_final_test_passing/fizzbuzz.py | 9 +++++++++ .../test_fizzbuzz.py | 20 +++++++++++++++++++ .../fizzbuzz_fizz_test/fizzbuzz.py | 0 .../fizzbuzz_fizz_test/test_fizzbuzz.py | 10 ++++++++++ .../fizzbuzz_fizz_test_passing/fizzbuzz.py | 3 +++ .../test_fizzbuzz.py | 10 ++++++++++ .../fizzbuzz_fizzbuzz_test/fizzbuzz.py | 5 +++++ .../fizzbuzz_fizzbuzz_test/test_fizzbuzz.py | 16 +++++++++++++++ .../fizzbuzz.py | 7 +++++++ .../test_fizzbuzz.py | 16 +++++++++++++++ chapter30_testing/test.txt | 7 +++++++ 21 files changed, 202 insertions(+) create mode 100644 chapter30_testing/add_doctest.py create mode 100644 chapter30_testing/add_doctest_working.py create mode 100644 chapter30_testing/add_test_in_code.py create mode 100644 chapter30_testing/doctest_external.py create mode 100644 chapter30_testing/fizzbuzz_buzz_test/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_buzz_test/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_buzz_test_passing/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_buzz_test_passing/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_final_test/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_final_test/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_final_test_passing/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_final_test_passing/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizz_test/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizz_test_passing/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizz_test_passing/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizzbuzz_test/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizzbuzz_test/test_fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizzbuzz_test_passing/fizzbuzz.py create mode 100644 chapter30_testing/fizzbuzz_fizzbuzz_test_passing/test_fizzbuzz.py create mode 100644 chapter30_testing/test.txt diff --git a/chapter30_testing/add_doctest.py b/chapter30_testing/add_doctest.py new file mode 100644 index 0000000..5e0c3cd --- /dev/null +++ b/chapter30_testing/add_doctest.py @@ -0,0 +1,10 @@ +# add_doctest.py + +def add(a: int, b: int) -> int: + """ + >>> add(1, 2) + 3 + >>> add(4, 5) + 9 + """ + a + b \ No newline at end of file diff --git a/chapter30_testing/add_doctest_working.py b/chapter30_testing/add_doctest_working.py new file mode 100644 index 0000000..b8c161b --- /dev/null +++ b/chapter30_testing/add_doctest_working.py @@ -0,0 +1,10 @@ +# add_doctest.py + +def add(a: int, b: int) -> int: + """ + >>> add(1, 2) + 3 + >>> add(4, 5) + 9 + """ + return a + b \ No newline at end of file diff --git a/chapter30_testing/add_test_in_code.py b/chapter30_testing/add_test_in_code.py new file mode 100644 index 0000000..3918d37 --- /dev/null +++ b/chapter30_testing/add_test_in_code.py @@ -0,0 +1,14 @@ +# add_test_in_code.py + +def add(a: int, b: int) -> int: + """ + >>> add(1, 2) + 3 + >>> add(4, 5) + 9 + """ + return a + b + +if __name__ == '__main__': + import doctest + doctest.testmod(verbose=True) \ No newline at end of file diff --git a/chapter30_testing/doctest_external.py b/chapter30_testing/doctest_external.py new file mode 100644 index 0000000..e4861c1 --- /dev/null +++ b/chapter30_testing/doctest_external.py @@ -0,0 +1,4 @@ +# doctest_external.py + +def add(a: int, b: int) -> int: + return a + b \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_buzz_test/fizzbuzz.py b/chapter30_testing/fizzbuzz_buzz_test/fizzbuzz.py new file mode 100644 index 0000000..5d4c54a --- /dev/null +++ b/chapter30_testing/fizzbuzz_buzz_test/fizzbuzz.py @@ -0,0 +1,3 @@ +def process(number): + if number % 3 == 0: + return 'Fizz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_buzz_test/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_buzz_test/test_fizzbuzz.py new file mode 100644 index 0000000..93d0e2a --- /dev/null +++ b/chapter30_testing/fizzbuzz_buzz_test/test_fizzbuzz.py @@ -0,0 +1,13 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_buzz_test_passing/fizzbuzz.py b/chapter30_testing/fizzbuzz_buzz_test_passing/fizzbuzz.py new file mode 100644 index 0000000..026ca50 --- /dev/null +++ b/chapter30_testing/fizzbuzz_buzz_test_passing/fizzbuzz.py @@ -0,0 +1,5 @@ +def process(number): + if number % 3 == 0: + return 'Fizz' + elif number % 5 == 0: + return 'Buzz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_buzz_test_passing/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_buzz_test_passing/test_fizzbuzz.py new file mode 100644 index 0000000..93d0e2a --- /dev/null +++ b/chapter30_testing/fizzbuzz_buzz_test_passing/test_fizzbuzz.py @@ -0,0 +1,13 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_final_test/fizzbuzz.py b/chapter30_testing/fizzbuzz_final_test/fizzbuzz.py new file mode 100644 index 0000000..7510daa --- /dev/null +++ b/chapter30_testing/fizzbuzz_final_test/fizzbuzz.py @@ -0,0 +1,7 @@ +def process(number): + if number % 3 == 0 and number % 5 == 0: + return 'FizzBuzz' + elif number % 3 == 0: + return 'Fizz' + elif number % 5 == 0: + return 'Buzz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_final_test/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_final_test/test_fizzbuzz.py new file mode 100644 index 0000000..1326335 --- /dev/null +++ b/chapter30_testing/fizzbuzz_final_test/test_fizzbuzz.py @@ -0,0 +1,20 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + + def test_fizzbuzz(self): + self.assertEqual(fizzbuzz.process(15), 'FizzBuzz') + + def test_regular_numbers(self): + self.assertEqual(fizzbuzz.process(2), 2) + self.assertEqual(fizzbuzz.process(98), 98) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_final_test_passing/fizzbuzz.py b/chapter30_testing/fizzbuzz_final_test_passing/fizzbuzz.py new file mode 100644 index 0000000..6407376 --- /dev/null +++ b/chapter30_testing/fizzbuzz_final_test_passing/fizzbuzz.py @@ -0,0 +1,9 @@ +def process(number): + if number % 3 == 0 and number % 5 == 0: + return 'FizzBuzz' + elif number % 3 == 0: + return 'Fizz' + elif number % 5 == 0: + return 'Buzz' + else: + return number \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_final_test_passing/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_final_test_passing/test_fizzbuzz.py new file mode 100644 index 0000000..1326335 --- /dev/null +++ b/chapter30_testing/fizzbuzz_final_test_passing/test_fizzbuzz.py @@ -0,0 +1,20 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + + def test_fizzbuzz(self): + self.assertEqual(fizzbuzz.process(15), 'FizzBuzz') + + def test_regular_numbers(self): + self.assertEqual(fizzbuzz.process(2), 2) + self.assertEqual(fizzbuzz.process(98), 98) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py b/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py new file mode 100644 index 0000000..e69de29 diff --git a/chapter30_testing/fizzbuzz_fizz_test/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_fizz_test/test_fizzbuzz.py new file mode 100644 index 0000000..344ed73 --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizz_test/test_fizzbuzz.py @@ -0,0 +1,10 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizz_test_passing/fizzbuzz.py b/chapter30_testing/fizzbuzz_fizz_test_passing/fizzbuzz.py new file mode 100644 index 0000000..5d4c54a --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizz_test_passing/fizzbuzz.py @@ -0,0 +1,3 @@ +def process(number): + if number % 3 == 0: + return 'Fizz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizz_test_passing/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_fizz_test_passing/test_fizzbuzz.py new file mode 100644 index 0000000..344ed73 --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizz_test_passing/test_fizzbuzz.py @@ -0,0 +1,10 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizzbuzz_test/fizzbuzz.py b/chapter30_testing/fizzbuzz_fizzbuzz_test/fizzbuzz.py new file mode 100644 index 0000000..026ca50 --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizzbuzz_test/fizzbuzz.py @@ -0,0 +1,5 @@ +def process(number): + if number % 3 == 0: + return 'Fizz' + elif number % 5 == 0: + return 'Buzz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizzbuzz_test/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_fizzbuzz_test/test_fizzbuzz.py new file mode 100644 index 0000000..d2b08ed --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizzbuzz_test/test_fizzbuzz.py @@ -0,0 +1,16 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + + def test_fizzbuzz(self): + self.assertEqual(fizzbuzz.process(15), 'FizzBuzz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/fizzbuzz.py b/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/fizzbuzz.py new file mode 100644 index 0000000..7510daa --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/fizzbuzz.py @@ -0,0 +1,7 @@ +def process(number): + if number % 3 == 0 and number % 5 == 0: + return 'FizzBuzz' + elif number % 3 == 0: + return 'Fizz' + elif number % 5 == 0: + return 'Buzz' \ No newline at end of file diff --git a/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/test_fizzbuzz.py b/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/test_fizzbuzz.py new file mode 100644 index 0000000..d2b08ed --- /dev/null +++ b/chapter30_testing/fizzbuzz_fizzbuzz_test_passing/test_fizzbuzz.py @@ -0,0 +1,16 @@ +import fizzbuzz +import unittest + +class TestFizzBuzz(unittest.TestCase): + + def test_multiple_of_three(self): + self.assertEqual(fizzbuzz.process(6), 'Fizz') + + def test_multiple_of_five(self): + self.assertEqual(fizzbuzz.process(20), 'Buzz') + + def test_fizzbuzz(self): + self.assertEqual(fizzbuzz.process(15), 'FizzBuzz') + +if __name__ == '__main__': + unittest.main() \ No newline at end of file diff --git a/chapter30_testing/test.txt b/chapter30_testing/test.txt new file mode 100644 index 0000000..5ae2e6b --- /dev/null +++ b/chapter30_testing/test.txt @@ -0,0 +1,7 @@ +The following are tests for doctest_external + +>>> from doctest_external import add +>>> add(1, 2) +3 +>>> add(4, 5) +9 \ No newline at end of file From dc7467d259117d10b92ece44f1bd6a23c89df2fb Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 18 Jun 2020 14:06:01 -0500 Subject: [PATCH 45/89] add new test file to chapter 30 --- chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py | 1 + 1 file changed, 1 insertion(+) diff --git a/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py b/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py index e69de29..8b13789 100644 --- a/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py +++ b/chapter30_testing/fizzbuzz_fizz_test/fizzbuzz.py @@ -0,0 +1 @@ + From fcc19e6361aacb1b8121541c7ae1dee9eda89590 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 18 Jun 2020 14:06:10 -0500 Subject: [PATCH 46/89] add notebook to chapter 31 --- chapter31_jupyter/Hello World.ipynb | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 chapter31_jupyter/Hello World.ipynb diff --git a/chapter31_jupyter/Hello World.ipynb b/chapter31_jupyter/Hello World.ipynb new file mode 100644 index 0000000..9309eed --- /dev/null +++ b/chapter31_jupyter/Hello World.ipynb @@ -0,0 +1,45 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is an example of printing in Python: `print('Hello')`\n", + "\n", + "Code block:\n", + "\n", + "```python\n", + "print('hello world')\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 3441087c9fd679cedb57cf1861e3da4fa88459fe Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 18 Jun 2020 14:06:20 -0500 Subject: [PATCH 47/89] add examples for chapter 32 --- chapter32_argparse/file_parser.py | 20 ++++++++ chapter32_argparse/file_parser_aliases.py | 23 +++++++++ chapter32_argparse/file_parser_aliases2.py | 23 +++++++++ chapter32_argparse/file_parser_exclusive.py | 24 +++++++++ chapter32_argparse/file_parser_no_help.py | 23 +++++++++ .../file_parser_with_description.py | 22 +++++++++ chapter32_argparse/pysearch.py | 49 +++++++++++++++++++ chapter32_argparse/sys_args.py | 10 ++++ 8 files changed, 194 insertions(+) create mode 100644 chapter32_argparse/file_parser.py create mode 100644 chapter32_argparse/file_parser_aliases.py create mode 100644 chapter32_argparse/file_parser_aliases2.py create mode 100644 chapter32_argparse/file_parser_exclusive.py create mode 100644 chapter32_argparse/file_parser_no_help.py create mode 100644 chapter32_argparse/file_parser_with_description.py create mode 100644 chapter32_argparse/pysearch.py create mode 100644 chapter32_argparse/sys_args.py diff --git a/chapter32_argparse/file_parser.py b/chapter32_argparse/file_parser.py new file mode 100644 index 0000000..5dc6f85 --- /dev/null +++ b/chapter32_argparse/file_parser.py @@ -0,0 +1,20 @@ +# file_parser.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser') + parser.add_argument('--infile', help='Input file') + parser.add_argument('--out', help='Output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() diff --git a/chapter32_argparse/file_parser_aliases.py b/chapter32_argparse/file_parser_aliases.py new file mode 100644 index 0000000..97e7fa7 --- /dev/null +++ b/chapter32_argparse/file_parser_aliases.py @@ -0,0 +1,23 @@ +# file_parser_aliases.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser', + description='PyParse - The File Processor', + epilog='Thank you for choosing PyParse!', + add_help=False) + parser.add_argument('-i', '--infile', help='Input file for conversion') + parser.add_argument('-o', '--out', help='Converted output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/file_parser_aliases2.py b/chapter32_argparse/file_parser_aliases2.py new file mode 100644 index 0000000..43b80a6 --- /dev/null +++ b/chapter32_argparse/file_parser_aliases2.py @@ -0,0 +1,23 @@ +# file_parser_aliases2.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser', + description='PyParse - The File Processor', + epilog='Thank you for choosing PyParse!', + add_help=False) + parser.add_argument('-i', '--infile', help='Input file for conversion') + parser.add_argument('-o', '--out', help='Converted output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/file_parser_exclusive.py b/chapter32_argparse/file_parser_exclusive.py new file mode 100644 index 0000000..4f03b89 --- /dev/null +++ b/chapter32_argparse/file_parser_exclusive.py @@ -0,0 +1,24 @@ +# file_parser_exclusive.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser', + description='PyParse - The File Processor', + epilog='Thank you for choosing PyParse!', + add_help=False) + group = parser.add_mutually_exclusive_group() + group.add_argument('-i', '--infile', help='Input file for conversion') + group.add_argument('-o', '--out', help='Converted output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/file_parser_no_help.py b/chapter32_argparse/file_parser_no_help.py new file mode 100644 index 0000000..9c89971 --- /dev/null +++ b/chapter32_argparse/file_parser_no_help.py @@ -0,0 +1,23 @@ +# file_parser_no_help.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser', + description='PyParse - The File Processor', + epilog='Thank you for choosing PyParse!', + add_help=False) + parser.add_argument('--infile', help='Input file for conversion') + parser.add_argument('--out', help='Converted output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/file_parser_with_description.py b/chapter32_argparse/file_parser_with_description.py new file mode 100644 index 0000000..f0c1b81 --- /dev/null +++ b/chapter32_argparse/file_parser_with_description.py @@ -0,0 +1,22 @@ +# file_parser_with_description.py + +import argparse + +def file_parser(input_file, output_file = ''): + print(f'Processing {input_file}') + print('Finished processing') + if output_file: + print(f'Creating {output_file}') + +def main(): + parser = argparse.ArgumentParser('File parser', + description='PyParse - The File Processor', + epilog='Thank you for choosing PyParse!') + parser.add_argument('--infile', help='Input file for conversion') + parser.add_argument('--out', help='Converted output file') + args = parser.parse_args() + if args.infile: + file_parser(args.infile, args.out) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/pysearch.py b/chapter32_argparse/pysearch.py new file mode 100644 index 0000000..9a2e0cc --- /dev/null +++ b/chapter32_argparse/pysearch.py @@ -0,0 +1,49 @@ +# pysearch.py + +import argparse +import pathlib + + +def search_folder(path, extension, file_size=None): + """ + Search folder for files + """ + folder = pathlib.Path(path) + files = list(folder.rglob(f'*.{extension}')) + + if not files: + print(f'No files found with {extension=}') + return + + if file_size is not None: + files = [f for f in files + if f.stat().st_size > file_size] + + print(f'{len(files)} *.{extension} files found:') + for file_path in files: + print(file_path) + + +def main(): + parser = argparse.ArgumentParser( + 'PySearch', + description='PySearch - The Python Powered File Searcher') + parser.add_argument('-p', '--path', + help='The path to search for files', + required=True, + dest='path') + parser.add_argument('-e', '--ext', + help='The extension to search for', + required=True, + dest='extension') + parser.add_argument('-s', '--size', + help='The file size to filter on in bytes', + type=int, + dest='size', + default=None) + + args = parser.parse_args() + search_folder(args.path, args.extension, args.size) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/chapter32_argparse/sys_args.py b/chapter32_argparse/sys_args.py new file mode 100644 index 0000000..2d1e1a2 --- /dev/null +++ b/chapter32_argparse/sys_args.py @@ -0,0 +1,10 @@ +# sys_args.py + +import sys + +def main(): + print('You passed the following arguments:') + print(sys.argv) + +if __name__ == '__main__': + main() \ No newline at end of file From 9dddae075bff66fb72b616a18ff34940d61abc23 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 18 Jun 2020 14:06:28 -0500 Subject: [PATCH 48/89] add examples for chapter 33 --- chapter33_xml/appts.xml | 21 +++++++++++++++++++++ chapter33_xml/create_xml.py | 24 ++++++++++++++++++++++++ chapter33_xml/note.xml | 15 +++++++++++++++ chapter33_xml/parse_xml.py | 19 +++++++++++++++++++ chapter33_xml/test_create.xml | 2 ++ chapter33_xml/xml_tree_iterator.py | 13 +++++++++++++ 6 files changed, 94 insertions(+) create mode 100644 chapter33_xml/appts.xml create mode 100644 chapter33_xml/create_xml.py create mode 100644 chapter33_xml/note.xml create mode 100644 chapter33_xml/parse_xml.py create mode 100644 chapter33_xml/test_create.xml create mode 100644 chapter33_xml/xml_tree_iterator.py diff --git a/chapter33_xml/appts.xml b/chapter33_xml/appts.xml new file mode 100644 index 0000000..5b59f28 --- /dev/null +++ b/chapter33_xml/appts.xml @@ -0,0 +1,21 @@ + + + + 1181251680 + 040000008200E000 + 1181572063 + + + 1800 + Bring pizza home + + + 1181253977 + sdlkjlkadhdakhdfd + 1181588888 + TX + Dallas + 1800 + Bring pizza home + + \ No newline at end of file diff --git a/chapter33_xml/create_xml.py b/chapter33_xml/create_xml.py new file mode 100644 index 0000000..54f0804 --- /dev/null +++ b/chapter33_xml/create_xml.py @@ -0,0 +1,24 @@ +import xml.etree.ElementTree as ET + +def create_xml(xml_file): + root_element = ET.Element('note_taker') + note_element = ET.Element('note') + root_element.append(note_element) + + # add note sub-elements + to_element = ET.SubElement(note_element, 'to') + to_element.text = 'Mike' + from_element = ET.SubElement(note_element, 'from') + from_element.text = 'Nick' + heading_element = ET.SubElement(note_element, 'heading') + heading_element.text = 'Appointment' + body_element = ET.SubElement(note_element, 'body') + body_element.text = 'blah blah' + + tree = ET.ElementTree(root_element) + with open(xml_file, "wb") as fh: + tree.write(fh, xml_declaration=True, + encoding='UTF-8') + +if __name__ == '__main__': + create_xml('test_create.xml') \ No newline at end of file diff --git a/chapter33_xml/note.xml b/chapter33_xml/note.xml new file mode 100644 index 0000000..737369c --- /dev/null +++ b/chapter33_xml/note.xml @@ -0,0 +1,15 @@ + + + + Mike + Nadine + Reminder + Don't forget the milk + + + Nicole + Nadine + Appointment + Eye doctor + + \ No newline at end of file diff --git a/chapter33_xml/parse_xml.py b/chapter33_xml/parse_xml.py new file mode 100644 index 0000000..4083e82 --- /dev/null +++ b/chapter33_xml/parse_xml.py @@ -0,0 +1,19 @@ +# parse_xml.py + +from xml.etree.ElementTree import ElementTree + +def parse_xml(xml_file): + tree = ElementTree(file=xml_file) + root_element = tree.getroot() + print(f"The root element's tag is '{root_element.tag}'") + + for child_element in root_element: + print(f'{child_element.tag=}, {child_element.text=}') + if child_element.tag == 'note': + for note_element in child_element: + print(f'{note_element.tag=}, {note_element.text=}') + + +if __name__ == '__main__': + parse_xml('note.xml') + diff --git a/chapter33_xml/test_create.xml b/chapter33_xml/test_create.xml new file mode 100644 index 0000000..ef03836 --- /dev/null +++ b/chapter33_xml/test_create.xml @@ -0,0 +1,2 @@ + +MikeNickAppointmentblah blah \ No newline at end of file diff --git a/chapter33_xml/xml_tree_iterator.py b/chapter33_xml/xml_tree_iterator.py new file mode 100644 index 0000000..c7b0b95 --- /dev/null +++ b/chapter33_xml/xml_tree_iterator.py @@ -0,0 +1,13 @@ +# xml_tree_iterator.py + +from xml.etree.cElementTree import ElementTree + +def parse_xml(xml_file): + tree = ElementTree(file=xml_file) + print("Iterating using a tree iterator") + for elem in tree.iter(): + print(f'{elem.tag=}, {elem.text=}') + + +if __name__ == '__main__': + parse_xml('note.xml') From 8bc5ae5d6defbf2f417cdb8410fa539a0c889e21 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 1 Jul 2020 12:44:46 -0500 Subject: [PATCH 49/89] Add more XML examples --- chapter33_xml/create_xml.py | 6 +++-- chapter33_xml/edit_xml.py | 18 +++++++++++++ chapter33_xml/lxml_output.xml | 15 +++++++++++ chapter33_xml/output.xml | 14 ++++++++++ chapter33_xml/parse_xml_with_lxml.py | 39 ++++++++++++++++++++++++++++ 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 chapter33_xml/edit_xml.py create mode 100644 chapter33_xml/lxml_output.xml create mode 100644 chapter33_xml/output.xml create mode 100644 chapter33_xml/parse_xml_with_lxml.py diff --git a/chapter33_xml/create_xml.py b/chapter33_xml/create_xml.py index 54f0804..e10ad5f 100644 --- a/chapter33_xml/create_xml.py +++ b/chapter33_xml/create_xml.py @@ -1,5 +1,8 @@ +# create_xml.py + import xml.etree.ElementTree as ET + def create_xml(xml_file): root_element = ET.Element('note_taker') note_element = ET.Element('note') @@ -17,8 +20,7 @@ def create_xml(xml_file): tree = ET.ElementTree(root_element) with open(xml_file, "wb") as fh: - tree.write(fh, xml_declaration=True, - encoding='UTF-8') + tree.write(fh) if __name__ == '__main__': create_xml('test_create.xml') \ No newline at end of file diff --git a/chapter33_xml/edit_xml.py b/chapter33_xml/edit_xml.py new file mode 100644 index 0000000..d2177c3 --- /dev/null +++ b/chapter33_xml/edit_xml.py @@ -0,0 +1,18 @@ +# edit_xml.py + + +import xml.etree.cElementTree as ET + +def edit_xml(xml_file, output_file, from_person): + tree = ET.ElementTree(file=xml_file) + root = tree.getroot() + + for from_element in tree.iter(tag='from'): + from_element.text = from_person + + tree = ET.ElementTree(root) + with open(output_file, "wb") as f: + tree.write(f) + +if __name__ == '__main__': + edit_xml('note.xml', 'output.xml', 'Guido') \ No newline at end of file diff --git a/chapter33_xml/lxml_output.xml b/chapter33_xml/lxml_output.xml new file mode 100644 index 0000000..aa4455c --- /dev/null +++ b/chapter33_xml/lxml_output.xml @@ -0,0 +1,15 @@ + + + Guido + Nadine + Reminder + Don't forget the milk + I'm new! + + + Nicole + Nadine + Appointment + Eye doctor + + diff --git a/chapter33_xml/output.xml b/chapter33_xml/output.xml new file mode 100644 index 0000000..f5539f4 --- /dev/null +++ b/chapter33_xml/output.xml @@ -0,0 +1,14 @@ + + + Mike + Guido + Reminder + Don't forget the milk + + + Nicole + Guido + Appointment + Eye doctor + + \ No newline at end of file diff --git a/chapter33_xml/parse_xml_with_lxml.py b/chapter33_xml/parse_xml_with_lxml.py new file mode 100644 index 0000000..d81ba59 --- /dev/null +++ b/chapter33_xml/parse_xml_with_lxml.py @@ -0,0 +1,39 @@ +# parse_xml_with_lxml.py + +from lxml import etree, objectify + +def parse_xml(xml_file): + with open(xml_file) as f: + xml = f.read() + + root = objectify.fromstring(xml) + + # Get an element + to = root.note.to + print(f'The {to=}') + + # print out all the note element's tags and text values + for note in root.getchildren(): + for note_element in note.getchildren(): + print(f'{note_element.tag=}, {note_element.text=}') + print() + + # modify a text value + print(f'Original: {root.note.to=}') + root.note.to = 'Guido' + print(f'Modified: {root.note.to=}') + + # add a new element + root.note.new_element = "I'm new!" + + # cleanup the XML before writing to disk + objectify.deannotate(root) + etree.cleanup_namespaces(root) + obj_xml = etree.tostring(root, pretty_print=True) + + # save your xml + with open("lxml_output.xml", "wb") as f: + f.write(obj_xml) + +if __name__ == '__main__': + parse_xml('note.xml') \ No newline at end of file From 73a0d3f507721413cc4c4356efa9a2548c70fe1a Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 1 Jul 2020 12:45:10 -0500 Subject: [PATCH 50/89] Add code for chapter 34 --- chapter34_json/create_json_file.py | 21 +++++++++++++++++++++ chapter34_json/example.json | 1 + chapter34_json/load_json_file.py | 12 ++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 chapter34_json/create_json_file.py create mode 100644 chapter34_json/example.json create mode 100644 chapter34_json/load_json_file.py diff --git a/chapter34_json/create_json_file.py b/chapter34_json/create_json_file.py new file mode 100644 index 0000000..6466678 --- /dev/null +++ b/chapter34_json/create_json_file.py @@ -0,0 +1,21 @@ +# create_json_file.py + +import json + +def create_json_file(path, obj): + with open(path, 'w') as fh: + json.dump(obj, fh) + +if __name__ == '__main__': + j = {"menu": { + "id": "file", + "value": "File", + "popup": { + "menuitem": [ + {"value": "New", "onclick": "CreateNewDoc()"}, + {"value": "Open", "onclick": "OpenDoc()"}, + {"value": "Close", "onclick": "CloseDoc()"} + ] + } + }} + create_json_file('test.json', j) \ No newline at end of file diff --git a/chapter34_json/example.json b/chapter34_json/example.json new file mode 100644 index 0000000..1faefce --- /dev/null +++ b/chapter34_json/example.json @@ -0,0 +1 @@ +{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}} \ No newline at end of file diff --git a/chapter34_json/load_json_file.py b/chapter34_json/load_json_file.py new file mode 100644 index 0000000..769a42c --- /dev/null +++ b/chapter34_json/load_json_file.py @@ -0,0 +1,12 @@ +# load_json_file.py + +import json + +def load_json_file(path): + with open(path) as fh: + j_obj = json.load(fh) + print(type(j_obj)) + + +if __name__ == '__main__': + load_json_file('example.json') \ No newline at end of file From 59ef63c92e0ed1104632bbed982e699a44273a6d Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 1 Jul 2020 12:45:26 -0500 Subject: [PATCH 51/89] Add web scraping and downloading examples --- chapter35_scrape_website/downloading_files.py | 14 +++++++++ chapter35_scrape_website/scraper.py | 29 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 chapter35_scrape_website/downloading_files.py create mode 100644 chapter35_scrape_website/scraper.py diff --git a/chapter35_scrape_website/downloading_files.py b/chapter35_scrape_website/downloading_files.py new file mode 100644 index 0000000..b80f20d --- /dev/null +++ b/chapter35_scrape_website/downloading_files.py @@ -0,0 +1,14 @@ +import urllib.request + +def download_file(url): + urllib.request.urlretrieve(url, "code.zip") + +def alternate_download(url): + f = urllib.request.urlopen(url) + data = f.read() + with open("code2.zip", "wb") as code: + code.write(data) + +if __name__ == '__main__': + url = 'http://www.blog.pythonlibrary.org/wp-content/uploads/2012/06/wxDbViewer.zip' + download_file(url) \ No newline at end of file diff --git a/chapter35_scrape_website/scraper.py b/chapter35_scrape_website/scraper.py new file mode 100644 index 0000000..2da8526 --- /dev/null +++ b/chapter35_scrape_website/scraper.py @@ -0,0 +1,29 @@ +# scraper.py + +import urllib.request + +from bs4 import BeautifulSoup + + +def download_html(url): + with urllib.request.urlopen(url) as response: + html = response.read() + return html + +def scraper(url): + html = download_html(url) + soup = BeautifulSoup(html, 'html.parser') + + title_links = soup.findAll('h1') + articles = {} + for link in title_links: + if link.a: + articles[link.a['href']] = link.text.strip() + + for article in articles: + print(f'{articles[article]} - {article}') + + +if __name__ == '__main__': + url = 'https://www.blog.pythonlibrary.org' + scraper(url) \ No newline at end of file From 0cfa1fc2c2db47f538dac063b0660244d0fa9f8f Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Jul 2020 10:46:52 -0500 Subject: [PATCH 52/89] add example code for chapter 36 --- chapter36_csv/books.csv | 4 ++++ chapter36_csv/csv_dict_reader.py | 12 ++++++++++++ chapter36_csv/csv_dict_writer.py | 28 +++++++++++++++++++++++++++ chapter36_csv/csv_reader.py | 12 ++++++++++++ chapter36_csv/csv_reader_no_header.py | 14 ++++++++++++++ chapter36_csv/csv_writer.py | 19 ++++++++++++++++++ chapter36_csv/csv_writer_rows.py | 18 +++++++++++++++++ chapter36_csv/output.csv | 0 chapter36_csv/output_dict.csv | 0 9 files changed, 107 insertions(+) create mode 100644 chapter36_csv/books.csv create mode 100644 chapter36_csv/csv_dict_reader.py create mode 100644 chapter36_csv/csv_dict_writer.py create mode 100644 chapter36_csv/csv_reader.py create mode 100644 chapter36_csv/csv_reader_no_header.py create mode 100644 chapter36_csv/csv_writer.py create mode 100644 chapter36_csv/csv_writer_rows.py create mode 100644 chapter36_csv/output.csv create mode 100644 chapter36_csv/output_dict.csv diff --git a/chapter36_csv/books.csv b/chapter36_csv/books.csv new file mode 100644 index 0000000..9833652 --- /dev/null +++ b/chapter36_csv/books.csv @@ -0,0 +1,4 @@ +book_title,author,publisher,pub_date,isbn +Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 +wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 +Python Interviews,Mike Driscoll,Packt Publishing,2018,9781788399081 \ No newline at end of file diff --git a/chapter36_csv/csv_dict_reader.py b/chapter36_csv/csv_dict_reader.py new file mode 100644 index 0000000..bf57378 --- /dev/null +++ b/chapter36_csv/csv_dict_reader.py @@ -0,0 +1,12 @@ +# csv_dict_reader.py + +import csv + +def process_csv_dict_reader(file_obj): + reader = csv.DictReader(file_obj) + for line in reader: + print(f'{line["book_title"]} by {line["author"]}') + +if __name__ == '__main__': + with open('books.csv') as csvfile: + process_csv_dict_reader(csvfile) \ No newline at end of file diff --git a/chapter36_csv/csv_dict_writer.py b/chapter36_csv/csv_dict_writer.py new file mode 100644 index 0000000..70a97f8 --- /dev/null +++ b/chapter36_csv/csv_dict_writer.py @@ -0,0 +1,28 @@ +# csv_dict_writer.py + +import csv + +def csv_dict_writer(path, headers, data): + with open(path, 'w') as csvfile: + writer = csv.DictWriter(csvfile, delimiter=',', + fieldnames=headers) + writer.writeheader() + for record in data: + writer.writerow(record) + +if __name__ == '__main__': + data = '''book_title,author,publisher,pub_date,isbn + Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 + wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 + Python Interviews,Mike Driscoll,Packt Publishing,2018,9781788399081''' + records = [] + for line in data.split('\n'): + records.append(line.strip().split(',')) + headers = records[0] + + list_of_dicts = [] + for row in records[1:]: + my_dict = dict(zip(headers, row)) + list_of_dicts.append(my_dict) + + csv_dict_writer('output_dict.csv', headers, list_of_dicts) \ No newline at end of file diff --git a/chapter36_csv/csv_reader.py b/chapter36_csv/csv_reader.py new file mode 100644 index 0000000..6354ed0 --- /dev/null +++ b/chapter36_csv/csv_reader.py @@ -0,0 +1,12 @@ +# csv_reader.py + +import csv + +def process_csv(path): + with open(path) as csvfile: + reader = csv.reader(csvfile) + for row in reader: + print(row) + +if __name__ == '__main__': + process_csv('books.csv') \ No newline at end of file diff --git a/chapter36_csv/csv_reader_no_header.py b/chapter36_csv/csv_reader_no_header.py new file mode 100644 index 0000000..8a54d8a --- /dev/null +++ b/chapter36_csv/csv_reader_no_header.py @@ -0,0 +1,14 @@ +# csv_reader_no_header.py + +import csv + +def process_csv(path): + with open(path) as csvfile: + reader = csv.reader(csvfile) + # Skip the header + next(reader, None) + for row in reader: + print(row) + +if __name__ == '__main__': + process_csv('books.csv') \ No newline at end of file diff --git a/chapter36_csv/csv_writer.py b/chapter36_csv/csv_writer.py new file mode 100644 index 0000000..9e30b45 --- /dev/null +++ b/chapter36_csv/csv_writer.py @@ -0,0 +1,19 @@ +# csv_writer.py + +import csv + +def csv_writer(path, data): + with open(path, 'w') as csvfile: + writer = csv.writer(csvfile, delimiter=',') + for row in data: + writer.writerow(row) + +if __name__ == '__main__': + data = '''book_title,author,publisher,pub_date,isbn + Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 + wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 + Python Interviews,Mike Driscoll,Packt Publishing,2018,9781788399081''' + records = [] + for line in data.split('\n'): + records.append(line.strip().split(',')) + csv_writer('output.csv', records) \ No newline at end of file diff --git a/chapter36_csv/csv_writer_rows.py b/chapter36_csv/csv_writer_rows.py new file mode 100644 index 0000000..47b8d75 --- /dev/null +++ b/chapter36_csv/csv_writer_rows.py @@ -0,0 +1,18 @@ +# csv_writer_rows.py + +import csv + +def csv_writer(path, data): + with open(path, 'w') as csvfile: + writer = csv.writer(csvfile, delimiter=',') + writer.writerows(data) + +if __name__ == '__main__': + data = '''book_title,author,publisher,pub_date,isbn + Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 + wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 + Python Interviews,Mike Driscoll,Packt Publishing,2018,9781788399081''' + records = [] + for line in data.split('\n'): + records.append(line.strip().split(',')) + csv_writer('output2.csv', records) \ No newline at end of file diff --git a/chapter36_csv/output.csv b/chapter36_csv/output.csv new file mode 100644 index 0000000..e69de29 diff --git a/chapter36_csv/output_dict.csv b/chapter36_csv/output_dict.csv new file mode 100644 index 0000000..e69de29 From 799996bc44bb781d83151b20a7322ff55f17ba44 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Jul 2020 10:48:08 -0500 Subject: [PATCH 53/89] ignore zip files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c560be3..7f7b107 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ py101_2nd_code.wpu chapter22_type_hints/.mypy_cache/ *.pyc +*.zip From fbb3fd12ccdc0b98f7e3f4a6a3c1f6940495a4d6 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Jul 2020 10:48:38 -0500 Subject: [PATCH 54/89] Add code examples for chapter 37 --- chapter37_sqlite/add_data.py | 25 +++++++++++++++++++++++++ chapter37_sqlite/create_database.py | 14 ++++++++++++++ chapter37_sqlite/delete_record.py | 17 +++++++++++++++++ chapter37_sqlite/queries.py | 29 +++++++++++++++++++++++++++++ chapter37_sqlite/update_record.py | 19 +++++++++++++++++++ 5 files changed, 104 insertions(+) create mode 100644 chapter37_sqlite/add_data.py create mode 100644 chapter37_sqlite/create_database.py create mode 100644 chapter37_sqlite/delete_record.py create mode 100644 chapter37_sqlite/queries.py create mode 100644 chapter37_sqlite/update_record.py diff --git a/chapter37_sqlite/add_data.py b/chapter37_sqlite/add_data.py new file mode 100644 index 0000000..9e3a0c0 --- /dev/null +++ b/chapter37_sqlite/add_data.py @@ -0,0 +1,25 @@ +# add_data.py + +import sqlite3 + +conn = sqlite3.connect("books.db") +cursor = conn.cursor() + +# insert a record into the database +cursor.execute("""INSERT INTO books + VALUES ('Python 101', 'Mike Driscoll', '9/01/2020', + 'Mouse Vs Python', 'epub')""" + ) + +# save data to database +conn.commit() + +# insert multiple records using the more secure "?" method +albums = [('Python Interviews', 'Mike Driscoll', + '2/1/2018', 'Packt Publishing', 'softcover'), + ('Automate the Boring Stuff with Python', + 'Al Sweigart', '', 'No Starch Press', 'PDF'), + ('The Well-Grounded Python Developer', + 'Doug Farrell', '2020', 'Manning', 'Kindle')] +cursor.executemany("INSERT INTO books VALUES (?,?,?,?,?)", albums) +conn.commit() \ No newline at end of file diff --git a/chapter37_sqlite/create_database.py b/chapter37_sqlite/create_database.py new file mode 100644 index 0000000..54634c1 --- /dev/null +++ b/chapter37_sqlite/create_database.py @@ -0,0 +1,14 @@ +# create_database.py + +import sqlite3 + +# use :memory: to put it in RAM +conn = sqlite3.connect("books.db") + +cursor = conn.cursor() + +# create a table +cursor.execute("""CREATE TABLE books + (title text, author text, release_date text, + publisher text, book_type text) + """) \ No newline at end of file diff --git a/chapter37_sqlite/delete_record.py b/chapter37_sqlite/delete_record.py new file mode 100644 index 0000000..43c0726 --- /dev/null +++ b/chapter37_sqlite/delete_record.py @@ -0,0 +1,17 @@ +# delete_record.py + +import sqlite3 + +def delete_author(author): + conn = sqlite3.connect("books.db") + cursor = conn.cursor() + + sql = f""" + DELETE FROM books + WHERE author = '{author}' + """ + cursor.execute(sql) + conn.commit() + +if __name__ == '__main__': + delete_author(author='Al Sweigart') \ No newline at end of file diff --git a/chapter37_sqlite/queries.py b/chapter37_sqlite/queries.py new file mode 100644 index 0000000..fcccd1d --- /dev/null +++ b/chapter37_sqlite/queries.py @@ -0,0 +1,29 @@ +# queries.py + +import sqlite3 + +def get_cursor(): + conn = sqlite3.connect("books.db") + return conn.cursor() + +def select_all_records_by_author(cursor, author): + sql = "SELECT * FROM books WHERE author=?" + cursor.execute(sql, [(author)]) + print(cursor.fetchall()) # or use fetchone() + print("\nHere is a listing of the rows in the table\n") + for row in cursor.execute("SELECT rowid, * FROM books ORDER BY author"): + print(row) + +def select_using_like(cursor, text): + print("\nLIKE query results:\n") + sql = f""" + SELECT * FROM books + WHERE title LIKE '{text}%'""" + cursor.execute(sql) + print(cursor.fetchall()) + +if __name__ == '__main__': + cursor = get_cursor() + select_all_records_by_author(cursor, + author='Mike Driscoll') + select_using_like(cursor, text='Python') \ No newline at end of file diff --git a/chapter37_sqlite/update_record.py b/chapter37_sqlite/update_record.py new file mode 100644 index 0000000..46ae430 --- /dev/null +++ b/chapter37_sqlite/update_record.py @@ -0,0 +1,19 @@ +# update_record.py + +import sqlite3 + + +def update_author(old_name, new_name): + conn = sqlite3.connect("books.db") + cursor = conn.cursor() + sql = f""" + UPDATE books + SET author = '{new_name}' + WHERE author = '{old_name}' + """ + cursor.execute(sql) + conn.commit() + +if __name__ == '__main__': + update_author(old_name='Mike Driscoll', + new_name='Michael Driscoll') \ No newline at end of file From eefa8afedc181455925840519c04154b6909ca2c Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Jul 2020 10:48:58 -0500 Subject: [PATCH 55/89] ignore sqlite database files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7f7b107..beaafca 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ chapter22_type_hints/.mypy_cache/ *.pyc *.zip +*.db \ No newline at end of file From 8a078692e5622afbf7ad5f1d4953b58df315739a Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Wed, 8 Jul 2020 16:33:25 -0500 Subject: [PATCH 56/89] add examples for chapter 38 --- chapter38_excel/books.xlsx | Bin 0 -> 6584 bytes chapter38_excel/creating_sheets.py | 18 +++++++++++++ chapter38_excel/delete_demo.py | 21 +++++++++++++++ chapter38_excel/delete_sheets.py | 17 +++++++++++++ chapter38_excel/insert_demo.py | 18 +++++++++++++ chapter38_excel/iterating_over_cell_values.py | 14 ++++++++++ chapter38_excel/iterating_over_cells.py | 12 +++++++++ chapter38_excel/open_workbook.py | 13 ++++++++++ chapter38_excel/workbook_cells.py | 24 ++++++++++++++++++ chapter38_excel/writing_hello.py | 14 ++++++++++ 10 files changed, 151 insertions(+) create mode 100644 chapter38_excel/books.xlsx create mode 100644 chapter38_excel/creating_sheets.py create mode 100644 chapter38_excel/delete_demo.py create mode 100644 chapter38_excel/delete_sheets.py create mode 100644 chapter38_excel/insert_demo.py create mode 100644 chapter38_excel/iterating_over_cell_values.py create mode 100644 chapter38_excel/iterating_over_cells.py create mode 100644 chapter38_excel/open_workbook.py create mode 100644 chapter38_excel/workbook_cells.py create mode 100644 chapter38_excel/writing_hello.py diff --git a/chapter38_excel/books.xlsx b/chapter38_excel/books.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f57e615d47bcc02d11179c37831bff673df017bf GIT binary patch literal 6584 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 Wni3kahyVbX$WI{hSuv3QGy6Zi7ho;` literal 0 HcmV?d00001 diff --git a/chapter38_excel/creating_sheets.py b/chapter38_excel/creating_sheets.py new file mode 100644 index 0000000..d8bdb38 --- /dev/null +++ b/chapter38_excel/creating_sheets.py @@ -0,0 +1,18 @@ +# creating_sheets.py + +import openpyxl + +def create_worksheets(path): + workbook = openpyxl.Workbook() + print(workbook.sheetnames) + # Add a new worksheet + workbook.create_sheet() + print(workbook.sheetnames) + # Insert a worksheet + workbook.create_sheet(index=1, + title='Second sheet') + print(workbook.sheetnames) + workbook.save(path) + +if __name__ == '__main__': + create_worksheets('sheets.xlsx') \ No newline at end of file diff --git a/chapter38_excel/delete_demo.py b/chapter38_excel/delete_demo.py new file mode 100644 index 0000000..a3fb283 --- /dev/null +++ b/chapter38_excel/delete_demo.py @@ -0,0 +1,21 @@ +# delete_demo.py + +from openpyxl import Workbook + +def deleting_cols_rows(path): + workbook = Workbook() + sheet = workbook.active + sheet['A1'] = 'Hello' + sheet['B1'] = 'from' + sheet['C1'] = 'OpenPyXL' + sheet['A2'] = 'row 2' + sheet['A3'] = 'row 3' + sheet['A4'] = 'row 4' + # Delete column A + sheet.delete_cols(idx=1) + # delete 2 rows starting on the second row + #sheet.delete_rows(idx=2, amount=2) + workbook.save(path) + +if __name__ == '__main__': + deleting_cols_rows('deleting.xlsx') \ No newline at end of file diff --git a/chapter38_excel/delete_sheets.py b/chapter38_excel/delete_sheets.py new file mode 100644 index 0000000..026234e --- /dev/null +++ b/chapter38_excel/delete_sheets.py @@ -0,0 +1,17 @@ +# delete_sheets.py + +import openpyxl + +def create_worksheets(path): + workbook = openpyxl.Workbook() + workbook.create_sheet() + # Insert a worksheet + workbook.create_sheet(index=1, + title='Second sheet') + print(workbook.sheetnames) + del workbook['Second sheet'] + print(workbook.sheetnames) + workbook.save(path) + +if __name__ == '__main__': + create_worksheets('del_sheets.xlsx') \ No newline at end of file diff --git a/chapter38_excel/insert_demo.py b/chapter38_excel/insert_demo.py new file mode 100644 index 0000000..8046b29 --- /dev/null +++ b/chapter38_excel/insert_demo.py @@ -0,0 +1,18 @@ +# insert_demo.py + +from openpyxl import Workbook + +def inserting_cols_rows(path): + workbook = Workbook() + sheet = workbook.active + sheet['A1'] = 'Hello' + sheet['A2'] = 'from' + sheet['A3'] = 'OpenPyXL' + # insert a column before A + sheet.insert_cols(idx=1) + # insert 2 rows starting on the second row + sheet.insert_rows(idx=2, amount=2) + workbook.save(path) + +if __name__ == '__main__': + inserting_cols_rows('inserting.xlsx') \ No newline at end of file diff --git a/chapter38_excel/iterating_over_cell_values.py b/chapter38_excel/iterating_over_cell_values.py new file mode 100644 index 0000000..3f64c5e --- /dev/null +++ b/chapter38_excel/iterating_over_cell_values.py @@ -0,0 +1,14 @@ +# iterating_over_cell_values.py + +from openpyxl import load_workbook + +def iterating_over_values(path): + workbook = load_workbook(filename=path) + sheet = workbook.active + for value in sheet.iter_rows(min_row=1, max_row=3, + min_col=1, max_col=3, + values_only=True): + print(value) + +if __name__ == '__main__': + iterating_over_values('books.xlsx') \ No newline at end of file diff --git a/chapter38_excel/iterating_over_cells.py b/chapter38_excel/iterating_over_cells.py new file mode 100644 index 0000000..0cdd545 --- /dev/null +++ b/chapter38_excel/iterating_over_cells.py @@ -0,0 +1,12 @@ +# iterating_over_cells.py + +from openpyxl import load_workbook + +def iterating_range(path): + workbook = load_workbook(filename=path) + sheet = workbook.active + for cell in sheet['A']: + print(cell) + +if __name__ == '__main__': + iterating_range('books.xlsx') \ No newline at end of file diff --git a/chapter38_excel/open_workbook.py b/chapter38_excel/open_workbook.py new file mode 100644 index 0000000..8e889d7 --- /dev/null +++ b/chapter38_excel/open_workbook.py @@ -0,0 +1,13 @@ +# open_workbook.py + +from openpyxl import load_workbook + +def open_workbook(path): + workbook = load_workbook(filename=path) + print(f'Worksheet names: {workbook.sheetnames}') + sheet = workbook.active + print(sheet) + print(f'The title of the Worksheet is: {sheet.title}') + +if __name__ == '__main__': + open_workbook('books.xlsx') \ No newline at end of file diff --git a/chapter38_excel/workbook_cells.py b/chapter38_excel/workbook_cells.py new file mode 100644 index 0000000..82d6668 --- /dev/null +++ b/chapter38_excel/workbook_cells.py @@ -0,0 +1,24 @@ +# workbook_cells.py + +from openpyxl import load_workbook + +def get_cell_info(path): + workbook = load_workbook(filename=path) + sheet = workbook.active + print(sheet) + print(f'The title of the Worksheet is: {sheet.title}') + print(f'The value of {sheet["A2"].value=}') + print(f'The value of {sheet["A3"].value=}') + cell = sheet['B3'] + print(f'{cell.value=}') + +def get_info_by_coord(path): + workbook = load_workbook(filename=path) + sheet = workbook.active + cell = sheet['A2'] + print(f'Row {cell.row}, Col {cell.column} = {cell.value}') + print(f'{cell.value=} is at {cell.coordinate=}') + +if __name__ == '__main__': + get_cell_info('books.xlsx') + get_info_by_coord('books.xlsx') \ No newline at end of file diff --git a/chapter38_excel/writing_hello.py b/chapter38_excel/writing_hello.py new file mode 100644 index 0000000..09be8ec --- /dev/null +++ b/chapter38_excel/writing_hello.py @@ -0,0 +1,14 @@ +# writing_hello.py + +from openpyxl import Workbook + +def create_workbook(path): + workbook = Workbook() + sheet = workbook.active + sheet['A1'] = 'Hello' + sheet['A2'] = 'from' + sheet['A3'] = 'OpenPyXL' + workbook.save(path) + +if __name__ == '__main__': + create_workbook('hello.xlsx') \ No newline at end of file From db486d2bfeb052062560bbb6d47b5bae9cbc8226 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 9 Jul 2020 10:58:29 -0500 Subject: [PATCH 57/89] uncomment line --- chapter38_excel/delete_demo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter38_excel/delete_demo.py b/chapter38_excel/delete_demo.py index a3fb283..58098a3 100644 --- a/chapter38_excel/delete_demo.py +++ b/chapter38_excel/delete_demo.py @@ -14,7 +14,7 @@ def deleting_cols_rows(path): # Delete column A sheet.delete_cols(idx=1) # delete 2 rows starting on the second row - #sheet.delete_rows(idx=2, amount=2) + sheet.delete_rows(idx=2, amount=2) workbook.save(path) if __name__ == '__main__': From fe9ecff565b8ca04a4d1b674b1ef9da6d71f7535 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Thu, 9 Jul 2020 10:58:39 -0500 Subject: [PATCH 58/89] add new remove sheets example --- chapter38_excel/remove_sheets.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 chapter38_excel/remove_sheets.py diff --git a/chapter38_excel/remove_sheets.py b/chapter38_excel/remove_sheets.py new file mode 100644 index 0000000..9dbeb4f --- /dev/null +++ b/chapter38_excel/remove_sheets.py @@ -0,0 +1,17 @@ +# remove_sheets.py + +import openpyxl + +def create_worksheets(path): + workbook = openpyxl.Workbook() + sheet1 = workbook.create_sheet() + # Insert a worksheet + workbook.create_sheet(index=1, + title='Second sheet') + print(workbook.sheetnames) + workbook.remove(workbook['Second sheet']) + print(workbook.sheetnames) + workbook.save(path) + +if __name__ == '__main__': + create_worksheets('remove_sheets.xlsx') \ No newline at end of file From e6d2ed6e432761ffaeef14d7cda80e3ed21ddb93 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 10 Jul 2020 16:23:32 -0500 Subject: [PATCH 59/89] add canvas examples --- chapter39_reportlab/canvas_form.pdf | Bin 0 -> 1583 bytes chapter39_reportlab/canvas_form.py | 23 +++++++++++++++++++++++ chapter39_reportlab/canvas_image.pdf | Bin 0 -> 28633 bytes chapter39_reportlab/drawing_polygons.pdf | Bin 0 -> 1617 bytes chapter39_reportlab/drawing_polygons.py | 16 ++++++++++++++++ chapter39_reportlab/hello.pdf | Bin 0 -> 1429 bytes chapter39_reportlab/hello_reportlab.py | 7 +++++++ chapter39_reportlab/image_on_canvas.py | 16 ++++++++++++++++ chapter39_reportlab/snakehead.jpg | Bin 0 -> 22528 bytes 9 files changed, 62 insertions(+) create mode 100644 chapter39_reportlab/canvas_form.pdf create mode 100644 chapter39_reportlab/canvas_form.py create mode 100644 chapter39_reportlab/canvas_image.pdf create mode 100644 chapter39_reportlab/drawing_polygons.pdf create mode 100644 chapter39_reportlab/drawing_polygons.py create mode 100644 chapter39_reportlab/hello.pdf create mode 100644 chapter39_reportlab/hello_reportlab.py create mode 100644 chapter39_reportlab/image_on_canvas.py create mode 100644 chapter39_reportlab/snakehead.jpg diff --git a/chapter39_reportlab/canvas_form.pdf b/chapter39_reportlab/canvas_form.pdf new file mode 100644 index 0000000000000000000000000000000000000000..599f5a9b7748727f4863f441384f9c5be7c271a3 GIT binary patch literal 1583 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 literal 0 HcmV?d00001 diff --git a/chapter39_reportlab/drawing_polygons.pdf b/chapter39_reportlab/drawing_polygons.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f12319bb7f1c50d20527e30e382247c481006e68 GIT binary patch literal 1617 zcmb7EUsvKd6o2oh$jpisW*|*Vp?ZXoe|0LN2o=wYsG$u|hBnxyqwd3gf!()#-_N=? z2o6Vg&z$W;lY4Xj{_@Msbendb6bvQv*Pnm33lqTVwhVoYN?p<7^yVk(R0YtB#Uq(W>f?`YRbyg z=7Fy1npP$nF?GGDebP#MnzpyGlg>XlBHKO<#xaebQ69bH1UR+X^COS_1gRiE^*>7j znEI*5{$CaeA24IiJb~0SN|wwECIRyyr5lI^bd^RzZdRI@E|$FwJ&0U=> zbIxwwSoTk-jlVd%U(TwR&L=_I*GJk(;X~GQOBb`loxE9_{o2ZTq+S|XmRDi9hgmr3 zlI&M}rZ+!_>Cw17al4)xs&_r|V-xpd_j)j5*OhiX9$CB1pk&kBcsMOoc*Z@a_q=u66WU-ftVQ`Wv^z<`yu-~A znb+0NiE%pQC)WM^>VEf_HRxWs7N}O$zYMFT`PJT$mUp9Uh1b1at~E~Xc9zpHITuoF!2Q^rhb0Ol{G)6aJi%Bysr;Q(Ej+@qOQ_p= zfcAJU*r~dQYm^-bL{q`Hr z@f@e_I&ejzmnyWXQB{1$CM*s=GfIr8oOC*G+Qo_)wIjzUAtm#uzn=P$*`3qQP}24Y|GL)0=yA0(gl}OGXvMH z+d!qkTUd}Yw)`-2I&Zs&&eg~F{^;ZK@|V%ghx6awnXH-g50A%tSMH7Hi&?+Z`}JLG z9GoXZ5j(xxvm5WQJKSpwj$b9IsRf6z7+-yAls~t7>}~OV8udFBzwzD8sJ%B8lj2za zI2phC)UO}>-oy#rq~FZyz2*gRAR^Aw2emNtLnz=$S4T|j2l7ehI>^^&I?u&vd8P~8 zmv%vfFT^vudOdofi+luoYiBeQbFSBKPSOT)-Ka%rnq^VUS*V literal 0 HcmV?d00001 diff --git a/chapter39_reportlab/hello_reportlab.py b/chapter39_reportlab/hello_reportlab.py new file mode 100644 index 0000000..f1d75f9 --- /dev/null +++ b/chapter39_reportlab/hello_reportlab.py @@ -0,0 +1,7 @@ +# hello_reportlab.py + +from reportlab.pdfgen import canvas + +my_canvas = canvas.Canvas("hello.pdf") +my_canvas.drawString(100, 750, "Welcome to Reportlab!") +my_canvas.save() \ No newline at end of file diff --git a/chapter39_reportlab/image_on_canvas.py b/chapter39_reportlab/image_on_canvas.py new file mode 100644 index 0000000..8be2a08 --- /dev/null +++ b/chapter39_reportlab/image_on_canvas.py @@ -0,0 +1,16 @@ +# image_on_canvas.py + +from reportlab.lib.pagesizes import letter +from reportlab.pdfgen import canvas + + +def add_image(image_path): + my_canvas = canvas.Canvas("canvas_image.pdf", + pagesize=letter) + my_canvas.drawImage(image_path, 30, 600, + width=100, height=100) + my_canvas.save() + +if __name__ == '__main__': + image_path = 'snakehead.jpg' + add_image(image_path) \ No newline at end of file diff --git a/chapter39_reportlab/snakehead.jpg b/chapter39_reportlab/snakehead.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db89582752957c16e8453537cf029bf019334ef1 GIT binary patch literal 22528 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 V9T6}7qrd*YcoEOn!T%TQ|6dJtbngHF literal 0 HcmV?d00001 From a7eb6429df5e918af0177b6a86aae92d992f369b Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 10 Jul 2020 16:27:53 -0500 Subject: [PATCH 60/89] remove pdfs from repo --- chapter39_reportlab/canvas_form.pdf | Bin 1583 -> 0 bytes chapter39_reportlab/canvas_image.pdf | Bin 28633 -> 0 bytes chapter39_reportlab/drawing_polygons.pdf | Bin 1617 -> 0 bytes chapter39_reportlab/hello.pdf | Bin 1429 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 chapter39_reportlab/canvas_form.pdf delete mode 100644 chapter39_reportlab/canvas_image.pdf delete mode 100644 chapter39_reportlab/drawing_polygons.pdf delete mode 100644 chapter39_reportlab/hello.pdf diff --git a/chapter39_reportlab/canvas_form.pdf b/chapter39_reportlab/canvas_form.pdf deleted file mode 100644 index 599f5a9b7748727f4863f441384f9c5be7c271a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1583 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 diff --git a/chapter39_reportlab/drawing_polygons.pdf b/chapter39_reportlab/drawing_polygons.pdf deleted file mode 100644 index f12319bb7f1c50d20527e30e382247c481006e68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1617 zcmb7EUsvKd6o2oh$jpisW*|*Vp?ZXoe|0LN2o=wYsG$u|hBnxyqwd3gf!()#-_N=? z2o6Vg&z$W;lY4Xj{_@Msbendb6bvQv*Pnm33lqTVwhVoYN?p<7^yVk(R0YtB#Uq(W>f?`YRbyg z=7Fy1npP$nF?GGDebP#MnzpyGlg>XlBHKO<#xaebQ69bH1UR+X^COS_1gRiE^*>7j znEI*5{$CaeA24IiJb~0SN|wwECIRyyr5lI^bd^RzZdRI@E|$FwJ&0U=> zbIxwwSoTk-jlVd%U(TwR&L=_I*GJk(;X~GQOBb`loxE9_{o2ZTq+S|XmRDi9hgmr3 zlI&M}rZ+!_>Cw17al4)xs&_r|V-xpd_j)j5*OhiX9$CB1pk&kBcsMOoc*Z@a_q=u66WU-ftVQ`Wv^z<`yu-~A znb+0NiE%pQC)WM^>VEf_HRxWs7N}O$zYMFT`PJT$mUp9Uh1b1at~E~Xc9zpHITuoF!2Q^rhb0Ol{G)6aJi%Bysr;Q(Ej+@qOQ_p= zfcAJU*r~dQYm^-bL{q`Hr z@f@e_I&ejzmnyWXQB{1$CM*s=GfIr8oOC*G+Qo_)wIjzUAtm#uzn=P$*`3qQP}24Y|GL)0=yA0(gl}OGXvMH z+d!qkTUd}Yw)`-2I&Zs&&eg~F{^;ZK@|V%ghx6awnXH-g50A%tSMH7Hi&?+Z`}JLG z9GoXZ5j(xxvm5WQJKSpwj$b9IsRf6z7+-yAls~t7>}~OV8udFBzwzD8sJ%B8lj2za zI2phC)UO}>-oy#rq~FZyz2*gRAR^Aw2emNtLnz=$S4T|j2l7ehI>^^&I?u&vd8P~8 zmv%vfFT^vudOdofi+luoYiBeQbFSBKPSOT)-Ka%rnq^VUS*V From ca494b7abd9318ff88c1e2f510cc9d9f16bf7e50 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 10 Jul 2020 16:28:32 -0500 Subject: [PATCH 61/89] ignore pdf files --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index beaafca..9b41e9d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ chapter22_type_hints/.mypy_cache/ *.pyc *.zip -*.db \ No newline at end of file +*.db +*.pdf \ No newline at end of file From cc56a6ee867dde89254a89306df4426d1bd90081 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Fri, 10 Jul 2020 16:28:41 -0500 Subject: [PATCH 62/89] add platypus example --- chapter39_reportlab/hello_platypus.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 chapter39_reportlab/hello_platypus.py diff --git a/chapter39_reportlab/hello_platypus.py b/chapter39_reportlab/hello_platypus.py new file mode 100644 index 0000000..7e29ee4 --- /dev/null +++ b/chapter39_reportlab/hello_platypus.py @@ -0,0 +1,25 @@ +# hello_platypus.py + +from reportlab.lib.pagesizes import letter +from reportlab.platypus import SimpleDocTemplate, Paragraph +from reportlab.lib.styles import getSampleStyleSheet + +def hello(): + doc = SimpleDocTemplate("hello_platypus.pdf", + pagesize=letter, + rightMargin=72, + leftMargin=72, + topMargin=72, + bottomMargin=18) + styles = getSampleStyleSheet() + + flowables = [] + + text = "Hello, I'm a Paragraph" + para = Paragraph(text, style=styles["Normal"]) + flowables.append(para) + + doc.build(flowables) + +if __name__ == '__main__': + hello() \ No newline at end of file From 6400ae637263064cdf6737d8f8a111c4f6d3e4d2 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 13 Jul 2020 21:10:36 -0500 Subject: [PATCH 63/89] add reportlab platypus examples --- chapter39_reportlab/platypus_multipage.py | 26 +++++++++++++++++ chapter39_reportlab/simple_table.py | 21 ++++++++++++++ .../simple_table_with_style.py | 29 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 chapter39_reportlab/platypus_multipage.py create mode 100644 chapter39_reportlab/simple_table.py create mode 100644 chapter39_reportlab/simple_table_with_style.py diff --git a/chapter39_reportlab/platypus_multipage.py b/chapter39_reportlab/platypus_multipage.py new file mode 100644 index 0000000..9a0fe76 --- /dev/null +++ b/chapter39_reportlab/platypus_multipage.py @@ -0,0 +1,26 @@ +# platypus_multipage.py + +from reportlab.lib.pagesizes import letter +from reportlab.lib.styles import getSampleStyleSheet +from reportlab.lib.units import inch +from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer + + +def create_document(): + doc = SimpleDocTemplate("platypus_multipage.pdf", + pagesize=letter) + styles = getSampleStyleSheet() + flowables = [] + spacer = Spacer(1, 0.25*inch) + + # Create a lot of content to make a multipage PDF + for i in range(50): + text = 'Paragraph #{}'.format(i) + para = Paragraph(text, styles["Normal"]) + flowables.append(para) + flowables.append(spacer) + + doc.build(flowables) + +if __name__ == '__main__': + create_document() \ No newline at end of file diff --git a/chapter39_reportlab/simple_table.py b/chapter39_reportlab/simple_table.py new file mode 100644 index 0000000..19c201d --- /dev/null +++ b/chapter39_reportlab/simple_table.py @@ -0,0 +1,21 @@ +# simple_table.py + +from reportlab.lib.pagesizes import letter +from reportlab.platypus import SimpleDocTemplate, Table + +def simple_table(): + doc = SimpleDocTemplate("simple_table.pdf", pagesize=letter) + flowables = [] + + data = [['col_{}'.format(x) for x in range(1, 6)], + [str(x) for x in range(1, 6)], + ['a', 'b', 'c', 'd', 'e'] + ] + + tbl = Table(data) + flowables.append(tbl) + + doc.build(flowables) + +if __name__ == '__main__': + simple_table() \ No newline at end of file diff --git a/chapter39_reportlab/simple_table_with_style.py b/chapter39_reportlab/simple_table_with_style.py new file mode 100644 index 0000000..db47c7e --- /dev/null +++ b/chapter39_reportlab/simple_table_with_style.py @@ -0,0 +1,29 @@ +# simple_table_with_style.py + +from reportlab.lib import colors +from reportlab.lib.pagesizes import letter +from reportlab.platypus import SimpleDocTemplate, Table, TableStyle + +def simple_table_with_style(): + doc = SimpleDocTemplate("simple_table_with_style.pdf", + pagesize=letter) + flowables = [] + + data = [['col_{}'.format(x) for x in range(1, 6)], + [str(x) for x in range(1, 6)], + ['a', 'b', 'c', 'd', 'e'] + ] + + tblstyle = TableStyle( + [('BACKGROUND', (0, 0), (-1, 0), colors.red), + ('TEXTCOLOR', (0, 1), (-1, 1), colors.blue) + ]) + + tbl = Table(data) + tbl.setStyle(tblstyle) + flowables.append(tbl) + + doc.build(flowables) + +if __name__ == '__main__': + simple_table_with_style() \ No newline at end of file From 057fa69a6e85bbc0d3245704d9ef9912383a5352 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Tue, 14 Jul 2020 20:56:20 -0500 Subject: [PATCH 64/89] Add code examples for chapter 40 --- chapter40_graphs/bar_chart.py | 14 ++++++++++++++ chapter40_graphs/bar_charth.py | 14 ++++++++++++++ chapter40_graphs/line_plot.py | 12 ++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 chapter40_graphs/bar_chart.py create mode 100644 chapter40_graphs/bar_charth.py create mode 100644 chapter40_graphs/line_plot.py diff --git a/chapter40_graphs/bar_chart.py b/chapter40_graphs/bar_chart.py new file mode 100644 index 0000000..11808f3 --- /dev/null +++ b/chapter40_graphs/bar_chart.py @@ -0,0 +1,14 @@ +# bar_chart.py + +import matplotlib.pyplot as plt + +def bar_chart(numbers, labels, pos): + plt.bar(pos, numbers, color='blue') + plt.xticks(ticks=pos, labels=labels) + plt.show() + +if __name__ == '__main__': + numbers = [2, 1, 4, 6] + labels = ['Electric', 'Solar', 'Diesel', 'Unleaded'] + pos = list(range(4)) + bar_chart(numbers, labels, pos) \ No newline at end of file diff --git a/chapter40_graphs/bar_charth.py b/chapter40_graphs/bar_charth.py new file mode 100644 index 0000000..cdd2763 --- /dev/null +++ b/chapter40_graphs/bar_charth.py @@ -0,0 +1,14 @@ +# bar_charth.py + +import matplotlib.pyplot as plt + +def bar_charth(numbers, labels, pos): + plt.barh(pos, numbers, color='blue') + plt.yticks(ticks=pos, labels=labels) + plt.show() + +if __name__ == '__main__': + numbers = [2, 1, 4, 6] + labels = ['Electric', 'Solar', 'Diesel', 'Unleaded'] + pos = list(range(4)) + bar_charth(numbers, labels, pos) \ No newline at end of file diff --git a/chapter40_graphs/line_plot.py b/chapter40_graphs/line_plot.py new file mode 100644 index 0000000..03b7dd5 --- /dev/null +++ b/chapter40_graphs/line_plot.py @@ -0,0 +1,12 @@ +# line_plot.py + +import matplotlib.pyplot as plt + +def line_plot(numbers): + plt.plot(numbers) + plt.ylabel('Random numbers') + plt.show() + +if __name__ == '__main__': + numbers = [2, 4, 1, 6] + line_plot(numbers) \ No newline at end of file From de478bf4478ab776be98257670116614c769989a Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 20 Jul 2020 20:26:30 -0500 Subject: [PATCH 65/89] Add more graph examples --- chapter40_graphs/bar_chart.title.py | 18 ++++++++++++++++++ chapter40_graphs/bar_chart_labels.py | 16 ++++++++++++++++ chapter40_graphs/bar_chart_legend.py | 20 ++++++++++++++++++++ chapter40_graphs/multiple_figures.py | 16 ++++++++++++++++ chapter40_graphs/multiple_plots.py | 18 ++++++++++++++++++ chapter40_graphs/multiple_plots2.py | 15 +++++++++++++++ chapter40_graphs/pie_chart_fancy.py | 19 +++++++++++++++++++ chapter40_graphs/pie_chart_plain.py | 14 ++++++++++++++ 8 files changed, 136 insertions(+) create mode 100644 chapter40_graphs/bar_chart.title.py create mode 100644 chapter40_graphs/bar_chart_labels.py create mode 100644 chapter40_graphs/bar_chart_legend.py create mode 100644 chapter40_graphs/multiple_figures.py create mode 100644 chapter40_graphs/multiple_plots.py create mode 100644 chapter40_graphs/multiple_plots2.py create mode 100644 chapter40_graphs/pie_chart_fancy.py create mode 100644 chapter40_graphs/pie_chart_plain.py diff --git a/chapter40_graphs/bar_chart.title.py b/chapter40_graphs/bar_chart.title.py new file mode 100644 index 0000000..a68a7b9 --- /dev/null +++ b/chapter40_graphs/bar_chart.title.py @@ -0,0 +1,18 @@ +# bar_chart_title.py + +import matplotlib.pyplot as plt + +def bar_chart(numbers, labels, pos): + plt.bar(pos, [4, 5, 6, 3], color='green') + plt.bar(pos, numbers, color='blue') + plt.xticks(ticks=pos, labels=labels) + plt.title('Gas Used in Various Vehicles') + plt.xlabel('Vehicle Types') + plt.ylabel('Number of Vehicles') + plt.show() + +if __name__ == '__main__': + numbers = [2, 1, 4, 6] + labels = ['Electric', 'Solar', 'Diesel', 'Unleaded'] + pos = list(range(4)) + bar_chart(numbers, labels, pos) \ No newline at end of file diff --git a/chapter40_graphs/bar_chart_labels.py b/chapter40_graphs/bar_chart_labels.py new file mode 100644 index 0000000..2625f0f --- /dev/null +++ b/chapter40_graphs/bar_chart_labels.py @@ -0,0 +1,16 @@ +# bar_chart_labels.py + +import matplotlib.pyplot as plt + +def bar_chart(numbers, labels, pos): + plt.bar(pos, numbers, color='blue') + plt.xticks(ticks=pos, labels=labels) + plt.xlabel('Vehicle Types') + plt.ylabel('Number of Vehicles') + plt.show() + +if __name__ == '__main__': + numbers = [2, 1, 4, 6] + labels = ['Electric', 'Solar', 'Diesel', 'Unleaded'] + pos = list(range(4)) + bar_chart(numbers, labels, pos) \ No newline at end of file diff --git a/chapter40_graphs/bar_chart_legend.py b/chapter40_graphs/bar_chart_legend.py new file mode 100644 index 0000000..049be31 --- /dev/null +++ b/chapter40_graphs/bar_chart_legend.py @@ -0,0 +1,20 @@ +# bar_chart_legend.py + +import matplotlib.pyplot as plt + +def bar_chart(numbers, labels, pos): + plt.bar(pos, [4, 5, 6, 3], color='green') + plt.bar(pos, numbers, color='blue') + plt.xticks(ticks=pos, labels=labels) + plt.xlabel('Vehicle Types') + plt.ylabel('Number of Vehicles') + plt.title('Gas Used in Various Vehicles') + plt.legend(['First Label', 'Second Label'], + loc='upper left') + plt.show() + +if __name__ == '__main__': + numbers = [2, 1, 4, 6] + labels = ['Electric', 'Solar', 'Diesel', 'Unleaded'] + pos = list(range(4)) + bar_chart(numbers, labels, pos) \ No newline at end of file diff --git a/chapter40_graphs/multiple_figures.py b/chapter40_graphs/multiple_figures.py new file mode 100644 index 0000000..ea4bf17 --- /dev/null +++ b/chapter40_graphs/multiple_figures.py @@ -0,0 +1,16 @@ +# multiple_figures.py + +import matplotlib.pyplot as plt + +def line_plot(numbers, numbers2): + first_plot = plt.figure(1) + plt.plot(numbers) + + second_plot = plt.figure(2) + plt.plot(numbers2) + plt.show() + +if __name__ == '__main__': + numbers = [2, 4, 1, 6] + more_numbers = [5, 1, 10, 3] + line_plot(numbers, more_numbers) \ No newline at end of file diff --git a/chapter40_graphs/multiple_plots.py b/chapter40_graphs/multiple_plots.py new file mode 100644 index 0000000..1b9b9af --- /dev/null +++ b/chapter40_graphs/multiple_plots.py @@ -0,0 +1,18 @@ +# multiple_plots.py + +import matplotlib.pyplot as plt +import numpy as np + +def multiple_plots(): + # Some example data to display + x = np.linspace(0, 2 * np.pi, 400) + y = np.sin(x ** 2) + + fig, axs = plt.subplots(2) + fig.suptitle('Vertically stacked subplots') + axs[0].plot(x, y) + axs[1].plot(x, -y) + plt.show() + +if __name__ == '__main__': + multiple_plots() \ No newline at end of file diff --git a/chapter40_graphs/multiple_plots2.py b/chapter40_graphs/multiple_plots2.py new file mode 100644 index 0000000..f0487cf --- /dev/null +++ b/chapter40_graphs/multiple_plots2.py @@ -0,0 +1,15 @@ +# multiple_plots2.py + +import matplotlib.pyplot as plt + +def multiple_plots(): + numbers = [2, 4, 1, 6] + more_numbers = [5, 1, 10, 3] + fig, axs = plt.subplots(2) + fig.suptitle('Vertically stacked subplots') + axs[0].plot(numbers) + axs[1].plot(more_numbers) + plt.show() + +if __name__ == '__main__': + multiple_plots() \ No newline at end of file diff --git a/chapter40_graphs/pie_chart_fancy.py b/chapter40_graphs/pie_chart_fancy.py new file mode 100644 index 0000000..fef5f86 --- /dev/null +++ b/chapter40_graphs/pie_chart_fancy.py @@ -0,0 +1,19 @@ +# pie_chart.py + +import matplotlib.pyplot as plt + +def pie_chart(): + numbers = [40, 35, 15, 10] + labels = ['Python', 'Ruby', 'C++', 'PHP'] + # Explode the first slice (Python) + explode = (0.1, 0, 0, 0) + + fig1, ax1 = plt.subplots() + ax1.pie(numbers, explode=explode, labels=labels, + shadow=True, startangle=90, + autopct='%1.1f%%') + ax1.axis('equal') + plt.show() + +if __name__ == '__main__': + pie_chart() \ No newline at end of file diff --git a/chapter40_graphs/pie_chart_plain.py b/chapter40_graphs/pie_chart_plain.py new file mode 100644 index 0000000..d28980c --- /dev/null +++ b/chapter40_graphs/pie_chart_plain.py @@ -0,0 +1,14 @@ +# pie_chart_plain.py + +import matplotlib.pyplot as plt + +def pie_chart(): + numbers = [40, 35, 15, 10] + labels = ['Python', 'Ruby', 'C++', 'PHP'] + + fig1, ax1 = plt.subplots() + ax1.pie(numbers, labels=labels) + plt.show() + +if __name__ == '__main__': + pie_chart() \ No newline at end of file From 56058b50836ecfe2bd6249fdd9c071c3032f8ef8 Mon Sep 17 00:00:00 2001 From: Mike Driscoll Date: Mon, 20 Jul 2020 20:26:51 -0500 Subject: [PATCH 66/89] Add examples for image chapter --- chapter41_images/butterfly.jpg | Bin 0 -> 60333 bytes chapter41_images/butterfly_grey.jpg | Bin 0 -> 60344 bytes chapter41_images/cropping.py | 12 ++++++++++++ chapter41_images/ducks.jpg | Bin 0 -> 527791 bytes chapter41_images/ducks_cropped.jpg | Bin 0 -> 101578 bytes chapter41_images/get_histogram.py | 16 ++++++++++++++++ chapter41_images/get_image_info.py | 12 ++++++++++++ chapter41_images/jellyfish.jpg | Bin 0 -> 842158 bytes chapter41_images/lizard.jpg | Bin 0 -> 1210087 bytes chapter41_images/open_image.py | 6 ++++++ 10 files changed, 46 insertions(+) create mode 100644 chapter41_images/butterfly.jpg create mode 100644 chapter41_images/butterfly_grey.jpg create mode 100644 chapter41_images/cropping.py create mode 100644 chapter41_images/ducks.jpg create mode 100644 chapter41_images/ducks_cropped.jpg create mode 100644 chapter41_images/get_histogram.py create mode 100644 chapter41_images/get_image_info.py create mode 100644 chapter41_images/jellyfish.jpg create mode 100644 chapter41_images/lizard.jpg create mode 100644 chapter41_images/open_image.py diff --git a/chapter41_images/butterfly.jpg b/chapter41_images/butterfly.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9750c31c273844f34f7b304e14076427df5e58f7 GIT binary patch literal 60333 zcmb5VbwE_#_6Irx4BefQBb_pofOPjTG)Q+2T?$ADk^@5vNDMH9bc=L~AT5H@ASeom z3f4RLz4!j^@Auw6Z{wV^_t|@|vt#WQpLP7R`ezeFsiUE-0Rn?TATaO;`m;szQa#MW z6$H}P2MK^cAVLr>SR8}{CRfLZ>NmjLtqs|`R02mJ5RfaP%hGh*sTf2n~$TL1L_=lJHprK`^qoQKuWMpPz zV`pclVc_E7y1~PGgZ;)IfCw1qN`Oy5PDn_8gO-Z+#{cj1X8=S+2r2``;DWh8I8#YNUad7cK5Gs6XPH|-d z8e<2pfLKCW36(55?pr2~Pnuux45}hefu76&TS5Mt>_1&0_&}Wq6|k-VS%C2M_FN}` zEEOjnwK&Asfkrui_Q_}bEIN8FmDspff7U>xxWJxL;ZlL_fG&QM(US!kxWmU*ImDIr z(-X-+NPIrW-tl(QNF#b#&_NZIc9qPR@=r<@2L$tpioq+2Z4}SIZ3o3)M@fy0ace8t zQ1M7paitF0(D-cAXFm7oYtj{~SUFs)-8Kq*+Fk6;bhmx>^0wvXP3bZ<_@cm8&%ZyC z&@xIP*2Jb6HRjcxvkKhPSt@zGT{LCP#Jb=I)vd`dF4^<0xoCWkzi4`^(3U$T2mIUp zkeL>|GWC$>qA^KXt*S~vpJVegUrG$7<)+l?ZmjXGPpP-E_rVwC0|xxNl}L5TY=4jD zsTi#Aj-|vZr{LsQm|ov86S*^Iq&fqxQO}Xg2i!br@lU3`%bni7WPI6{eaDN*g4_|y zhMpP<9moC_tMe#|K>c;Rr8j2U_x;JUN+Yl~F0xQfWb)-wKY2p5&m~GHCt$up^ecN; zWlkzsJwGkyYniNwiKRDE|L&KAq{)EH^GnNd)%o%uCqBfkAFE@hu2Skc2fm!i82=f^ zCtXjzPQDszU#L>LnCFYN`6oGrry5x+fo*B4YVf)UMj2fB@@G^PKQ%gSIiI+rP+Gfg zg^9W4w}yvVm~MI!Td<9Cb@OQ;m9Ul1;Ed8;@}lQ=No4vv(d2^ z*ozf2O?yfR;_Qd{i{w+8|dp3(HTh3D&(RGyYc#V zMpKpWn%x#msn0a0WT>Gdnta;YbX%GouAK{gaf!1h8|G1!8CjU$;Xc{2NXJowyGXnw zd=+sENlMV=S(M}3pvhOR;sRcviT8^r#p74?L zt9`*+8hYd0y@6xi>xp>3+}uqjs&n^^$2a2F8-uXJ=cG?RLxY9_aWuv>IlYYH2G^sih2!-|TKMSyaz!RHZx!n?Ny}i+K`;iZPMR@l> zczhT4q!FFu`7tRvzTWiA8z0?-o(!SZDtqmAjyj|m( zz$7k`aT^O6H|!|TudgM#L;0o7wscfRe^^iZ$=C)fx!k;5NsxK{Cn&M@db+qJ+w4~1 z+Ang?k^`cxOuNw^h}sQ(4lNe}U9CyH3mA!S&s)h4F^$~KluGM9Qd*c&(*zCv&c+G_s&{&=Y#A*D9xqZ%?fl zi3hFK5WI^2<5og8;z? zr!6E*_{I0En%C>29foB% z%PKscVz8NDRPF|tx3F4Dw$85DCY*e{y_xQ&<|%8m&LHmsZwzRM?WkQ#cuIZdMk1zR zdg1rd{Zf)?p=Qa)W1nLjHH-<)sYbbjUorGrJ2zhE({yX0R-uk&Ns(H+?WjPE%O+}7A0NjqfO}@T0lirnG&avKt&t%8 zY>Rr{JW_A(k@vw?L7GZt*OoQOTgz3tL&Thk-`G95nCLuah0e;9FBA_G;w-Bo3{DIaqzgs!2G#QhGM5MU!V zP^!DeyKcHL@U9DdVr=jvOQ;%ID*R0-{pYv=kCv0{mh0f9kSA=Mt z;5$iVNJU*pm-e<72eX+rCg14$g8wY{dF#Q0&ZYvd`38yhpPDBo#V*9NvO|cB1-kM> zTLw&!Lh)K#dx=7eK;E-~w>rh<`qRdf#+QYMUvomK3-2xA3_B&bv^V8{b`VQs^x+2c zYk}^!o_L(Ncb8Wa`Cqcm&5+Jr84*m6n>NNhwk#`ndTGD2T<9JCjrxt2pyeS%&R(zm zPJyv0i@%SFnT%0=HHvTTl4sXK7mj-;Tt$gPl)aDtiu-0du0X6mvChH)r=@v8T8+`> zgHnTt1*pxMi%e$=H_ZmF-}hRXbJpCQr?+p&C*?ld^X=YC4aihFeiwUev}ksZjF`xv zJb?uBF6!G?yW8}a%vFcoF;xt&;o1Sp#UJ?wWCvshj!Pbsx!)i;veo!FVBNNB85&Y4 zMF-7eWDKaR%QWxZV!CVd?a+(-*KSwq?^B;nTDrEp8>)}UpYUu-t+mb_WW|Ze9`Y|2 zL~LO$NOhl;d!4$dgo{XmiTK|vk>H-=C}SaohM772UeI z+Me+!Z^SeCd|$`f*eYvJv!$2Sp}l(Rb~;Whf&4*np{C{3!qt;w^x1d-nWB&X#+eqU zc6g^5x+1;WapB9=vR_U05u0VL+eT%$!83pJ{Hx{1^$Fks5E3*nz}{eHmlfIa!shiM zivIalePvZUl$X)aQD&Sr`>9;c0n3JX@G}}inT0+DS?JUbNz%K6QfS;c@%Hi)jmibj z*C821e54q2A*3vcov#kk|ta7I#Uy0o1y7ZQ~qFp$Bcf--j$YB0)(kVxj ztkz~61zm~zjHY+z(QVq-_P9o zXs)gNbi-lD#?3Df&3j`?-_+<~Dkkl0yeHd-QY_D&K+!M8Eche$^Jbd@VR;6v! zKv>J-GhrMPJD2GQR58V-NW<(DWUa}6Ti5~UC|DyEN)wBBH~dG z(*JRF8-zX)FNfVMI3I}U`8#7ahdW^^srd4jqQ zRPAC$LhiLs8+!UmvEi;Jubf%$H_xx%c};}ptZhQ#9&7Osgi`f(D1B7f3h&cxk#<3h z>U6a1e=Tny;xnw>b>n?510(1jWkx`UiXER=VVid#*gv3}tAwD=+0@T8%hrL7PrlAS z+rjE|v5V@=$xE+v9+O?I?oFC}@>bQ(VCLsEz^jX|A~u4`XB8v;@%;tjsGp-{JjPi} zbZE<(kc9FXXvN%~pxwvQ>@R|`3qi+&+IN^P751mo1lpcC!OS6cm@8fs9yw;<;#*EHUp(zx_tw=b+_i2y?WJ;5bt3#Dn%W{C3o$wlkkI zyH0S4Y@IfSzRUA?xx38WZ8=9MZ2Mi!QxAKI#cwQ1j9_^L9In+pfkKE_pH%(<$xYJ1 z$Xe3d0=Kzzo%sT7W?TfC+NV1CYqXE_gQ!vAk`2oeTTdCkd*qwkFKp&DFb;9td=-?G z(D_Sc7-^yFGj0J9}6Qjpc%;%frb0--0YCC8LWm&$L=e9bvhkyDW=l$BztTSUft2`F^+0gs=I`j{SD^&Uq$gOWNbf@Rdw3dm9k-^U|132Z+{o2+O zn$AU}wj-)kX;UyqEQq0{u#%+Q1nC}}-OAdQ96=_{-`E>{RMuu)pAW3RCvEAM+Pvr( zyl>We%1^&P?AfhqM~iM?1j!M}lUG!G28)#Hc&yGJDF|v;)iOyg-Vpn>vM;|?Ag^11 z=A_zI%Z6?f$1%ItXJ%@@KLqpcna|?y9(on6;MT5n$zQ!;4@@SjW(`m!eyd_6p~c8? zu>6c|bF8S-I!G7=zd}NKzT0!w?upOkJ&1A8wq*OId93HxPxw6=8J$ek(BeJs)V<$v z(WsMeVHS$}?#cVqh@iT*2t&+{WcKAPsL11A#wn-|pZ|dF34i-8!0vW?uW&26`*qv1 zlrJ9(&Nh;)4)2EW5-Sj@yHOw9jsy0nG)Nyd`w(7rV z*-f^Nq;D?GrT9^6|1mLmUXEkkq|5j7bLmaE+dJ4yEv9K|Suk`3&heo}+LGg^{B}p( zorF7`-Yw`GN;KSEWeJsgf`-Pw>SPupA`TpiyFz8KE*|oN?8Hemu*Y>(X4&tci3)>j zd*S2_{6mTS!#e9}-8=I=)|}e%Cdz2(i5Ym`T}CIwvi>9Gum>(kJTlq3da22f!!A9? z4?zuN>^3)&7QcP6%Wrv^B!{aTZ+#X5imw3S?ZkjS+7akZ6BBW#to|fg`DEowX6dGg zpj${Zt@uuH_OtFj=7OOc-tcLd2jP6m`(Tkwa>4p%B^2P%h6*O*Bg1Dw9(+$ZznUD8 zt0V|`mET~95c4W&3;#k3UZQG52CBq>kJZA;^pWnke_jK49+=BLD9B$r?M@E)EZ81uk=#zL>ths*Aga zRs_-o9${eW6yfD0>&$gWkwZRAF3iW@$0f*tBh1I!H&8B2f$J}EIUs-iSd@$7Z<8P| z1uhGHBMwzRqzea31STTJ1@uNbyULlUY5c1%P*V8!AVWh#MM7_h_#xdy#bsq>Ma3jU zB_xD_7Q%tyzCjLQ!oGpr|E8ek66l2V@DK9v^X0gv=-}uV9HhX-B?`Pj^k1*I&i-et ziX0pq|1)0~Utp485J1cD@FDob`1k+`p!RRMg`5oCGvn%Es5IoC7j8&crdGoQRG) z3-zSAW#}{gEmfzA!BZaigIDuglBR*#+iGVFK{=JJ!%R?TfG#Tl1>*eQ_kynhK|-Kb zi3+F%kUKCwE*{Z8;N3MINF@%T=A^;rl2BGLrZsWo23|{dDB*q#D*}2R zc=^!j|Az9eqA;YjaZA)7&_CELTrb}vvqJ`|#{>u4#DGX?7j7~;3#b2s4}w5sUH(1; zE+9&rZV-s^Uk`B#orm=jng<2!r}Bw+F$H1^oX-9_`4SkMZhnlOpp#GqsDGA&$on;8_Wa>DSY!sxiM=n~PtE6dVxO*umFDh03fz7+8j2twi%NBhr2Bpfg*6Pwpl0}>G&XkgCqKa>C08vlFV6Clu_{&kPl&HprpNDd|b zU0?8jYW~s!E@&|qjbggV{Q{aBLvjCk2~hEOZ#Xra*#oGR7&8-$&P+1|>MGX>gR@VJ z%@8NL4W)rLJuAq&_GBxzVhMEm=UIrbUMIz2gQw5A+)4);;fZg|qxtImdJBVxlTS`L9j6dS$pRE3fdPTwda;QGMgZdtkV*mz1_JRX7J#TRkQhR+Jq`qTL}aXl z0|FY;gE%0`M*o+j)Yc#cn4D8jJDk}_5Niit*6#K(J4^2{P=c>J?_%O9*;F53E3Qn+<47yhnCt{jDeMHP7 z*oO{DeRvbR>DdFL|r-O)$ zK*j>Z_JXKFXC+A1uz>x4&HBHxaAl0rbI=Rru@nq+J7O|D*{VR}KTMLY0nilAT!c<{vr1^GG2t zp7n~x>@2-AzQ%bZTMAUDk2!!cK};r5HdAFiQQpAI5U4I4-) zH_fT1Y>wZY)qbn1c_bMGX3%0?1c-2R#$^yxd7f%X z$vPg`C5JQ6c?oo$s%Nm47kuzi>?%$Oji>E7P<$1~gT`YLB>Ys56L>VyVn(-MM(Oqx zXUy}gqou8`w)+Hu*dR^5K>tkh-0@#`YXqdy zF+$h^_;6vTb7#XnWIt351F=r5WWRSLwe8<%d_$_Dh3YM%*p|1%D|cmYf98QX{)&1o z8d|56M2o?%14?3JA)j6)C zjQ>h#;5ZBd p5O)8HZl68n#{5Kghz(UvY(*KUwJNJzILhTX50AulWUT?pG{mnNM@ZlbSZ}nT}i~aPm>w+~O4eQF{YmCSyvM-FEIe z!uoVFCJhQ0WXxWg)@j3{V+31yWNq^F4mB689xr@eAWxDWA;nBW_>mbcTv2f6RJK>u z@y1Urt;p9Y!WG6DEZ2&pA{As`cD)i33pj=NrbCQykTAe@e8jk95;&Q7F~nf5Ob}j8 z<-Zq;x{Mes0}_r)^<}0XRFeK5mH)TFn|SaThzQbTG=~;%vQ8!Ad+e%;l{$E6iOBBLn+-$xk3O*!?y2wm(!mzhus~dPkcH)+jThIo zD7vT^0&TTuY;-0C!ztgH=-~CFY)qJ#k!l;Mp~@cK(?Ri|()!CBwZj?lP?WCO0pTo} z_z10eYJ59N%{iC=wW+HTmrQE?O@&x}UGxtn*OHvJicaUI&N&uX<4nmt4)~i7H%FC+ zUB|s!SzwT2GS3G|(^J+=E%R$6d_FGC`kS7HZE5!erOnsIp3`N&aY25m6wlbyg+Q_f z=m-8;ZV*_Xn!n5$5aXGEYy{~PxHHkl!~oLVo63F7U{y_OGsQ^_Jc_`|Tzb+x^|a9u0SXl)sqy{=45!+H`_ne76k z8>~(4nKtpXhFjlANzW=a$&~Wvrl+{&xOaKCT$$L0Y#a>wp?B zIFF1|$YoRPE13WiN;WaTS*L3q%tTEnTLi;o+w-o~NJ*0*o;%W&Ja9s`zZnSG@RO2b zv9AlJYMy(QH;$tK?P_u%a?#h*)4Am+V=f$`BVKw-il{a*YJHl#2S)PBd4Hm$O(E{;R;sHgl0H}PG2Cy;llz!o*nZXPD!=@*qsmWcV( z4TndrFJqqyzNoG3c`7C)H@&~7w}MLa{E!K)$JxgmcUudG+=E79wH8dlaylsPBSOC# zF2#y`>Vq1t{<1WoNogQ#4t(DPe?OOP221 zZCO}HAXl86qDIu}YVM-M6>AhJ#}f;U^@Nd}5pDi~IOtA>uOg08x-=)hMlrt6i+$f* z0oydkrS87ff@T>5;7H`Z`Dprsb~#^4>W99pw|~mZxXjhV+J`~n3_(r!6mU4|>PgVz z?%TSoDE~$TjdIs)Q7&AwYuwBwad%Kv*m#V2YnhmOa18JlxC))EL5wo5xC-%=Oh80n zB^-4Qz`TXf#_&KuL?C0W>oSqCx5NUc3<#w5*Ovgc2{3(V0VNNZyDD8T2gl`AcbP5m z?{a2-vVb~s*FO-=B=XBlZ_NTu!%@slZ6nQSWqh3$9(0T$sy_8@wC zD{)V+6Q>_@&~5Xm-~lt?vFQxAqT4n^AzXR;Lzncl{t&$P?UnR2I z{1-KNTY1FxVt~O)1;Qkg*$e69t5Y7tGU|v{jTzVt=0L79)M7P6yYwU0OBmSISVK5+y}qV5_CD-I zW67b{5^q{kC^hl<92NAGEY)M=E)qv2=#$V2|f`k&LS*1pJ z1$ENglkkaTo=R)J5>29>N~OL zr$T%Uct)m`I#}(Lb*y(=hk?tIa4MNb%9zc9#SAum%m!|mthD6*VRVMAc=i2?A7)a=^awxkn&bON6AaV`r)Te7N^6Bz*hy#Y5Meg`nF8n zh8iX-a9{j9OZ{%;yN2C8%j(??HaqJB^L6Fxn8#%4`$dI&8b{^=dl0pn@9u(@tn953 znkr49%w&yODC%5^N+~BX6b5?`KGsZSJx8fo_>&JA|}!npP(Nn(!yuN zC_yB(FtM4mF~D{Mx(;-Gkg3adgo&;X`}Nti#;X{SRl0BSCdbbxA(J4!X2nAC5)?hl ze2gdbfJBC({(%=KvrgRYqd6j!!QZ1h#M2&Q(NmuQbKUb^if1|=XhSt6DL5EHUnD5Z zk>r`9mqHb$bRKoX5y664O}aq>N4`G_KkC0jVgb1s+hn={7!2LY3M27XbHe*QnXX-E zq#4ya6G%K-r&8OKkfMgEu#D(w4cDZR@_B5n04V1uHffQH-RRbG%!ehGEL;9$XU0iT z^@P-g#46e}o2*?a?$y|W!1<}jVLi5L6qd@d?Eca6VB2#3wQP|sTWV)jE4a?YV%qaI zQ``LOX*n+$<|SBuJFvxUuo_^C@3NAGlq^~S)qZIwgaJLWW%*i zrg%WV-w>FQ)nl`eRc*&Usqgi3tSBUeO5fplMnCbx$0_M2Dyv)UO2JM8I3M4?SpV>8 zw{$kV#^l6X>fi(Zdu7??xurq{(!C2ZOF(Q}kFq&sf;x8YS9H zRto6Rh`sxzXu1`JsZV2x1ZL&k&b?I)vS}@!eL{ZZzFnZYJ+>27Q7iN$XVG0yw=g1G z&?(`Z_MSpYmkV^LOwYZFDK!jaLIi@)#wmf-IWqrx!MwOe&N|7aH34nF#d~t4e7XlXel6ljxbA9ibz#kB6VS~$gmihP3 zaYvuucNp-zWEgq(VWlBM*gu2OjpXsm!QplN;^@TmQsa%Sr>wWDdiF|_n~ax>vC|Q& z>pm-@%YLHiEEmGsE@aBJ#%6hvOVHDS=P4#?NIHKV?Q~VHajwjVuOZ_c6nvF5St4P? z#sbh3=q#=PuSJ4!ULP-!f_>72#A{MHrH7VaXRdzb0$w7OyLQkeJW-ilO;kNs{tFos)pB_{~ex5Rrg-e?9D zETB;ufYQ{X+Sq2(x8DGZ4vM$JHi0yY4NzEYL~Wb*RHi|d@n|X=xce(({`%WnGKQ$K z^s6}BBf^s$B9tlBJ0nd?eCOggg4{BPvvcO9EE49J<4We`I}qktsgembvvxYo@{R*w zN#<9lBdnSDm>&ZUUZAeCl&6r*Z0O@BcoE1yeOwl2s%FXHtW|kSZW;~qUcma`xG&xx&Y2je*?aEe)^X$qVktQDT z2psLQ)#TLG75B(c)>ZC$e$)OYe0(Ggv#!$EyEXBoce?w@U6&2A@^jQU1%QNA_=PbUX{NRBvvcClgvq_06kD;cwZs#O-y-rR3Y6#!v^gHzts|A< zeHRW`(P$gA2q3Y=Ge|=}Zb_84B_G6_Pu;4Y>V$2Ta0PiKoWR@s^O!!)ZU%U+k&23% zhP;UkWKbl?sDX&l3$-gf-ZA4DOBJ1 z{>;AoBzoAW$_>0HUgbkVl{%O92^I&tw)Utg*2qrC`CdqIZ6e1;?5O2aN2 zD~al!TQCH^C7wLFTVI!3nG98;H*Db2Hc^UJX7eQEC;>RG-B}wjSd8#GO&nU3`x ziMNF>mFZhGorLXMS=bb=EtW*)CE?=M>eeD*g_@?g$pOVig%6 zSMt_IT|+k|m3YEu_mD5Sd4amT5{ER%8Q?m`+N8d9LSti;wVqD8h{{e3K3Daw+^RO4 zQAZh-iMa8YVj0~uVWOJs4n=mp{f`o<7E-x@_8Ra-rfMaZVwuB*y>8SFMIFbag=Vxp zjZ3ZIehp(`Q)5XV!9g8=-LW){xj%rsuoRG)FZ+5i2+T~Hvn1|64e0W*C{b>R#A^t1pgFNr$GLtOD$~uJ zu&gk9C(EQHakt*|EB|7cYMLzXourXn7#Yixr-2OoEzGvd^`CH8qohaQPp<_PNmCt= zY=<4hf8U5)DGX&xO8mYcbFl8WxfDH)`6%6xH}d-M2}`85Ss=JHPqTLB7IXUeG`A6J&w%;Ugf@yjme*|@~ zxB~ptO-n-y71Z-AIKqFuu4JDk;rIlPxu`%HHrG&cXwLODvfJ7?40ct7*>nCzgL4IF zO=IJrb!@Z;y-ubOZ&zlimGZSfi-As>sG$I=%1lf4y3r2w0Puq537x`wC&Lu2Oy&e&g&=xmlxrGNoT;o!N3Tn4E!zaxOPO)n+2 zB_%(ai}442Ke(Ho;bByRKEz49|>bMwTN z5d9gc&%bqi84A8h>b~eLE^4PmP$LDcDlVvfl^jn3{mzv=)Fm)tm@S9xPH|(p5Xlr| z6a{QNdaFeGCByB1ZxL1?(OpB8yVJ{cL2%i1WYRf6;rx3m#u{;nSKdC8Z<6 zDgV)aM}DWE_f1#DcJQfZXNGWB$V1Vpcxm51AR4ss-SgRzj>PXl0lV)e4j+X=dJ4Jj z;+{_W@ec<@ug4mP?PD5$3=(_Q^0Bb#Z`PL_85;%&Ry6>~$NO$u*hoF9$-@hje>D&A zlcj*xYz>Yz;F2v;@zinmHxc>OaLbjYUIEMo0u*cN^*QBIH@bl`&Oz{KD(O{sfGs9W z(RAdxQ(nq0`pz5=>@Xelk{#);uQXkS`Rg~m+B#I0(_eU-{-ZQm$?g@tv;r9MDAL$P z-$#Pq!$-Z6zU3`TxCk?cAYhhpl?#;v+EWkEp3Yr0)A;a5&Prqf7GA|k zw&U?$+aCb_j?ZpnHfg6`xQTa(1uO}=z;)tFUwbRVyE9t1)~7s+p1|Ru>w@T?D=Hn4 z-A_&Jh4*cpp>H)Yk&!B?X3#ypbW^V5EvaTG%E=2OIEY_x6kI;N%< ziw@M0Xa#~)*-&G^ytNb{M494KmjWS?IB6@*LM5z8RZjXPzO~HA5+1;Nf&d=Q)nA`} zlsRR(kQzS7bVl`#SBz)INTMZcLuL^TL9!o@G$^w{cg0#5tyy^{jU?M~DKgVrKwnU4 z!4D*~Zq;)NH~tD*e7b+)~r3jG|- zrl3c1fIKe=R&%qfym-Z9ch~Zjfi)}H&})CQqTsp|v{(tj?aJcLs_cB-UN?)*Q^U?p zZ`xwr-_`7uwWgx(zBk8i|IAhYDOWGA`VlJe4N37K%{Xrq^~LQEd(Z9Q_9xWp7=12PK++on1-w3=4Ce*Vay{s zaS`T#59DKDQq>I$9C?T)V|(f_Ei9(vNdmJapu52b@;(b$cg-||wdhl8ZmppC&2EH1 zim;^NgVqO*^i3ppWhi9$mz$=&K<&|%fG8$K$7>4?Gy{37p$^?xe6JY#1#|S-I&t@j z3qpUvU-V`d-IBDzOax%jBFrOkooad_??G&B-~G~e#avEcYWsbS<CI5>?(rUXzY4(lE;Y9%axcf&jl?dsPKt?ijWkdu5{rboxdgo2NFuscMP3xBp!WP9Q?_K*643l4EK@>_QCpvHim0P@3$f46d!)8k^f1 ze*cjKnLbln71NEz)bqUR#B4(|r@WY5gF!cA{cdX^HSQ6CoQFq5O{TPI0XLbZ_W0~Z zjSS+-p2U@9vniWalcnT#8|zN76jY8I>BQ9+`^)LGO>|Utu`Z+b)@|lCh~|H5s#bT= zQ`+b==N?*{*rdG(r%wE67yy-MTXbmTg)g(@^sH_*LETnm&j4nk3~mQ|q9cu!r}imt-#TZQ-0Z zAg){hA+(D53|sS(bu)C65{L|tVCIVS*)&o1ys54l_o{6q-viW;lA1@yLZWuw8OX=`s%tO@UcI~t_(b# zx^)CIwC36sc=k5K&5q}H&)irv-Y?>8>!}`p-govZ{lh9W_Ty`3jqZEAmDIL23(KCeiq3*hlXFG& zx5O`S6+D*7NQ=N(@n!%g%RsDZJwfJ6_`sd!#;h%~!cb_rKcMkF7ot0Ynw%UbqDjvUB$o(zL zHk;*qH=teWL??0I<8(bU^mL45`z`)<9u0qpiVm=@P^*{uuPFo#+n-CukJRieRq;wGo5z&ae~@@68FwYDR+i&GIDn>JNA@9 zD;Op?Gxc!KhKrKz(<8a4w8Fxdp2aOla?bbZ;m9;Q-4fI4^^U^8u_MgCt~lZ?53#_805;C^#Pi|@kw4UYVsY+*BkX)%uB(r+j*f%>rZ=M z|E8HtDT)mIL4o)jDiGoPIhM@&r`v+y&omi7D__aWg{W+F@HRE*(SiH3?ZW3r4%t)Z zgcVBoHugF(ILW}rJoxL1P$d^eMs_dS5CH=;-j%$4e|=`NC?YL4rf8Tg`8FL~1JpgnuyPB#!t`*@)3_ zV|E=ywuA81+}{&KEfy~`9Sy`}k$5}5tk)?c6(=I(fq~8;R2L6}Hg%SP4>{P4G_7KI zCS{2u9?+Q5Ey1E_n`t^z6YUW(TNQK&m9y8d)tQtm7m)o zV7#$2Gtm_eq1GdBauD*yGy2SX_v~D&j7MgtHqS3%(#iP=@ag)QQJ1JbJ>>q|$M3q1 zY)#|c`i8oL_`@=tPJip)WNyEkEI?%XobB7$uwUY#zR%ne|E`cz=Ajb{iEsQv!4@M; zjxX?{V8A$aKfWYHeT>U^iPvAYmJS39mZa%y(DTcr+Op)@li$3jtd9Wjl?qzR-CvXB zpM4!z#tYR^&$VHq&MkX{uvjkdo{m>rUy&)z;KX?LXiD?F)wkQ3DZal@zkqF_GxZI~ z{XpQd^RkGuTHV{L_Aq~GJN)30oLNn+odJ?N&slO3YqMvrfUw!y$4Xp&*6j@73_nL8 z5O$tbXwn8f-Z)z0^4`rm%$ps64S2R(F0kXsh6t%A4X%Kh1pXXTDPTN;QO56u2E->Q z<+t<2ym>;G6PKF?QU&mrB-7dg&hY^!5OWJo#UrleQjkEwYqRROgNw&krKv&9X|v^H z7)658?RyLghX&EVesG<^_KRMmFNm`J(7~Q4zAKox8;})w$@gY|7WU~AFYRYJ)5qLS z{EySJW3JRzxHS6vr~FrUMY>$xg|lYXN%g7FqhOY%we2Z^Dn&)9Gt0y7u` zge51%$OT+4a@ZAYdn(E&BVWw5uv3BHHSzzEw;kjaO7KJR=D6zM?}6d`xz8Djk>847 zt?^QF3eV%8&#l&UdB`jB^oFvYyc_JFP4@al_Vr#x)x7^%7|orE$xTbfag=>NY6-T+ zlEEX)Up;$=#z4kvD6B&@3nSBpNu5Y0dn*4^m)V*?Vl1V&ue?g!%8wt*|K02L^Kd5$ z;vyJ?>At2$LP=q@LMYJ>eCMq@4$E5|ZKk=V&_lg+HrpZVGg#4cqBHoM^lfGbeZ^DP z_44nUk57JzR||Mi&%gi9HulZc;ML62uP>Z;oyXgz$n0|OxxN}kuikB1*vr5>M!3=` zBvwUfozN41On)?dQN(&Xv9Xs;HR+`2zQTbyWIoBYW%1+BZ$*z=Dhj5B7}%bdoJX}S zpUZXqY)EG#PBi%%XW&|@Y~tNU$HJ01?V6|(L~OFKNV8dkv(Jz&RApsG;$tcDD|eje zBr_fO*zp>2Xq(({rmd}}Y|X9(bSa>t~@I z|1%vko_&)l{l+gl33)a!s4;k{GIWVv!w038Tb9hTtIf-$Et_HN?Vl&Kqj3Km)vujW z_w2Wf)zhqrMNgMoZxxgSEv=G!w#3mg-?XC@G;xId8>_G6`V9Q${R~VD>gW`y9(I}Y zzLgc+MeOfQbtADpJEI$Wu+bmM2Uui}x{YjL74c|B8^-yopMXr57BBn$~%6A&9 z4-r;x?Xa9as>4%tU%#>8ydLZt3gbdbMUYc-(tUnVJm;U>V%??sy42&7yGg zLMi0Yep~Dg&AGis6gc?#jm&Z|_B7pJ73r zu!MjzSry>5&Umobv*YZU$uLQ2Hee9%_NyttK`C9b& z>BIkrskaVmx_#sRu@yz7rKMq%#OP3(QNlI`jJPF*(cRnzEzLki$%w&5NH?f-OAMq% za@3?7p55Q)cl?g$^VjzIXWQ}Fd0y9bp6~bTtol$KFZ*k8f>0(ORbi$VsuC*1*^+h^ zlNY``J+dGVyuXvz>&rQuSR+I#KDJwG7tN-<6y`3OjS=bw*-AMAF!THi?i{U4bF({r z=R@OT)PMUWR+e4aizndaG%%&H{jhfm6N8u&{kMvXgCTf%;PQynpPlDzaGUu*!*cO+ zo`=_Dl$(7qjVqpw9$<+-v@@$ymYy8FUcj{Z9`zB}8zb!0|ori@1NR`QJo)W~FruJTU#~11O;>hOqj) z)x~&aFne3K1|S}lv&H?kWT=h(JXNJ((!*wqAeaduI}@{?nM;0EMHaxa9(WrQ=VU$7 zg|z5E@40Fs6bMWOpVy~L^~Q&EID>%f4ey;@pSD!Gr)fSN6*cEfG%xU~@YP^7UMfq* z3YZm@LE_~<&m|UcUz0_yVgq``8#q>&e#0bomcENJ^+24ug@c;aSJIlk)qRQPsjvxb z0&M}a?-*q{VxvBKY&my7_}*i$zTXX;(`ohgIp=kgMKa9|w`gtx$~$@>NzePnef=JS z%%Y4($h2vC!csf{PW!tzFyz(`DDrqlU-SCWj{E>cf7qvY%6-*fdi(xw)s^2uuS1Is zbaQuo6#i8MWqSN&ObSY#Q5|MJ*Ltelv2*gSe8ux!C&rA4gTvmMO82ZOlEQURhT>3K z@&QW^u6R!C+rP^%ycB z0fOL<>9>UWw(N#=9R=CzZm8V(oTck1@`Y4{tRpD}QkmRkAG*8JQgX?%wL)aEbBV9X>@Y!{ygX8 zHrKr62uiA{qig_Fnmj6iKs@+xE3=7UgPuYhjspvsbdZv{CZpnSumJc<2tO}cE)2K) zyuu9Ge`z9f5xOBY#FHirx$==nFFGy$Uf0QI9J$6jibo=Dekqji5M`E(W zz%kBF&_k*-jwnskIIf%CU~|g2CVOCfm>O<*ufe;K?Xp|CJLF0O!`&Jfa@%+QnrwWO z&3|{HZEB0NmDB`&0=EVC`vhN#50B{B?`JEm?=`r{tH4co^IRsnq-NEtPV|-i=iLvH zzb?8ng3_pIVOj73aMd+g{h!&8pwvaeDPn)vY5zOJ*weGQEBqCEO~R*rL5+I=E_Og% zgF3grlUte2xO{0*0@8pT24ycuPN!T;D9ZLwQw_5jWp29Y;Q+mhmu5sROZ9npfc;bG zoN!zk#$d5m?n92-b?@AencYEu3$!|Gt$JF2W(r;WHiVoPeeS~|#U^WtuvfZ{j!QhqN_#8-U6Y7E9=#qHlI*17YH*;X&7MmJ|m?{SHy6#!|qH}yK2 zP>I`Swfc8oplY~NgT+F{T*3O3H9(>Wv3SgU{>dBhw>N zv*s$aGQ95gP&x48do=oYx*2cB-9J{x<=@h1jj}CRR?KQ18&Fu0>_#g-e>oc0RWy7j!2vlwEVRxRdZdFf&i5LmtMAjfp3v!;L{foxq+aF7L zkkZ{G=ewch0bJIUs(uNkAt*K|+oIE1HL~cGlDVkO)qdyqL}O2YYpzA~)FY>r^(wZ~ zZpXqZjBnL_xbarNv+=(!5B-F?h5&xyrLB&#fdhqQbUWHZs0H_Uk;@C7hYsCS}0|ul5cnzmz7pF=pCTnoa^yFJ0-HK}OO@8@x_H=M+U}|H2cE;NLeI)R z6kJ&4Rs?gNe{0F>`*A6}!Cbfix@#z26!U9cCYiw%82Hq|^Cu-;#@&4=Vi`Q>G&_kp zeO1bNL(EKDSvB=D`e0V9x1#@>51=CKZ5aQI>&>&708glBCDV3998xrUDM`$Uihyt{ z)W|KpaLB$qj}1?bZdDu`O1)x-tYkICCe3w_{N!z{&dt1!S2K0^{Zf{H?y74EHZM;f z-c!km^yMhsg^Yi}UfT3vAMGzYJuowHFQ=$1+toqRhKlTAn&&FbhLZ<4%TfbG&MZ zMCAK_%t=S>yW0nPraD?V;2UIV1d>HMT9Mg{o3?a+q7=Z51YtUV9^C7>Gs93u8{CwW`w~3KVn0TzVrNA@g~f1{{~T8{3+82z%)IhKVdfbnj1v=3K)7V1Flt=UzENAl$PSGa)mMU{1|$p^7a=L`8pleFygQ zQFa?0U$@b+`p+NXttxhmKTZ~TXw`rpB4;VIq}(1lKGx7rr1?rG+7X!!Jt2#H)9ow4 z#c8qKdfUN8SGTFD%eoo+^jQ#sDY1WPuyBoyN_3!WwiXD;h?Z$SHmpSH@G$`)MQxN3 z;MiC0j=T!z16p1~y+?envWwuxk?JORRk3tfPL#ABHBvnZ!`ytk8{u&*GX1g0&;6QA zjl>?2bK!fRy452SB)@;AUE+gLp=GZ4#WV>QD- zYO=?Pi5{_&ETxj;VuGM||Nf@}RfMP@n1f5|ZKSCxGLNwDwH?ZLSuknS;V0|lGe|n{ zwh9<1_3np2aWxk69_hi}xU0~_aIUN8H)Pf|`o7HS5t4lVZQIShw|$M(f^oO87Q&>{ zkgvb9cDHucAgdKq*1)g0d!`Z5(7%Z^VIgBB<{!SDJrO;_nqb# zrx8LooAG2D`w2@@OZ4K&`>c0_aip4^grzWQ zD{gc_F4gra>!Aa6B3xAYzN2kCW3o3Dj8D*EO}Gd!XvLfCu*RPPFW}bl)_Uy#p|u?Z zz6pZAHDQ)wbgcC94$r&uMp8B@sB$Xkul(O!P?e&eM!k9Io1$H3 z2QydO*JS*%+VAKxB% z6+W{s+opk7U8YpoNdIn5DbFBgP{l6HB(;T-J0@j>XUI2xU{<=a0qsm*&T0L7UUWZ_ zJx6{embUkBW-4?Z5z|qBa^)H8*0HG#6A~VQU6WOV<<@mC(ILA(sT$;JcaF6^ZKmfI zLj9at1K1Jdw@avMxPo;rV$yM%9#Gm!J@Lupma=K%lY3MB!aE?8SzZl~7YUmZnJT8OwMdQvXT6p4I zi8EoJ360SCbFLv1ZgWRmWk4%7c$T*DgZxL<)Cx+HVD*v&OQRSI9#bb>pU-US4|HELS~`R(?pJ%rlq^31{P~r>{;LKGhDROTvPN; z1>|{TFc0ZWpm$3bBNqEDt$%>S3j41@!*|KRP+OKiGWxGDsEj8Mrww!0J1zR@lWvqw zmy{y|`H%QX=Xi9D+cjACAv-LGxDmoI7?XNPWa;nyI;D}S2b*8-_L^yb8ASY zghx-Lf7_zN({o!~T)I+5%Q|p*8h7F51QLtJp9{dIKG}m@%6f?l&t17)NSnhWs5@F< zM1GE?HIr~fE&tfz=RzWj%}$(YD(=}Na09>NqF>bV=)izhLdTlAikgx#WWV)DcQ_(I zDOwW!h8o0cOYwtTLQkubmxI)#d@m1)%uKeKy4Q$S?vP`oo^d5#VU_M?cy_LnZoAk2}F9|w-|!r#XaFEH2aj<#)Ax&fZGpZ>XEm4 zZXFEYT+LRVNc9Nke{fJq3lfSWe{Tc5^N5Q2Pr}3S@dqZFjO``oFscQ;Pu$eV)3KmyGTnlJqqEYDHP=y$`;)xBtAVe_Dm;bf@#aqF*a*gwgbcegP#Js>%d9_nMSeX(<0F-%ur>$GSu)j_LyuY_Q}4v=w)Y z!a7hIP_I8+ijx2t`M446)YLg#I;72m5&53khcKBX z*X*#beC~>hKg^FK>(?}AdjRL#se~IC2AlOq|5Blgz7@MXw$M}|6CZAK*Y$hXbt47L zuZN|q0~mjwT4?)6RNs+k@dx6Vu3mv%lS|@YVte2f2sSRx`*~&w$^Y8o8JgAAxU0TeW*l8Q2d~Hs-*kVg&xy=#=)W)4J_m@gkvXf+N`O%rekmS)UZ@Y@Gwn z&Kmq1#xb1W29IU+t7vwjA1d;*OHbw}!;FE{-(%K~p4uYnF zVHjR8?2{PHcoN;~9xxvUsFs*#u=n6q*Jtp3Ze0gGivD?(gfw=R<=3yWA{*4E293&_ zJ+G*ird(`c zeNHy^iNQAQf8YqR8(lZTi)z*Fo&kkZ4v|j}L{zfK)P&RRAt5lKu)qew6sOk+NBaqQgRMRh zF0kdq`D4#^oDZ7RCyBG#j;$M4awl-qcqEMi2wl+oQ7dYg=+6BQ`TpE;@Stlf{s`PW>>~ z%Xm+-vUTV6S@hZif*-2IQez(|UI3MUy}pxQ9-ky*5l1v1_h1DiQmd8>A%7I}X{Rxv z299{Gz&mG%8anzc#8S~D83?v^oNk+rW-06Wr8zOAK5B~7J)W z-307Q0W&fM)OaNAwKe#=`(ml>xd$m>);(8p++L>xKC)TtY%Q=Y(2ux$AkCLh;$1l#^V>i`k6#LW$#` zvuLCSunY!_n+ZKafYgf%PTa}>#Yxjj(a?Cw7lu)6r@<%a3;JKw5lsXCE zi)@w|tqE2-^pr7>vVS)wm<`s47>%o!k4HwY%;|KHl%{SQIGYlv1`w>bk?#X-kvmf0 z83NSc3z;WshUe((Cr>`0qhVMfxkQi5#D{tDoH3&dwyqKZn2Lv3i$q7Je$z#{@f_dv zT08p(z4VDV$S*D{PYsX1Vp2GJ9V!kEITUZ{(mUhl(Xd-= zSr~41SWR)$G;mv~{~O%GZi+Fd?{-_HT1KbA)1tptXf^12hx{h-H*!!aqw!ShRx5@M|4ywzSO;l(*kK z384~@u5zl^nZWQmwmrI0FcMeWU-29IX`1j?Izb*rZ+i19xNDPbHpLF>T0{ts6s21 zo>N7)$R4iR{WZ_dU!82`-H%`YJbL>3KR^r#3-lkMi?o&d-j)9JJ&LaT(Z3H~-+4h| z&p5m^jeK49lKkZ(#Rrng<`QA59@GRI`At)4bLIThr~LUmHXk^Yne*$O0s_Cqi1+n1 zJV>VX7MTSgok2S)Tu|ZVd-UBm@U%=_rb6T^Hf|v@GD%AbID=ny-y!Ix_lDl`VO-SI zxd{_3QuHsHku(Jo`rMuDm>{cp8Lh7%FnGvVg*H@nXP< zk}G6IF zuh*vaZGJe)Dw8JX2!MLN*!z!JaK69OMubb*qGSy%R0b$kCJ|LCk`8@NI@T;YvQ+vJ zfW*RuzSc>_^fTXuhJ2&0;{c0jr?Fh^?+;i#r+ou+2>h?yD+Qpiv|r&hxT#0D=Vl%= zES+H-$N>M#k7o~L(0+{P#Fe|7?XTC^hW%Am_}{91nLMy}-I9!BAW6cyWqoT7Q>U)b z=qz)QURy=pNcfet3#;9N6$cfzXyjS<#_G0t&f^)BPhR-NUfC^ojM= z33Jrx8O(374Kp`)=vMcQ%BbrnTP{~uBz$UR`q{VvRm{zI)b}5|r7|%QR|;6I`@BTa zmuNPSSk%1I9gy>H28oHK-!`AWq6=R~pEUeC9sNpIh5YXAqA&jeU&u(XvH$9FBtpzx zMw@%jZdrd4IXDh;y)SVw1bdp+%$)aUT6Qb1Srj(uUo9XfeQ6i=yX;FUIj zp#;T^1M#0LEQP6zAiD~x^r9r~O_@{Aoa4+@BysMy=DH;sh0tY&NDLZjJTw@B5(AOL zp(oKxL8{b@S2fT}7aAv3XQt<%Sn2+b^#2!>Mj{^F{5PKjLHbxkiq!whMtU-gmk&cq zgfYWYz3ek`s3t89dvvwP`>d>yp&1o@VQ@&uwihT`rRHqNJmJ-^OW4WG`gFM-Hw+>S~DeI)~Z@9|#r z<5==Ya*KJVBZ`*7D_K%=brECWmiDy;y(n@ZOMCAL{rIfBbAWx(>d(KqtmkU9@-8TQ zhuG$Gi>6D6!vs!fx05-kr;+nLFjcGd14Hq!<%opd<3(Ori?FwoUNO{YM!EHa!))1z z;Wb&Q$YGoG!OxZc^+v_)x;?zE7fm0@_HRz;S%6v+11vUCrn^8aqb66jE~T0Vn=y9i zz}2=W;Le3K?xX4uOwYVh>MFTESXgJXbQIO89|1O00F;^fOw0+}&v|P4JXX3UTT~co zp<1Lh9P=MCr(n(yH1RY!b4Hl&Gae3Il6Yazp*xNo1W-@#y>s((Ofy3IRjDH|D!iho zt8Sx4qV8CiH>%$B9!EFe+j77gtI+)H-QuLok~mi7ROx(Ox0Z4ZPc>KnyON7wndRpF zh7oCEZ)_|~_m$YF7QtKhs`#qwe4(XisSbhk=0w(1_Z8uP=*{J9%N&oXo|Xg76UvSi;j zHoi2Q5~~2u>#F#|v4etDG9;APA+l$#rmdRTQWWV`JJaq+iC40E_|Ko)UyP@-Kfq+? zi8qUxzhI$`t}hm{pm}VVN53hxBo6#_J}Equb{LY0?&x*Luw*6kJMeldOy3z)Mvp<|&T4%3r(_yiyd`#B6(&jpn-md$9ZEAgZxZRJ=bl6xyn})6g=sInR#1cEk&2A zTc_9eOdU|XkGHo-+&4sv#mhQ3rd5|B^M`3U%gA4e5@p%W&u9IV3k5gBw!3y5R~{#J zh3M1Az-vmx6eY{bW%JCc^a}1u1U3MG}r{Pq^j zjSIWHwbzmr=7k+VHIKRi`ndbB!8S76qn+}AVhO`*scj^9fho>1Xb*&nbl2Rh++fh-6nR&V~Z75su z;->YX%#g$b#9wEBrdAV%;KrB5x_Wa)Xa1peMH3`6*MVB;Qr(UMY?*$!Z-%ykMV4dI zyt>zD`HTG{EF~M~{(sky%n1k1yUJSI>Y#tWsKtMBVI# zRDwvK_MGm!vN7L1PA<`9qnJ+sWD3B^jKAFz(uRG9J@&=&P?nwzvHw+i(27-!Z6b+w zcCyhRP3M#$bq)lw2=8&psdr5#)qE5$ zA|kIA@(?z6HJt3cxZzY5q?g-X%|tS^zH5JaO_unp-Y(g?{N2)0_(=Q2AW5nD#nib| z?fnN*T3wffhjNkR9JP|#wQ!20@SmEs22M^ADGc3lrTjZ-apGevHF&C-k}Wgt)m)o0 z-}5FRkri9ZlS&|mY?cC&vQ$-6O_#G`G-8{De`&m8mbDGo;i!a1t zb_Uu@C8u$11X5Yejk+>;WTxrN()uV2r3`$RY*?h!vN*g$hAt}Q` zl1pP3)MJG0|I#bS{+)KGoff!dqyE$FLa4#qB12a^4a|N?55!>jq`ecmdh%Q%f5#@O z58wZcf*-#w^tT(Uc0Tqz&&n-|BW;;unX$wjw1yIqm8tsRZl8P3mu&Scu2JDCz{

H<*td&Gx(iJ8T!}OlnFY$8* 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 Ne)U^;y7+%j{Xgop;DrDH literal 0 HcmV?d00001 diff --git a/chapter41_images/butterfly_grey.jpg b/chapter41_images/butterfly_grey.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f416524f713780a82e8635f8869dbe4842d07fc6 GIT binary patch literal 60344 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 z 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 literal 0 HcmV?d00001 diff --git a/chapter41_images/cropping.py b/chapter41_images/cropping.py new file mode 100644 index 0000000..7eb5883 --- /dev/null +++ b/chapter41_images/cropping.py @@ -0,0 +1,12 @@ +# cropping.py + +from PIL import Image + + +def crop_image(path, cropped_path): + image = Image.open(path) + cropped = image.crop((40, 590, 979, 1500)) + cropped.save(cropped_path) + +if __name__ == '__main__': + crop_image('ducks.jpg', 'ducks_cropped.jpg') \ No newline at end of file diff --git a/chapter41_images/ducks.jpg b/chapter41_images/ducks.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86837a1fac811b6196e6426fb47cb7f31e1e0acf GIT binary patch literal 527791 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

30%Z844hsr@cnKw^f^^3Lq&a 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

-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�N`;WC+dDqU0N%?YdQ#m_cEQYx? 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 b9Ca0keK84=IvUfB*u=c{6|!%aQV;*xl$Zcm literal 0 HcmV?d00001 diff --git a/chapter41_images/get_histogram.py b/chapter41_images/get_histogram.py new file mode 100644 index 0000000..32964ab --- /dev/null +++ b/chapter41_images/get_histogram.py @@ -0,0 +1,16 @@ +# get_histrogram.py + +import matplotlib.pyplot as plt + +from PIL import Image + + +def get_image_histrogram(path): + image = Image.open(path) + histogram = image.histogram() + plt.hist(histogram, bins=len(histogram)) + plt.xlabel('Histogram') + plt.show() + +if __name__ == '__main__': + get_image_histrogram('butterfly.jpg') \ No newline at end of file diff --git a/chapter41_images/get_image_info.py b/chapter41_images/get_image_info.py new file mode 100644 index 0000000..1b6736f --- /dev/null +++ b/chapter41_images/get_image_info.py @@ -0,0 +1,12 @@ +# get_image_info.py + +from PIL import Image + +def get_image_info(path): + image = Image.open(path) + print(f'This image is {image.width} x {image.height}') + exif = image._getexif() + print(exif) + +if __name__ == '__main__': + get_image_info('ducks.jpg') \ No newline at end of file diff --git a/chapter41_images/jellyfish.jpg b/chapter41_images/jellyfish.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3cee85efb69ada57a24aa80de88f96682dcac677 GIT binary patch literal 842158 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%0APlJc;>s73Eh3XFP3`qQW7R2beixC3 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

9W~Ngb}df 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�#4(}s(P(T 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