├── .gitignore
├── .htaccess
├── README.md
├── autbordotcom
├── 3
│ ├── allmycats1
│ │ └── index.html
│ ├── allmycats2
│ │ └── index.html
│ ├── bdaydb
│ │ └── index.html
│ ├── boxprint
│ │ └── index.html
│ ├── chessboard.py
│ ├── goodfunc
│ │ └── index.html
│ ├── localglobalsamename
│ │ └── index.html
│ ├── mypets
│ │ └── index.html
│ └── setdefault
│ │ └── index.html
├── .htaccess
├── DNA_lecture.mp3
├── Recursion_Chapter1.pdf
├── abcdcallstack
│ └── index.html
├── addingloop
│ └── index.html
├── addingloopfixed
│ └── index.html
├── alarm.wav
├── allmycats1
│ └── index.html
├── allmycats2
│ └── index.html
├── bdaydb
│ └── index.html
├── blocks
│ └── index.html
├── boxprint
│ └── index.html
├── breadcrumbs
│ ├── agtd.html
│ ├── bidv.html
│ ├── cdzb.html
│ ├── cilu.html
│ ├── ciys.html
│ ├── cqgh.html
│ ├── ctlc.html
│ ├── cucg.html
│ ├── cwnl.html
│ ├── dbaq.html
│ ├── ddey.html
│ ├── dwax.html
│ ├── ebax.html
│ ├── elqp.html
│ ├── elwm.html
│ ├── ephu.html
│ ├── epty.html
│ ├── eqvk.html
│ ├── ewzm.html
│ ├── fgdo.html
│ ├── generate_breadcrumbs.py
│ ├── gvxe.html
│ ├── gxps.html
│ ├── gzif.html
│ ├── hdey.html
│ ├── hjul.html
│ ├── hjxq.html
│ ├── hmxu.html
│ ├── hwrv.html
│ ├── iiwg.html
│ ├── index.html
│ ├── iolj.html
│ ├── ipvp.html
│ ├── iual.html
│ ├── izeu.html
│ ├── izoc.html
│ ├── jcib.html
│ ├── jdzb.html
│ ├── jjbi.html
│ ├── jmks.html
│ ├── jtue.html
│ ├── kkde.html
│ ├── kpfm.html
│ ├── kvfb.html
│ ├── lode.html
│ ├── lsae.html
│ ├── lsap.html
│ ├── lxtc.html
│ ├── lymd.html
│ ├── mbfk.html
│ ├── mjow.html
│ ├── mjrj.html
│ ├── mxry.html
│ ├── nupz.html
│ ├── nvzu.html
│ ├── nxnt.html
│ ├── nyey.html
│ ├── oial.html
│ ├── pswl.html
│ ├── qgdo.html
│ ├── rbcd.html
│ ├── rbvf.html
│ ├── remi.html
│ ├── royr.html
│ ├── rrwk.html
│ ├── ryby.html
│ ├── scsf.html
│ ├── sjfd.html
│ ├── tcpq.html
│ ├── tdhj.html
│ ├── tmqs.html
│ ├── twif.html
│ ├── uafo.html
│ ├── ukpn.html
│ ├── uqck.html
│ ├── usut.html
│ ├── uzet.html
│ ├── vaae.html
│ ├── vsvo.html
│ ├── vtfy.html
│ ├── vtnl.html
│ ├── vwja.html
│ ├── wmlp.html
│ ├── wogm.html
│ ├── wwqj.html
│ ├── wzhn.html
│ ├── xayz.html
│ ├── xpys.html
│ ├── xqtj.html
│ ├── yczv.html
│ ├── yjzs.html
│ ├── ylrq.html
│ ├── yzom.html
│ ├── zddy.html
│ ├── zebr.html
│ ├── zejf.html
│ ├── znvq.html
│ ├── zpsf.html
│ ├── zrgr.html
│ ├── ztaj.html
│ └── zuto.html
├── catlogo.png
├── class
│ └── index.html
├── compareoop
│ ├── difflib.js
│ ├── diffview.css
│ ├── diffview.js
│ ├── dojo.js
│ └── index.html
├── convertlowercase
│ └── index.html
├── convertstringnumbers
│ └── index.html
├── copycopy1
│ └── index.html
├── copycopy2
│ └── index.html
├── copydeepcopy
│ └── index.html
├── deletingloop
│ └── index.html
├── deletingloopfixed
│ └── index.html
├── demo.docx
├── embeddedfrankenstein
│ ├── ads.html
│ ├── frankenstein.html
│ └── index.html
├── example.csv
├── example.xlsx
├── exampleWithHeader.csv
├── extractpdfimages.py
├── extractpdftext.py
├── fiveiterationsfor
│ └── index.html
├── fiveiterationswhile
│ └── index.html
├── fivetimes
│ └── index.html
├── fivetimesfor
│ └── index.html
├── fivetimeswhile
│ └── index.html
├── frankenstein.png
├── frankenstein_jpn.png
├── globalstatement
│ └── index.html
├── guessthenumber
│ └── index.html
├── guestpicnic.py
├── guestpicnic
│ └── index.html
├── guests.txt
├── hello.mp3
├── hello.wav
├── hellofunc
│ └── index.html
├── hellofunc2
│ └── index.html
├── hellojoe
│ └── index.html
├── hellopy
│ └── index.html
├── howmanyguests
│ └── index.html
├── index.html
├── iteratebackwards1
│ └── index.html
├── iteratebackwards2
│ └── index.html
├── listcopygotcha1
│ └── index.html
├── listcopygotcha2
│ └── index.html
├── littlekid
│ └── index.html
├── localglobalsamename
│ └── index.html
├── magic8ball
│ └── index.html
├── magic8ball2
│ └── index.html
├── mypets
│ └── index.html
├── ocr-example.png
├── otherlocalscopes
│ └── index.html
├── picnictable
│ └── index.html
├── pprint
│ └── index.html
├── printrandom
│ └── index.html
├── readglobal
│ └── index.html
├── resizeAndAddLogo.py
├── rj.txt
├── sameNameError
│ └── index.html
├── sameNameLocalGlobal
│ └── index.html
├── sandwich
│ └── index.html
├── sandwich2
│ └── index.html
├── setdefault
│ └── index.html
├── simplecountdown.py
├── spamintry
│ └── index.html
├── stoplight
│ └── index.html
├── stopwatch.py
├── threadNapDemo.py
├── threadedDownload_xkcd.py
├── tictactoe1
│ └── index.html
├── tictactoe2
│ └── index.html
├── tictactoe3
│ └── index.html
├── tryexceptzerodivide
│ └── index.html
├── validateinput
│ └── index.html
├── vampire
│ └── index.html
├── vampire2
│ └── index.html
├── wizcoinfull
│ └── index.html
├── wow_such_zophie_thumb.webp
├── yourname
│ └── index.html
├── yourname2
│ └── index.html
├── zerodivide
│ └── index.html
├── zophie.jpg
├── zophie2.jpg
└── zophie3.jpg
├── content
├── 2e
│ ├── appendixa
│ │ └── index.html
│ ├── appendixb
│ │ └── index.html
│ ├── appendixc
│ │ └── index.html
│ ├── automate2_website.css
│ ├── chapter0
│ │ └── index.html
│ ├── chapter1
│ │ └── index.html
│ ├── chapter10
│ │ └── index.html
│ ├── chapter11
│ │ └── index.html
│ ├── chapter12
│ │ └── index.html
│ ├── chapter13
│ │ └── index.html
│ ├── chapter14
│ │ └── index.html
│ ├── chapter15
│ │ └── index.html
│ ├── chapter16
│ │ └── index.html
│ ├── chapter17
│ │ └── index.html
│ ├── chapter18
│ │ └── index.html
│ ├── chapter19
│ │ └── index.html
│ ├── chapter2
│ │ └── index.html
│ ├── chapter20
│ │ └── index.html
│ ├── chapter3
│ │ └── index.html
│ ├── chapter4
│ │ └── index.html
│ ├── chapter5
│ │ └── index.html
│ ├── chapter6
│ │ └── index.html
│ ├── chapter7
│ │ └── index.html
│ ├── chapter8
│ │ └── index.html
│ ├── chapter9
│ │ └── index.html
│ └── index.html
├── appendixa
│ └── index.html
├── appendixb
│ └── index.html
├── appendixc
│ └── index.html
├── chapter0
│ └── index.html
├── chapter1
│ └── index.html
├── chapter10
│ └── index.html
├── chapter11
│ └── index.html
├── chapter12
│ └── index.html
├── chapter13
│ └── index.html
├── chapter14
│ └── index.html
├── chapter15
│ └── index.html
├── chapter16
│ └── index.html
├── chapter17
│ └── index.html
├── chapter18
│ └── index.html
├── chapter2
│ └── index.html
├── chapter3
│ └── index.html
├── chapter4
│ └── index.html
├── chapter5
│ └── index.html
├── chapter6
│ └── index.html
├── chapter7
│ └── index.html
├── chapter8
│ └── index.html
├── chapter9
│ └── index.html
├── how-to-do-pycon.html
├── index.html
├── list-of-css-selector-tutorials.html
├── list-of-json-apis.html
├── list-of-programming-practice-sites.html
├── list-of-web-comics.html
└── schedulers.html
├── generateSite.py
├── runWebServer.bat
├── static
├── .htaccess
├── 2e
│ └── images
│ │ ├── 000000.jpg
│ │ ├── 000001.jpg
│ │ ├── 000002.jpg
│ │ ├── 000003.jpg
│ │ ├── 000004.jpg
│ │ ├── 000005.jpg
│ │ ├── 000006.jpg
│ │ ├── 000007.jpg
│ │ ├── 000008.jpg
│ │ ├── 000009.jpg
│ │ ├── 000010.jpg
│ │ ├── 000011.jpg
│ │ ├── 000012.jpg
│ │ ├── 000013.jpg
│ │ ├── 000014.jpg
│ │ ├── 000015.jpg
│ │ ├── 000016.jpg
│ │ ├── 000017.jpg
│ │ ├── 000018.jpg
│ │ ├── 000019.jpg
│ │ ├── 000020.jpg
│ │ ├── 000021.jpg
│ │ ├── 000022.jpg
│ │ ├── 000023.jpg
│ │ ├── 000024.jpg
│ │ ├── 000025.jpg
│ │ ├── 000026.jpg
│ │ ├── 000027.jpg
│ │ ├── 000028.jpg
│ │ ├── 000029.jpg
│ │ ├── 000030.jpg
│ │ ├── 000031.jpg
│ │ ├── 000032.jpg
│ │ ├── 000033.jpg
│ │ ├── 000034.jpg
│ │ ├── 000035.jpg
│ │ ├── 000036.jpg
│ │ ├── 000037.jpg
│ │ ├── 000038.jpg
│ │ ├── 000039.jpg
│ │ ├── 000040.jpg
│ │ ├── 000041.jpg
│ │ ├── 000042.jpg
│ │ ├── 000043.jpg
│ │ ├── 000044.jpg
│ │ ├── 000045.jpg
│ │ ├── 000046.jpg
│ │ ├── 000047.jpg
│ │ ├── 000048.jpg
│ │ ├── 000049.jpg
│ │ ├── 000050.jpg
│ │ ├── 000051.jpg
│ │ ├── 000052.jpg
│ │ ├── 000053.jpg
│ │ ├── 000054.jpg
│ │ ├── 000055.jpg
│ │ ├── 000056.jpg
│ │ ├── 000057.jpg
│ │ ├── 000058.jpg
│ │ ├── 000059.jpg
│ │ ├── 000060.jpg
│ │ ├── 000061.jpg
│ │ ├── 000062.jpg
│ │ ├── 000063.jpg
│ │ ├── 000064.jpg
│ │ ├── 000065.jpg
│ │ ├── 000066.jpg
│ │ ├── 000067.jpg
│ │ ├── 000068.jpg
│ │ ├── 000069.jpg
│ │ ├── 000070.jpg
│ │ ├── 000071.jpg
│ │ ├── 000072.jpg
│ │ ├── 000073.jpg
│ │ ├── 000074.jpg
│ │ ├── 000075.jpg
│ │ ├── 000076.jpg
│ │ ├── 000077.jpg
│ │ ├── 000078.jpg
│ │ ├── 000079.jpg
│ │ ├── 000080.jpg
│ │ ├── 000081.jpg
│ │ ├── 000082.jpg
│ │ ├── 000083.jpg
│ │ ├── 000084.jpg
│ │ ├── 000085.jpg
│ │ ├── 000086.jpg
│ │ ├── 000087.jpg
│ │ ├── 000088.jpg
│ │ ├── 000089.jpg
│ │ ├── 000090.jpg
│ │ ├── 000091.jpg
│ │ ├── 000092.jpg
│ │ ├── 000093.jpg
│ │ ├── 000094.jpg
│ │ ├── 000095.jpg
│ │ ├── 000096.jpg
│ │ ├── 000097.jpg
│ │ ├── 000098.jpg
│ │ ├── 000099.jpg
│ │ ├── 000100.jpg
│ │ ├── 000101.jpg
│ │ ├── 000102.jpg
│ │ ├── 000103.jpg
│ │ ├── 000104.jpg
│ │ ├── 000105.jpg
│ │ ├── 000106.jpg
│ │ ├── 000107.jpg
│ │ ├── 000108.jpg
│ │ ├── 000109.jpg
│ │ ├── 000110.jpg
│ │ ├── 000111.jpg
│ │ ├── 000112.jpg
│ │ ├── 000113.jpg
│ │ ├── 000114.jpg
│ │ ├── 000115.jpg
│ │ ├── 000116.jpg
│ │ ├── 000117.jpg
│ │ ├── 000118.jpg
│ │ ├── 000119.jpg
│ │ ├── 000120.jpg
│ │ ├── 000121.jpg
│ │ ├── 000122.jpg
│ │ ├── 000123.jpg
│ │ ├── 000124.jpg
│ │ ├── 000125.jpg
│ │ ├── 000126.jpg
│ │ ├── 000127.jpg
│ │ ├── 000128.jpg
│ │ ├── 000129.jpg
│ │ ├── 000130.jpg
│ │ ├── 000131.jpg
│ │ ├── 000132.jpg
│ │ ├── 000133.jpg
│ │ ├── 000134.jpg
│ │ ├── 000135.jpg
│ │ ├── 000136.jpg
│ │ ├── 000137.jpg
│ │ ├── 000138.jpg
│ │ ├── 000139.jpg
│ │ ├── 000140.jpg
│ │ ├── 000141.jpg
│ │ ├── 000143.jpg
│ │ ├── 000144.jpg
│ │ ├── 000145.jpg
│ │ ├── 000146.jpg
│ │ ├── 000147.jpg
│ │ ├── 000148.jpg
│ │ ├── 000149.jpg
│ │ ├── 000150.jpg
│ │ ├── 000151.jpg
│ │ ├── 000152.jpg
│ │ ├── 00142.jpeg
│ │ └── 00142.jpg
├── autbor_files.zip
├── automate2_website.css
├── automate_website.css
├── censuspopdata.xlsx
├── dimensions3.xlsx
├── eval
│ ├── 13-1.html
│ ├── 13-2.html
│ ├── 13-3.html
│ ├── 13-4.html
│ ├── 13-5.html
│ ├── 2-1.html
│ ├── 2-2.html
│ ├── 3-1.html
│ ├── 3-2.html
│ ├── 3-3.html
│ ├── 3-4.html
│ ├── 4-1.html
│ ├── 9-1.html
│ ├── jquery-1.11.1.min.js
│ └── showEval-0.9.0.js
├── example.xlsx
├── example3.html
├── files
│ ├── automate-linux-requirements.txt
│ ├── automate-mac-requirements.txt
│ ├── automate-win-requirements.txt
│ ├── automate_browser_desktop_apps.pptx
│ ├── encrypted.pdf
│ ├── example.csv
│ ├── example.xlsx
│ ├── example3.xlsx
│ ├── exampleWithHeader.csv
│ ├── meetingminutes.pdf
│ ├── meetingminutes2.pdf
│ ├── removeCsvHeader.zip
│ ├── rj.txt
│ ├── watermark.pdf
│ ├── watermarkedCover.pdf
│ └── zophie.png
├── images
│ ├── 000000.jpg
│ ├── 000001.jpg
│ ├── 000002.jpg
│ ├── 000003.png
│ ├── 000004.jpg
│ ├── 000005.jpg
│ ├── 000006.png
│ ├── 000007.jpg
│ ├── 000008.png
│ ├── 000009.jpg
│ ├── 000010.png
│ ├── 000011.jpg
│ ├── 000012.jpg
│ ├── 000013.jpg
│ ├── 000014.jpg
│ ├── 000015.jpg
│ ├── 000016.jpg
│ ├── 000017.png
│ ├── 000018.jpg
│ ├── 000019.jpg
│ ├── 000020.jpg
│ ├── 000021.jpg
│ ├── 000022.jpg
│ ├── 000023.jpg
│ ├── 000024.jpg
│ ├── 000025.jpg
│ ├── 000026.png
│ ├── 000027.jpg
│ ├── 000028.jpg
│ ├── 000029.jpg
│ ├── 000030.jpg
│ ├── 000031.jpg
│ ├── 000032.jpg
│ ├── 000033.png
│ ├── 000034.jpg
│ ├── 000035.jpg
│ ├── 000036.jpg
│ ├── 000037.jpg
│ ├── 000038.jpg
│ ├── 000039.jpg
│ ├── 000040.png
│ ├── 000041.png
│ ├── 000042.jpg
│ ├── 000043.jpg
│ ├── 000044.jpg
│ ├── 000045.jpg
│ ├── 000046.jpg
│ ├── 000047.jpg
│ ├── 000048.jpg
│ ├── 000049.jpg
│ ├── 000050.jpg
│ ├── 000051.jpg
│ ├── 000052.jpg
│ ├── 000053.jpg
│ ├── 000054.jpg
│ ├── 000055.jpg
│ ├── 000056.png
│ ├── 000057.jpg
│ ├── 000058.jpg
│ ├── 000059.jpg
│ ├── 000060.jpg
│ ├── 000061.jpg
│ ├── 000062.jpg
│ ├── 000063.jpg
│ ├── 000064.jpg
│ ├── 000065.jpg
│ ├── 000066.jpg
│ ├── 000067.png
│ ├── 000068.jpg
│ ├── 000069.png
│ ├── 000070.jpg
│ ├── 000071.jpg
│ ├── 000072.jpg
│ ├── 000073.jpg
│ ├── 000074.png
│ ├── 000075.jpg
│ ├── 000076.jpg
│ ├── 000077.jpg
│ ├── 000078.jpg
│ ├── 000079.jpg
│ ├── 000080.jpg
│ ├── 000081.jpg
│ ├── 000082.jpg
│ ├── 000083.jpg
│ ├── 000084.jpg
│ ├── 000085.jpg
│ ├── 000086.jpg
│ ├── 000087.jpg
│ ├── 000088.png
│ ├── 000089.png
│ ├── 000090.png
│ ├── 000091.png
│ ├── 000093.jpg
│ ├── 000094.png
│ ├── 000095.jpg
│ ├── 000096.jpg
│ ├── 000097.png
│ ├── 000098.jpg
│ ├── 000099.jpg
│ ├── 000100.jpg
│ ├── 000101.jpg
│ ├── 000102.png
│ ├── 000103.jpg
│ ├── 000104.jpg
│ ├── 000105.jpg
│ ├── 000106.png
│ ├── 000107.png
│ ├── 000108.jpg
│ ├── 000109.jpg
│ ├── 00092.jpeg
│ ├── automate2_small_cover.png
│ ├── automate_2e_cover.png
│ ├── automate_cover.png
│ ├── automate_cover_medium.png
│ ├── automate_small_cover.png
│ ├── automate_udemy_course_logo.jpg
│ ├── cc-by-nc-sa_small.png
│ ├── cover_automate2_thumb.jpg
│ ├── cover_automate2_thumb.png
│ ├── cover_beyond.png
│ ├── cover_beyond_thumb.jpg
│ ├── cover_beyond_thumb.png
│ ├── cover_bigbookpython.jpg
│ ├── cover_bigbookpython_thumb.jpg
│ ├── cover_codingwithminecraft_thumb.png
│ ├── cover_crackingcodes_thumb.png
│ ├── cover_invent4th_thumb.png
│ ├── cover_makinggames_thumb.png
│ ├── cover_scratch3programmingplayground_thumb.png
│ ├── cover_scratchprogrammingplayground_thumb.jpg
│ ├── next.png
│ ├── prev.png
│ ├── smallcover_hacking.png
│ ├── smallcover_invent.png
│ ├── smallcover_makinggames.png
│ ├── stumbleuponicon.png
│ ├── toc.png
│ └── youtubelogo.png
├── lazysizes.min.js
├── merged3.xlsx
├── produceSales.xlsx
├── produceSales3.xlsx
├── src
│ ├── alarm.wav
│ ├── allMyCats1.py
│ ├── allMyCats2.py
│ ├── backupToZip.py
│ ├── birthdays.py
│ ├── boxprint.py
│ ├── buggyAddingProgram.py
│ ├── bulletPointAdder.py
│ ├── calcProd.py
│ ├── catnapping.py
│ ├── census2010.py
│ ├── censuspopdata.xlsx
│ ├── characterCount.py
│ ├── coinFlip.py
│ ├── combinePdfs.py
│ ├── combinedminutes.pdf
│ ├── countdown.py
│ ├── demo.docx
│ ├── dictionary.txt
│ ├── dimensions.xlsx
│ ├── downloadxkcd.py
│ ├── downloadxkcd3.py
│ ├── duesRecords.xlsx
│ ├── encrypted.pdf
│ ├── encryptedminutes.pdf
│ ├── errorExample.py
│ ├── example.csv
│ ├── example.html
│ ├── example.xlsx
│ ├── example.zip
│ ├── excelSpreadsheets.zip
│ ├── exitExample.py
│ ├── factorialLog.py
│ ├── fiveTimes.py
│ ├── formFiller.py
│ ├── formFiller3.py
│ ├── freezeExample.xlsx
│ ├── freezeExample3.xlsx
│ ├── globalStatement.py
│ ├── guessTheNumber.py
│ ├── guests.txt
│ ├── headings.docx
│ ├── hello.py
│ ├── helloFunc.py
│ ├── helloFunc2.py
│ ├── helloworld.docx
│ ├── inventory.py
│ ├── isPhoneNumber.py
│ ├── lucky.py
│ ├── magic8ball.py
│ ├── magic8ball2.py
│ ├── mapit.py
│ ├── mcb.pyw
│ ├── meetingminutes.pdf
│ ├── meetingminutes2.pdf
│ ├── merged.xlsx
│ ├── mouseNow.py
│ ├── mouseNow2.py
│ ├── multidownloadxkcd.py
│ ├── multipleParagraphs.docx
│ ├── myPets.py
│ ├── passingReference.py
│ ├── phoneandemail.py
│ ├── picnicTable.py
│ ├── prettyCharacterCount.py
│ ├── printRandom.py
│ ├── produceSales.xlsx
│ ├── pw.py
│ ├── quickweather.py
│ ├── randomQuizGenerator.py
│ ├── readCensusExcel.py
│ ├── readDocx.py
│ ├── removeBorder.py
│ ├── removeCsvHeader.py
│ ├── removeCsvHeader.zip
│ ├── renameDates.py
│ ├── resizeAndAddLogo.py
│ ├── restyled.docx
│ ├── sameName.py
│ ├── sameName2.py
│ ├── sameName3.py
│ ├── sameName4.py
│ ├── sameNameLocalGlobal.py
│ ├── sampleChart.xlsx
│ ├── sendDuesReminders.py
│ ├── stopwatch.py
│ ├── styled.xlsx
│ ├── styles.xlsx
│ ├── swordfish.py
│ ├── textMyself.py
│ ├── threadDemo.py
│ ├── threadNapDemo.py
│ ├── tictactoe-example1.py
│ ├── torrentStarter.py
│ ├── twoPage.docx
│ ├── updateProduce.py
│ ├── updatedProduceSales.xlsx
│ ├── validateInput.py
│ ├── vampire.py
│ ├── watermark.pdf
│ ├── zeroDivide.py
│ └── zophie.png
├── styles3.xlsx
├── unmerged3.xlsx
├── wow_such_zophie_thumb.webp
└── writeFormula3.xlsx
└── templates
├── base.html
└── secondeditionbase.html
/.gitignore:
--------------------------------------------------------------------------------
1 | output
2 | .templateTimestamps.bak
3 | .templateTimestamps.dat
4 | .templateTimestamps.dir
--------------------------------------------------------------------------------
/.htaccess:
--------------------------------------------------------------------------------
1 | #Options -ExecCGI
2 | AddHandler text/plain .py
3 | # Disable cgi here so users can download the python scripts, not run them.
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | automatetheboringstuffwithpythondotcom
2 | ======================================
3 |
4 | Source for the AutomateTheBoringStuff.com website.
5 |
6 |
7 | ## How the files are organized in this repo:
8 |
9 | * `content` - HTML pages used with the templates
10 | * `templates` - Jinja2 templates
11 | * `static` - HTML, images, and other static files
12 | * `output` - The complete website is put here after running `generateSite.py`
13 | * `generateSite.py` - A Python 3 script that produces the files to put on the site
14 | * `runServer.py` - A Python 3 script to run a web server on localhost:8000 to preview the site locally
15 |
--------------------------------------------------------------------------------
/autbordotcom/3/goodfunc/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/3/mypets/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/3/setdefault/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/DNA_lecture.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/DNA_lecture.mp3
--------------------------------------------------------------------------------
/autbordotcom/Recursion_Chapter1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/Recursion_Chapter1.pdf
--------------------------------------------------------------------------------
/autbordotcom/addingloop/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/addingloopfixed/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/alarm.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/alarm.wav
--------------------------------------------------------------------------------
/autbordotcom/blocks/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/agtd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to vwja.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/bidv.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to qgdo.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/cdzb.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to iual.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/cilu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to hdey.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ciys.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to kpfm.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/cqgh.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | You have reached the end. The password is "fishsword".
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ctlc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ryby.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/cucg.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to izeu.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/cwnl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to xpys.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/dbaq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to iiwg.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ddey.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to gvxe.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/dwax.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to rrwk.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ebax.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to xayz.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/elqp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to vsvo.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/elwm.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to vaae.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ephu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to izoc.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/epty.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to uqck.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/eqvk.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to hjxq.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ewzm.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to cqgh.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/fgdo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to lsap.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/gvxe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to sjfd.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/gxps.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to nvzu.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/gzif.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to wmlp.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/hdey.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to gzif.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/hjul.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ipvp.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/hjxq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to rbcd.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/hmxu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to eqvk.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/hwrv.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to nxnt.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/iiwg.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to elqp.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to agtd.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/iolj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to tcpq.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ipvp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to cilu.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/iual.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to iolj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/izeu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to tmqs.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/izoc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to wwqj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/jcib.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zuto.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/jdzb.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zpsf.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/jjbi.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to yczv.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/jmks.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to cucg.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/jtue.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to twif.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/kkde.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to bidv.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/kpfm.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to kvfb.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/kvfb.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to znvq.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/lode.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to mjow.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/lsae.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to dwax.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/lsap.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to vtnl.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/lxtc.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to mjrj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/lymd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ephu.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/mbfk.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zebr.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/mjow.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to royr.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/mjrj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to vtfy.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/mxry.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to elwm.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/nupz.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to wogm.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/nvzu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to pswl.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/nxnt.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to dbaq.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/nyey.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to jdzb.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/oial.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ukpn.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/pswl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to nupz.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/qgdo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to oial.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/rbcd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ebax.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/rbvf.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to hwrv.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/remi.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to nyey.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/royr.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zejf.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/rrwk.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zrgr.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ryby.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to wzhn.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/scsf.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to jcib.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/sjfd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to gxps.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/tcpq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to uafo.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/tdhj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to usut.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/tmqs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to lsae.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/twif.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ztaj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/uafo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ctlc.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ukpn.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to lxtc.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/uqck.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to jjbi.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/usut.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ciys.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/uzet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to tdhj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/vaae.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to cwnl.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/vsvo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to hjul.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/vtfy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to remi.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/vtnl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to lymd.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/vwja.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to mxry.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/wmlp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to zddy.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/wogm.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to epty.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/wwqj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ewzm.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/wzhn.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ylrq.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/xayz.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to yzom.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/xpys.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to kkde.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/xqtj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to uzet.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/yczv.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to fgdo.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/yjzs.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to rbvf.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ylrq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to mbfk.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/yzom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to xqtj.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zddy.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to cdzb.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zebr.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to jmks.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zejf.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to yjzs.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/znvq.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to ddey.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zpsf.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to scsf.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zrgr.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to hmxu.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/ztaj.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to lode.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/breadcrumbs/zuto.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
15 | Go to jtue.html
16 |
17 |
--------------------------------------------------------------------------------
/autbordotcom/catlogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/catlogo.png
--------------------------------------------------------------------------------
/autbordotcom/class/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/convertlowercase/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/convertstringnumbers/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/copycopy1/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/copycopy2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/copydeepcopy/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/deletingloop/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/deletingloopfixed/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/demo.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/demo.docx
--------------------------------------------------------------------------------
/autbordotcom/embeddedfrankenstein/ads.html:
--------------------------------------------------------------------------------
1 |
2 | Annoying
Sidebar
Ads
Here!
--------------------------------------------------------------------------------
/autbordotcom/example.csv:
--------------------------------------------------------------------------------
1 | 4/5/2014 13:34,Apples,73
2 | 4/5/2014 3:41,Cherries,85
3 | 4/6/2014 12:46,Pears,14
4 | 4/8/2014 8:59,Oranges,52
5 | 4/10/2014 2:07,Apples,152
6 | 4/10/2014 18:10,Bananas,23
7 | 4/10/2014 2:40,Strawberries,98
8 |
--------------------------------------------------------------------------------
/autbordotcom/example.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/example.xlsx
--------------------------------------------------------------------------------
/autbordotcom/exampleWithHeader.csv:
--------------------------------------------------------------------------------
1 | Timestamp,Fruit,Quantity
2 | 4/5/2014 13:34,Apples,73
3 | 4/5/2014 3:41,Cherries,85
4 | 4/6/2014 12:46,Pears,14
5 | 4/8/2014 8:59,Oranges,52
6 | 4/10/2014 2:07,Apples,152
7 | 4/10/2014 18:10,Bananas,23
8 | 4/10/2014 2:40,Strawberries,98
9 |
--------------------------------------------------------------------------------
/autbordotcom/extractpdfimages.py:
--------------------------------------------------------------------------------
1 | import pypdf
2 | PDF_FILENAME = 'Recursion_Chapter1.pdf'
3 |
4 | reader = pypdf.PdfReader(PDF_FILENAME)
5 | image_num = 0
6 | for i, page in enumerate(reader.pages):
7 | print(f'Reading page {i+1} - {len(page.images)} images found...')
8 | try:
9 | for image in page.images:
10 | with open(f'{image_num}_page{i+1}_{image.name}', 'wb') as file:
11 | file.write(image.data)
12 | print(f'Wrote {image_num}_page{i+1}_{image.name}...')
13 | image_num += 1
14 | except Exception as exc:
15 | print(f'Skipped page {i+1} due to error: {exc}')
16 |
--------------------------------------------------------------------------------
/autbordotcom/extractpdftext.py:
--------------------------------------------------------------------------------
1 | import pypdf
2 | import pdfminer.high_level
3 |
4 | PDF_FILENAME = 'Recursion_Chapter1.pdf'
5 | TEXT_FILENAME = 'recursion.txt'
6 |
7 | text = ''
8 | try:
9 | reader = pypdf.PdfReader(PDF_FILENAME)
10 | for page in reader.pages:
11 | text += page.extract_text()
12 | except Exception:
13 | text = pdfminer.high_level.extract_text(PDF_FILENAME)
14 | with open(TEXT_FILENAME, 'w', encoding='utf-8') as file_obj:
15 | file_obj.write(text)
16 |
--------------------------------------------------------------------------------
/autbordotcom/fiveiterationsfor/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/fiveiterationswhile/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/fivetimes/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/fivetimesfor/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/fivetimeswhile/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/frankenstein.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/frankenstein.png
--------------------------------------------------------------------------------
/autbordotcom/frankenstein_jpn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/frankenstein_jpn.png
--------------------------------------------------------------------------------
/autbordotcom/globalstatement/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/guests.txt:
--------------------------------------------------------------------------------
1 | Prof. Plum
2 | Miss Scarlet
3 | Col. Mustard
4 | Al Sweigart
5 | Robocop
--------------------------------------------------------------------------------
/autbordotcom/hello.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/hello.mp3
--------------------------------------------------------------------------------
/autbordotcom/hello.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/hello.wav
--------------------------------------------------------------------------------
/autbordotcom/hellofunc/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/hellofunc2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/howmanyguests/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/iteratebackwards1/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/iteratebackwards2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/listcopygotcha1/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/listcopygotcha2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/littlekid/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/mypets/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/ocr-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/ocr-example.png
--------------------------------------------------------------------------------
/autbordotcom/otherlocalscopes/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/pprint/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/printrandom/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/readglobal/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/sameNameError/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/sameNameLocalGlobal/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/setdefault/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/simplecountdown.py:
--------------------------------------------------------------------------------
1 | # https://autbor.com/simplecountdown.py - A simple countdown script.
2 |
3 | import time, subprocess
4 |
5 | timeLeft = 2
6 | while timeLeft > 0:
7 | print(timeLeft)
8 | time.sleep(1)
9 | timeLeft = timeLeft - 1
10 |
11 | # At the end of the countdown, play a sound file.
12 | subprocess.run(['start', 'alarm.wav'], shell=True) # Windows
13 | #subprocess.run(['open', 'alarm.wav']) # macOS & Linux
14 |
--------------------------------------------------------------------------------
/autbordotcom/spamintry/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/threadNapDemo.py:
--------------------------------------------------------------------------------
1 | # https://autbor.com/threadNapDemo.py – Multithreaded demo.
2 | import threading, time
3 | print('Start of program.')
4 |
5 | def take_a_nap():
6 | time.sleep(5)
7 | print('Wake up!')
8 |
9 | threadObj = threading.Thread(target=take_a_nap)
10 | threadObj.start()
11 |
12 | print('End of program.')
13 |
--------------------------------------------------------------------------------
/autbordotcom/tryexceptzerodivide/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/vampire/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/vampire2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/wizcoinfull/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/wow_such_zophie_thumb.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/wow_such_zophie_thumb.webp
--------------------------------------------------------------------------------
/autbordotcom/yourname/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/yourname2/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/zerodivide/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/autbordotcom/zophie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/zophie.jpg
--------------------------------------------------------------------------------
/autbordotcom/zophie2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/zophie2.jpg
--------------------------------------------------------------------------------
/autbordotcom/zophie3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/autbordotcom/zophie3.jpg
--------------------------------------------------------------------------------
/content/list-of-css-selector-tutorials.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 | {% set title = 'List of CSS Selector Tutorials' %}
3 | {% block content %}
4 |
5 | List of CSS Selector Tutorials
6 |
7 | Here's a list of CSS selector tutorials and examples:
8 |
9 |
14 |
15 | {% endblock %}
16 |
--------------------------------------------------------------------------------
/runWebServer.bat:
--------------------------------------------------------------------------------
1 | cd output
2 | py -3 -m http.server
3 |
--------------------------------------------------------------------------------
/static/2e/images/000000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000000.jpg
--------------------------------------------------------------------------------
/static/2e/images/000001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000001.jpg
--------------------------------------------------------------------------------
/static/2e/images/000002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000002.jpg
--------------------------------------------------------------------------------
/static/2e/images/000003.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000003.jpg
--------------------------------------------------------------------------------
/static/2e/images/000004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000004.jpg
--------------------------------------------------------------------------------
/static/2e/images/000005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000005.jpg
--------------------------------------------------------------------------------
/static/2e/images/000006.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000006.jpg
--------------------------------------------------------------------------------
/static/2e/images/000007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000007.jpg
--------------------------------------------------------------------------------
/static/2e/images/000008.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000008.jpg
--------------------------------------------------------------------------------
/static/2e/images/000009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000009.jpg
--------------------------------------------------------------------------------
/static/2e/images/000010.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000010.jpg
--------------------------------------------------------------------------------
/static/2e/images/000011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000011.jpg
--------------------------------------------------------------------------------
/static/2e/images/000012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000012.jpg
--------------------------------------------------------------------------------
/static/2e/images/000013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000013.jpg
--------------------------------------------------------------------------------
/static/2e/images/000014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000014.jpg
--------------------------------------------------------------------------------
/static/2e/images/000015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000015.jpg
--------------------------------------------------------------------------------
/static/2e/images/000016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000016.jpg
--------------------------------------------------------------------------------
/static/2e/images/000017.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000017.jpg
--------------------------------------------------------------------------------
/static/2e/images/000018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000018.jpg
--------------------------------------------------------------------------------
/static/2e/images/000019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000019.jpg
--------------------------------------------------------------------------------
/static/2e/images/000020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000020.jpg
--------------------------------------------------------------------------------
/static/2e/images/000021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000021.jpg
--------------------------------------------------------------------------------
/static/2e/images/000022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000022.jpg
--------------------------------------------------------------------------------
/static/2e/images/000023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000023.jpg
--------------------------------------------------------------------------------
/static/2e/images/000024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000024.jpg
--------------------------------------------------------------------------------
/static/2e/images/000025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000025.jpg
--------------------------------------------------------------------------------
/static/2e/images/000026.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000026.jpg
--------------------------------------------------------------------------------
/static/2e/images/000027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000027.jpg
--------------------------------------------------------------------------------
/static/2e/images/000028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000028.jpg
--------------------------------------------------------------------------------
/static/2e/images/000029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000029.jpg
--------------------------------------------------------------------------------
/static/2e/images/000030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000030.jpg
--------------------------------------------------------------------------------
/static/2e/images/000031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000031.jpg
--------------------------------------------------------------------------------
/static/2e/images/000032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000032.jpg
--------------------------------------------------------------------------------
/static/2e/images/000033.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000033.jpg
--------------------------------------------------------------------------------
/static/2e/images/000034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000034.jpg
--------------------------------------------------------------------------------
/static/2e/images/000035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000035.jpg
--------------------------------------------------------------------------------
/static/2e/images/000036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000036.jpg
--------------------------------------------------------------------------------
/static/2e/images/000037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000037.jpg
--------------------------------------------------------------------------------
/static/2e/images/000038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000038.jpg
--------------------------------------------------------------------------------
/static/2e/images/000039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000039.jpg
--------------------------------------------------------------------------------
/static/2e/images/000040.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000040.jpg
--------------------------------------------------------------------------------
/static/2e/images/000041.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000041.jpg
--------------------------------------------------------------------------------
/static/2e/images/000042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000042.jpg
--------------------------------------------------------------------------------
/static/2e/images/000043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000043.jpg
--------------------------------------------------------------------------------
/static/2e/images/000044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000044.jpg
--------------------------------------------------------------------------------
/static/2e/images/000045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000045.jpg
--------------------------------------------------------------------------------
/static/2e/images/000046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000046.jpg
--------------------------------------------------------------------------------
/static/2e/images/000047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000047.jpg
--------------------------------------------------------------------------------
/static/2e/images/000048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000048.jpg
--------------------------------------------------------------------------------
/static/2e/images/000049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000049.jpg
--------------------------------------------------------------------------------
/static/2e/images/000050.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000050.jpg
--------------------------------------------------------------------------------
/static/2e/images/000051.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000051.jpg
--------------------------------------------------------------------------------
/static/2e/images/000052.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000052.jpg
--------------------------------------------------------------------------------
/static/2e/images/000053.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000053.jpg
--------------------------------------------------------------------------------
/static/2e/images/000054.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000054.jpg
--------------------------------------------------------------------------------
/static/2e/images/000055.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000055.jpg
--------------------------------------------------------------------------------
/static/2e/images/000056.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000056.jpg
--------------------------------------------------------------------------------
/static/2e/images/000057.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000057.jpg
--------------------------------------------------------------------------------
/static/2e/images/000058.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000058.jpg
--------------------------------------------------------------------------------
/static/2e/images/000059.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000059.jpg
--------------------------------------------------------------------------------
/static/2e/images/000060.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000060.jpg
--------------------------------------------------------------------------------
/static/2e/images/000061.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000061.jpg
--------------------------------------------------------------------------------
/static/2e/images/000062.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000062.jpg
--------------------------------------------------------------------------------
/static/2e/images/000063.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000063.jpg
--------------------------------------------------------------------------------
/static/2e/images/000064.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000064.jpg
--------------------------------------------------------------------------------
/static/2e/images/000065.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000065.jpg
--------------------------------------------------------------------------------
/static/2e/images/000066.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000066.jpg
--------------------------------------------------------------------------------
/static/2e/images/000067.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000067.jpg
--------------------------------------------------------------------------------
/static/2e/images/000068.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000068.jpg
--------------------------------------------------------------------------------
/static/2e/images/000069.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000069.jpg
--------------------------------------------------------------------------------
/static/2e/images/000070.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000070.jpg
--------------------------------------------------------------------------------
/static/2e/images/000071.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000071.jpg
--------------------------------------------------------------------------------
/static/2e/images/000072.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000072.jpg
--------------------------------------------------------------------------------
/static/2e/images/000073.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000073.jpg
--------------------------------------------------------------------------------
/static/2e/images/000074.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000074.jpg
--------------------------------------------------------------------------------
/static/2e/images/000075.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000075.jpg
--------------------------------------------------------------------------------
/static/2e/images/000076.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000076.jpg
--------------------------------------------------------------------------------
/static/2e/images/000077.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000077.jpg
--------------------------------------------------------------------------------
/static/2e/images/000078.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000078.jpg
--------------------------------------------------------------------------------
/static/2e/images/000079.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000079.jpg
--------------------------------------------------------------------------------
/static/2e/images/000080.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000080.jpg
--------------------------------------------------------------------------------
/static/2e/images/000081.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000081.jpg
--------------------------------------------------------------------------------
/static/2e/images/000082.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000082.jpg
--------------------------------------------------------------------------------
/static/2e/images/000083.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000083.jpg
--------------------------------------------------------------------------------
/static/2e/images/000084.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000084.jpg
--------------------------------------------------------------------------------
/static/2e/images/000085.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000085.jpg
--------------------------------------------------------------------------------
/static/2e/images/000086.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000086.jpg
--------------------------------------------------------------------------------
/static/2e/images/000087.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000087.jpg
--------------------------------------------------------------------------------
/static/2e/images/000088.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000088.jpg
--------------------------------------------------------------------------------
/static/2e/images/000089.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000089.jpg
--------------------------------------------------------------------------------
/static/2e/images/000090.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000090.jpg
--------------------------------------------------------------------------------
/static/2e/images/000091.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000091.jpg
--------------------------------------------------------------------------------
/static/2e/images/000092.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000092.jpg
--------------------------------------------------------------------------------
/static/2e/images/000093.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000093.jpg
--------------------------------------------------------------------------------
/static/2e/images/000094.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000094.jpg
--------------------------------------------------------------------------------
/static/2e/images/000095.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000095.jpg
--------------------------------------------------------------------------------
/static/2e/images/000096.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000096.jpg
--------------------------------------------------------------------------------
/static/2e/images/000097.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000097.jpg
--------------------------------------------------------------------------------
/static/2e/images/000098.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000098.jpg
--------------------------------------------------------------------------------
/static/2e/images/000099.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000099.jpg
--------------------------------------------------------------------------------
/static/2e/images/000100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000100.jpg
--------------------------------------------------------------------------------
/static/2e/images/000101.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000101.jpg
--------------------------------------------------------------------------------
/static/2e/images/000102.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000102.jpg
--------------------------------------------------------------------------------
/static/2e/images/000103.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000103.jpg
--------------------------------------------------------------------------------
/static/2e/images/000104.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000104.jpg
--------------------------------------------------------------------------------
/static/2e/images/000105.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000105.jpg
--------------------------------------------------------------------------------
/static/2e/images/000106.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000106.jpg
--------------------------------------------------------------------------------
/static/2e/images/000107.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000107.jpg
--------------------------------------------------------------------------------
/static/2e/images/000108.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000108.jpg
--------------------------------------------------------------------------------
/static/2e/images/000109.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000109.jpg
--------------------------------------------------------------------------------
/static/2e/images/000110.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000110.jpg
--------------------------------------------------------------------------------
/static/2e/images/000111.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000111.jpg
--------------------------------------------------------------------------------
/static/2e/images/000112.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000112.jpg
--------------------------------------------------------------------------------
/static/2e/images/000113.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000113.jpg
--------------------------------------------------------------------------------
/static/2e/images/000114.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000114.jpg
--------------------------------------------------------------------------------
/static/2e/images/000115.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000115.jpg
--------------------------------------------------------------------------------
/static/2e/images/000116.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000116.jpg
--------------------------------------------------------------------------------
/static/2e/images/000117.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000117.jpg
--------------------------------------------------------------------------------
/static/2e/images/000118.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000118.jpg
--------------------------------------------------------------------------------
/static/2e/images/000119.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000119.jpg
--------------------------------------------------------------------------------
/static/2e/images/000120.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000120.jpg
--------------------------------------------------------------------------------
/static/2e/images/000121.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000121.jpg
--------------------------------------------------------------------------------
/static/2e/images/000122.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000122.jpg
--------------------------------------------------------------------------------
/static/2e/images/000123.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000123.jpg
--------------------------------------------------------------------------------
/static/2e/images/000124.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000124.jpg
--------------------------------------------------------------------------------
/static/2e/images/000125.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000125.jpg
--------------------------------------------------------------------------------
/static/2e/images/000126.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000126.jpg
--------------------------------------------------------------------------------
/static/2e/images/000127.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000127.jpg
--------------------------------------------------------------------------------
/static/2e/images/000128.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000128.jpg
--------------------------------------------------------------------------------
/static/2e/images/000129.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000129.jpg
--------------------------------------------------------------------------------
/static/2e/images/000130.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000130.jpg
--------------------------------------------------------------------------------
/static/2e/images/000131.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000131.jpg
--------------------------------------------------------------------------------
/static/2e/images/000132.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000132.jpg
--------------------------------------------------------------------------------
/static/2e/images/000133.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000133.jpg
--------------------------------------------------------------------------------
/static/2e/images/000134.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000134.jpg
--------------------------------------------------------------------------------
/static/2e/images/000135.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000135.jpg
--------------------------------------------------------------------------------
/static/2e/images/000136.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000136.jpg
--------------------------------------------------------------------------------
/static/2e/images/000137.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000137.jpg
--------------------------------------------------------------------------------
/static/2e/images/000138.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000138.jpg
--------------------------------------------------------------------------------
/static/2e/images/000139.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000139.jpg
--------------------------------------------------------------------------------
/static/2e/images/000140.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000140.jpg
--------------------------------------------------------------------------------
/static/2e/images/000141.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000141.jpg
--------------------------------------------------------------------------------
/static/2e/images/000143.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000143.jpg
--------------------------------------------------------------------------------
/static/2e/images/000144.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000144.jpg
--------------------------------------------------------------------------------
/static/2e/images/000145.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000145.jpg
--------------------------------------------------------------------------------
/static/2e/images/000146.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000146.jpg
--------------------------------------------------------------------------------
/static/2e/images/000147.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000147.jpg
--------------------------------------------------------------------------------
/static/2e/images/000148.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000148.jpg
--------------------------------------------------------------------------------
/static/2e/images/000149.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000149.jpg
--------------------------------------------------------------------------------
/static/2e/images/000150.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000150.jpg
--------------------------------------------------------------------------------
/static/2e/images/000151.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000151.jpg
--------------------------------------------------------------------------------
/static/2e/images/000152.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/000152.jpg
--------------------------------------------------------------------------------
/static/2e/images/00142.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/00142.jpeg
--------------------------------------------------------------------------------
/static/2e/images/00142.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/2e/images/00142.jpg
--------------------------------------------------------------------------------
/static/autbor_files.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/autbor_files.zip
--------------------------------------------------------------------------------
/static/censuspopdata.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/censuspopdata.xlsx
--------------------------------------------------------------------------------
/static/dimensions3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/dimensions3.xlsx
--------------------------------------------------------------------------------
/static/example.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/example.xlsx
--------------------------------------------------------------------------------
/static/files/automate-linux-requirements.txt:
--------------------------------------------------------------------------------
1 | send2trash==1.5.0
2 | requests==2.21.0
3 | beautifulsoup4==4.7.1
4 | selenium==3.141.0
5 | openpyxl==2.6.1
6 | PyPDF2==1.26.0
7 | python-docx==0.8.10
8 | imapclient==2.1.0
9 | pyzmail36==1.0.4
10 | twilio
11 | pillow==7.2.0
12 | PyInputPlus==0.2.6
13 | ezgmail==0.0.4
14 | ezsheets==0.0.2
15 | python3-xlib==0.15
16 | pyautogui==0.9.42
--------------------------------------------------------------------------------
/static/files/automate-mac-requirements.txt:
--------------------------------------------------------------------------------
1 | send2trash==1.5.0
2 | requests==2.21.0
3 | beautifulsoup4==4.7.1
4 | selenium==3.141.0
5 | openpyxl==2.6.1
6 | PyPDF2==1.26.0
7 | python-docx==0.8.10
8 | imapclient==2.1.0
9 | pyzmail36==1.0.4
10 | twilio
11 | pillow==7.2.0
12 | PyInputPlus==0.2.6
13 | ezgmail==0.0.4
14 | ezsheets==0.0.2
15 | pyobjc-core==5.1.2
16 | pyobjc==5.1.1
17 | pyautogui==0.9.42
--------------------------------------------------------------------------------
/static/files/automate-win-requirements.txt:
--------------------------------------------------------------------------------
1 | send2trash==1.5.0
2 | requests==2.21.0
3 | beautifulsoup4==4.7.1
4 | selenium==3.141.0
5 | openpyxl==2.6.1
6 | PyPDF2==1.26.0
7 | python-docx==0.8.10
8 | imapclient==2.1.0
9 | pyzmail36==1.0.4
10 | twilio
11 | ezgmail
12 | ezsheets
13 | pillow==7.2.0
14 | pyautogui
15 |
--------------------------------------------------------------------------------
/static/files/automate_browser_desktop_apps.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/automate_browser_desktop_apps.pptx
--------------------------------------------------------------------------------
/static/files/encrypted.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/encrypted.pdf
--------------------------------------------------------------------------------
/static/files/example.csv:
--------------------------------------------------------------------------------
1 | 4/5/2025 13:34,Apples,73
2 | 4/5/2025 3:41,Cherries,85
3 | 4/6/2025 12:46,Pears,14
4 | 4/8/2025 8:59,Oranges,52
5 | 4/10/2025 2:07,Apples,152
6 | 4/10/2025 18:10,Bananas,23
7 | 4/10/2025 2:40,Strawberries,98
8 |
--------------------------------------------------------------------------------
/static/files/example.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/example.xlsx
--------------------------------------------------------------------------------
/static/files/example3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/example3.xlsx
--------------------------------------------------------------------------------
/static/files/exampleWithHeader.csv:
--------------------------------------------------------------------------------
1 | Timestamp,Fruit,Quantity
2 | 4/5/2025 13:34,Apples,73
3 | 4/5/2025 3:41,Cherries,85
4 | 4/6/2025 12:46,Pears,14
5 | 4/8/2025 8:59,Oranges,52
6 | 4/10/2025 2:07,Apples,152
7 | 4/10/2025 18:10,Bananas,23
8 | 4/10/2025 2:40,Strawberries,98
9 |
--------------------------------------------------------------------------------
/static/files/meetingminutes.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/meetingminutes.pdf
--------------------------------------------------------------------------------
/static/files/meetingminutes2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/meetingminutes2.pdf
--------------------------------------------------------------------------------
/static/files/removeCsvHeader.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/removeCsvHeader.zip
--------------------------------------------------------------------------------
/static/files/watermark.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/watermark.pdf
--------------------------------------------------------------------------------
/static/files/watermarkedCover.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/watermarkedCover.pdf
--------------------------------------------------------------------------------
/static/files/zophie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/files/zophie.png
--------------------------------------------------------------------------------
/static/images/000000.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000000.jpg
--------------------------------------------------------------------------------
/static/images/000001.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000001.jpg
--------------------------------------------------------------------------------
/static/images/000002.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000002.jpg
--------------------------------------------------------------------------------
/static/images/000003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000003.png
--------------------------------------------------------------------------------
/static/images/000004.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000004.jpg
--------------------------------------------------------------------------------
/static/images/000005.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000005.jpg
--------------------------------------------------------------------------------
/static/images/000006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000006.png
--------------------------------------------------------------------------------
/static/images/000007.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000007.jpg
--------------------------------------------------------------------------------
/static/images/000008.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000008.png
--------------------------------------------------------------------------------
/static/images/000009.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000009.jpg
--------------------------------------------------------------------------------
/static/images/000010.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000010.png
--------------------------------------------------------------------------------
/static/images/000011.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000011.jpg
--------------------------------------------------------------------------------
/static/images/000012.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000012.jpg
--------------------------------------------------------------------------------
/static/images/000013.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000013.jpg
--------------------------------------------------------------------------------
/static/images/000014.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000014.jpg
--------------------------------------------------------------------------------
/static/images/000015.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000015.jpg
--------------------------------------------------------------------------------
/static/images/000016.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000016.jpg
--------------------------------------------------------------------------------
/static/images/000017.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000017.png
--------------------------------------------------------------------------------
/static/images/000018.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000018.jpg
--------------------------------------------------------------------------------
/static/images/000019.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000019.jpg
--------------------------------------------------------------------------------
/static/images/000020.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000020.jpg
--------------------------------------------------------------------------------
/static/images/000021.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000021.jpg
--------------------------------------------------------------------------------
/static/images/000022.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000022.jpg
--------------------------------------------------------------------------------
/static/images/000023.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000023.jpg
--------------------------------------------------------------------------------
/static/images/000024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000024.jpg
--------------------------------------------------------------------------------
/static/images/000025.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000025.jpg
--------------------------------------------------------------------------------
/static/images/000026.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000026.png
--------------------------------------------------------------------------------
/static/images/000027.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000027.jpg
--------------------------------------------------------------------------------
/static/images/000028.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000028.jpg
--------------------------------------------------------------------------------
/static/images/000029.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000029.jpg
--------------------------------------------------------------------------------
/static/images/000030.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000030.jpg
--------------------------------------------------------------------------------
/static/images/000031.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000031.jpg
--------------------------------------------------------------------------------
/static/images/000032.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000032.jpg
--------------------------------------------------------------------------------
/static/images/000033.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000033.png
--------------------------------------------------------------------------------
/static/images/000034.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000034.jpg
--------------------------------------------------------------------------------
/static/images/000035.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000035.jpg
--------------------------------------------------------------------------------
/static/images/000036.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000036.jpg
--------------------------------------------------------------------------------
/static/images/000037.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000037.jpg
--------------------------------------------------------------------------------
/static/images/000038.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000038.jpg
--------------------------------------------------------------------------------
/static/images/000039.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000039.jpg
--------------------------------------------------------------------------------
/static/images/000040.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000040.png
--------------------------------------------------------------------------------
/static/images/000041.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000041.png
--------------------------------------------------------------------------------
/static/images/000042.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000042.jpg
--------------------------------------------------------------------------------
/static/images/000043.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000043.jpg
--------------------------------------------------------------------------------
/static/images/000044.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000044.jpg
--------------------------------------------------------------------------------
/static/images/000045.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000045.jpg
--------------------------------------------------------------------------------
/static/images/000046.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000046.jpg
--------------------------------------------------------------------------------
/static/images/000047.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000047.jpg
--------------------------------------------------------------------------------
/static/images/000048.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000048.jpg
--------------------------------------------------------------------------------
/static/images/000049.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000049.jpg
--------------------------------------------------------------------------------
/static/images/000050.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000050.jpg
--------------------------------------------------------------------------------
/static/images/000051.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000051.jpg
--------------------------------------------------------------------------------
/static/images/000052.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000052.jpg
--------------------------------------------------------------------------------
/static/images/000053.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000053.jpg
--------------------------------------------------------------------------------
/static/images/000054.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000054.jpg
--------------------------------------------------------------------------------
/static/images/000055.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000055.jpg
--------------------------------------------------------------------------------
/static/images/000056.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000056.png
--------------------------------------------------------------------------------
/static/images/000057.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000057.jpg
--------------------------------------------------------------------------------
/static/images/000058.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000058.jpg
--------------------------------------------------------------------------------
/static/images/000059.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000059.jpg
--------------------------------------------------------------------------------
/static/images/000060.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000060.jpg
--------------------------------------------------------------------------------
/static/images/000061.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000061.jpg
--------------------------------------------------------------------------------
/static/images/000062.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000062.jpg
--------------------------------------------------------------------------------
/static/images/000063.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000063.jpg
--------------------------------------------------------------------------------
/static/images/000064.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000064.jpg
--------------------------------------------------------------------------------
/static/images/000065.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000065.jpg
--------------------------------------------------------------------------------
/static/images/000066.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000066.jpg
--------------------------------------------------------------------------------
/static/images/000067.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000067.png
--------------------------------------------------------------------------------
/static/images/000068.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000068.jpg
--------------------------------------------------------------------------------
/static/images/000069.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000069.png
--------------------------------------------------------------------------------
/static/images/000070.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000070.jpg
--------------------------------------------------------------------------------
/static/images/000071.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000071.jpg
--------------------------------------------------------------------------------
/static/images/000072.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000072.jpg
--------------------------------------------------------------------------------
/static/images/000073.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000073.jpg
--------------------------------------------------------------------------------
/static/images/000074.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000074.png
--------------------------------------------------------------------------------
/static/images/000075.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000075.jpg
--------------------------------------------------------------------------------
/static/images/000076.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000076.jpg
--------------------------------------------------------------------------------
/static/images/000077.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000077.jpg
--------------------------------------------------------------------------------
/static/images/000078.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000078.jpg
--------------------------------------------------------------------------------
/static/images/000079.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000079.jpg
--------------------------------------------------------------------------------
/static/images/000080.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000080.jpg
--------------------------------------------------------------------------------
/static/images/000081.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000081.jpg
--------------------------------------------------------------------------------
/static/images/000082.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000082.jpg
--------------------------------------------------------------------------------
/static/images/000083.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000083.jpg
--------------------------------------------------------------------------------
/static/images/000084.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000084.jpg
--------------------------------------------------------------------------------
/static/images/000085.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000085.jpg
--------------------------------------------------------------------------------
/static/images/000086.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000086.jpg
--------------------------------------------------------------------------------
/static/images/000087.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000087.jpg
--------------------------------------------------------------------------------
/static/images/000088.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000088.png
--------------------------------------------------------------------------------
/static/images/000089.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000089.png
--------------------------------------------------------------------------------
/static/images/000090.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000090.png
--------------------------------------------------------------------------------
/static/images/000091.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000091.png
--------------------------------------------------------------------------------
/static/images/000093.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000093.jpg
--------------------------------------------------------------------------------
/static/images/000094.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000094.png
--------------------------------------------------------------------------------
/static/images/000095.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000095.jpg
--------------------------------------------------------------------------------
/static/images/000096.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000096.jpg
--------------------------------------------------------------------------------
/static/images/000097.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000097.png
--------------------------------------------------------------------------------
/static/images/000098.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000098.jpg
--------------------------------------------------------------------------------
/static/images/000099.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000099.jpg
--------------------------------------------------------------------------------
/static/images/000100.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000100.jpg
--------------------------------------------------------------------------------
/static/images/000101.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000101.jpg
--------------------------------------------------------------------------------
/static/images/000102.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000102.png
--------------------------------------------------------------------------------
/static/images/000103.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000103.jpg
--------------------------------------------------------------------------------
/static/images/000104.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000104.jpg
--------------------------------------------------------------------------------
/static/images/000105.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000105.jpg
--------------------------------------------------------------------------------
/static/images/000106.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000106.png
--------------------------------------------------------------------------------
/static/images/000107.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000107.png
--------------------------------------------------------------------------------
/static/images/000108.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000108.jpg
--------------------------------------------------------------------------------
/static/images/000109.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/000109.jpg
--------------------------------------------------------------------------------
/static/images/00092.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/00092.jpeg
--------------------------------------------------------------------------------
/static/images/automate2_small_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate2_small_cover.png
--------------------------------------------------------------------------------
/static/images/automate_2e_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate_2e_cover.png
--------------------------------------------------------------------------------
/static/images/automate_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate_cover.png
--------------------------------------------------------------------------------
/static/images/automate_cover_medium.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate_cover_medium.png
--------------------------------------------------------------------------------
/static/images/automate_small_cover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate_small_cover.png
--------------------------------------------------------------------------------
/static/images/automate_udemy_course_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/automate_udemy_course_logo.jpg
--------------------------------------------------------------------------------
/static/images/cc-by-nc-sa_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cc-by-nc-sa_small.png
--------------------------------------------------------------------------------
/static/images/cover_automate2_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_automate2_thumb.jpg
--------------------------------------------------------------------------------
/static/images/cover_automate2_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_automate2_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_beyond.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_beyond.png
--------------------------------------------------------------------------------
/static/images/cover_beyond_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_beyond_thumb.jpg
--------------------------------------------------------------------------------
/static/images/cover_beyond_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_beyond_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_bigbookpython.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_bigbookpython.jpg
--------------------------------------------------------------------------------
/static/images/cover_bigbookpython_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_bigbookpython_thumb.jpg
--------------------------------------------------------------------------------
/static/images/cover_codingwithminecraft_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_codingwithminecraft_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_crackingcodes_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_crackingcodes_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_invent4th_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_invent4th_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_makinggames_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_makinggames_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_scratch3programmingplayground_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_scratch3programmingplayground_thumb.png
--------------------------------------------------------------------------------
/static/images/cover_scratchprogrammingplayground_thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/cover_scratchprogrammingplayground_thumb.jpg
--------------------------------------------------------------------------------
/static/images/next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/next.png
--------------------------------------------------------------------------------
/static/images/prev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/prev.png
--------------------------------------------------------------------------------
/static/images/smallcover_hacking.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/smallcover_hacking.png
--------------------------------------------------------------------------------
/static/images/smallcover_invent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/smallcover_invent.png
--------------------------------------------------------------------------------
/static/images/smallcover_makinggames.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/smallcover_makinggames.png
--------------------------------------------------------------------------------
/static/images/stumbleuponicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/stumbleuponicon.png
--------------------------------------------------------------------------------
/static/images/toc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/toc.png
--------------------------------------------------------------------------------
/static/images/youtubelogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/images/youtubelogo.png
--------------------------------------------------------------------------------
/static/merged3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/merged3.xlsx
--------------------------------------------------------------------------------
/static/produceSales.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/produceSales.xlsx
--------------------------------------------------------------------------------
/static/produceSales3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/produceSales3.xlsx
--------------------------------------------------------------------------------
/static/src/alarm.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/alarm.wav
--------------------------------------------------------------------------------
/static/src/allMyCats1.py:
--------------------------------------------------------------------------------
1 | print('Enter the name of cat 1:')
2 | catName1 = input()
3 | print('Enter the name of cat 2:')
4 | catName2 = input()
5 | print('Enter the name of cat 3:')
6 | catName3 = input()
7 | print('Enter the name of cat 4:')
8 | catName4 = input()
9 | print('Enter the name of cat 5:')
10 | catName5 = input()
11 | print('Enter the name of cat 6:')
12 | catName6 = input()
13 | print('The cat names are:')
14 | print(catName1 + ' ' + catName2 + ' ' + catName3 + ' ' + catName4 + ' ' + catName5 + ' ' + catName6)
15 |
--------------------------------------------------------------------------------
/static/src/allMyCats2.py:
--------------------------------------------------------------------------------
1 | catNames = []
2 | while True:
3 | print('Enter the name of cat ' + str(len(catNames) + 1) + ' (Or enter nothing to stop.):')
4 | name = input()
5 | if name == '':
6 | break
7 | catNames = catNames + [name] # list concatenation
8 | print('The cat names are:')
9 | for name in catNames:
10 | print(' ' + name)
11 |
--------------------------------------------------------------------------------
/static/src/birthdays.py:
--------------------------------------------------------------------------------
1 | birthdays = {'Alice': 'Apr 1', 'Bob': 'Dec 12', 'Carol': 'Mar 4'}
2 |
3 | while True:
4 | print('Enter a name: (blank to quit)')
5 | name = input()
6 | if name == '':
7 | break
8 |
9 | if name in birthdays:
10 | print(birthdays[name] + ' is the birthday of ' + name)
11 | else:
12 | print('I do not have birthday information for ' + name)
13 | print('What is their birthday?')
14 | bday = input()
15 | birthdays[name] = bday
16 | print('Birthday database updated.')
17 |
--------------------------------------------------------------------------------
/static/src/boxprint.py:
--------------------------------------------------------------------------------
1 | def boxprint(symbol, width, height):
2 | if len(symbol) != 1:
3 | raise Exception('Symbol must be a single character string.')
4 | if width <= 2:
5 | raise Exception('Width must be greater than 2.')
6 | if height <= 2:
7 | raise Exception('Height must be greater than 2.')
8 |
9 | print(symbol * width)
10 | for i in range(height - 2):
11 | print(symbol + (' ' * (width - 2)) + symbol)
12 | print(symbol * width)
13 |
14 | for sym, w, h in (('*', 4, 4), ('O', 20, 5), ('x', 1, 3), ('ZZ', 3, 3)):
15 | try:
16 | boxprint(sym, w, h)
17 | except Exception as err:
18 | print('An exception happened: ' + str(err))
--------------------------------------------------------------------------------
/static/src/buggyAddingProgram.py:
--------------------------------------------------------------------------------
1 | print('Enter the first number to add:')
2 | first = input()
3 | print('Enter the second number to add:')
4 | second = input()
5 | print('Enter the third number to add:')
6 | third = input()
7 | print('The sum is ' + first + second + third)
8 |
--------------------------------------------------------------------------------
/static/src/bulletPointAdder.py:
--------------------------------------------------------------------------------
1 | #! python3
2 | # Adds Wikipedia bullet points to the start
3 | # of each line of text on the clipboard.
4 |
5 | import pyperclip
6 | text = pyperclip.paste()
7 |
8 | lines = text.split('\n')
9 | for i in range(len(lines)): # loop through all indexes for "lines" list
10 | lines[i] = '* ' + lines[i] # add asterisk to each string in "lines" list
11 | text = '\n'.join(lines)
12 | pyperclip.copy(text)
13 |
--------------------------------------------------------------------------------
/static/src/calcProd.py:
--------------------------------------------------------------------------------
1 | # https://autbor.com/calcProd.py
2 | # Measure how long it takes to multiply 100,000 numbers.
3 | import time
4 | def calculate_product():
5 | # Calculate the product of the first 100,000 numbers.
6 | product = 1
7 | for i in range(1, 100000):
8 | product = product * i
9 | return product
10 |
11 | start_time = time.time()
12 | result = calculate_product()
13 | end_time = time.time()
14 | print('The result is %s digits long.' % (len(str(result))))
15 | print('It took %s seconds to calculate.' % (end_time – start_time))
16 |
--------------------------------------------------------------------------------
/static/src/catnapping.py:
--------------------------------------------------------------------------------
1 | print('''Dear Alice,
2 |
3 | Eve's cat has been arrested for second-degree catnapping.
4 |
5 | Sincerely,
6 | Bob''')
7 |
--------------------------------------------------------------------------------
/static/src/censuspopdata.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/censuspopdata.xlsx
--------------------------------------------------------------------------------
/static/src/characterCount.py:
--------------------------------------------------------------------------------
1 | message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
2 | count = {}
3 |
4 | for character in message:
5 | count.setdefault(character, 0)
6 | count[character] = count[character] + 1
7 |
8 | print(count)
9 |
--------------------------------------------------------------------------------
/static/src/coinFlip.py:
--------------------------------------------------------------------------------
1 | import random
2 | heads = 0
3 | for i in range(1, 1001):
4 | if random.randint(0, 1) == 1:
5 | heads = heads + 1
6 | if i == 500:
7 | print('Halfway done!')
8 | print('Heads came up ' + str(heads) + ' times.')
9 |
--------------------------------------------------------------------------------
/static/src/combinedminutes.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/combinedminutes.pdf
--------------------------------------------------------------------------------
/static/src/countdown.py:
--------------------------------------------------------------------------------
1 | #! python3
2 |
3 | # A simple countdown script.
4 | import time, subprocess
5 |
6 | timeLeft = 60
7 | while timeLeft > 0:
8 | print(timeLeft)
9 | time.sleep(1)
10 | timeLeft -= 1
11 |
12 | # At the end of the countdown, play a sound file.
13 | subprocess.Popen('alarm.wav', shell=True)
--------------------------------------------------------------------------------
/static/src/demo.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/demo.docx
--------------------------------------------------------------------------------
/static/src/dimensions.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/dimensions.xlsx
--------------------------------------------------------------------------------
/static/src/duesRecords.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/duesRecords.xlsx
--------------------------------------------------------------------------------
/static/src/encrypted.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/encrypted.pdf
--------------------------------------------------------------------------------
/static/src/encryptedminutes.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/encryptedminutes.pdf
--------------------------------------------------------------------------------
/static/src/errorExample.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | bacon()
3 |
4 | def bacon():
5 | raise Exception('This is the error message.')
6 |
7 | spam()
8 |
--------------------------------------------------------------------------------
/static/src/example.csv:
--------------------------------------------------------------------------------
1 | 4/5/2014 13:34,Apples,73
2 | 4/5/2014 3:41,Cherries,85
3 | 4/6/2014 12:46,Pears,14
4 | 4/8/2014 8:59,Oranges,52
5 | 4/10/2014 2:07,Apples,152
6 | 4/10/2014 18:10,Bananas,23
7 | 4/10/2014 2:40,Strawberries,98
8 |
--------------------------------------------------------------------------------
/static/src/example.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | The Website Title
4 |
5 | Download my Python book from my website.
6 | Learn Python the easy way!
7 | By Al Sweigart
8 |
--------------------------------------------------------------------------------
/static/src/example.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/example.xlsx
--------------------------------------------------------------------------------
/static/src/example.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/example.zip
--------------------------------------------------------------------------------
/static/src/excelSpreadsheets.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/excelSpreadsheets.zip
--------------------------------------------------------------------------------
/static/src/exitExample.py:
--------------------------------------------------------------------------------
1 | import sys
2 | while True:
3 | print('Type exit to exit.')
4 | response = input()
5 | if response == 'exit':
6 | sys.exit()
7 | print('You typed ' + response + '.')
--------------------------------------------------------------------------------
/static/src/factorialLog.py:
--------------------------------------------------------------------------------
1 | import logging
2 | logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
3 | logging.debug('Start of program')
4 |
5 | def factorial(n):
6 | logging.debug('Start of factorial(%s%%)' % (n))
7 | total = 1
8 | for i in range(1, n + 1):
9 | total *= i
10 | logging.debug('i is ' + str(i) + ', total is ' + str(total))
11 | return total
12 | logging.debug('End of factorial(%s%%)' % (n))
13 |
14 | print(factorial(5))
15 | logging.debug('End of program')
--------------------------------------------------------------------------------
/static/src/fiveTimes.py:
--------------------------------------------------------------------------------
1 | print('My name is')
2 | for i in range(5):
3 | print('Jimmy Five Times (' + str(i) + ')')
--------------------------------------------------------------------------------
/static/src/freezeExample.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/freezeExample.xlsx
--------------------------------------------------------------------------------
/static/src/freezeExample3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/freezeExample3.xlsx
--------------------------------------------------------------------------------
/static/src/globalStatement.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | global eggs
3 | eggs = 'spam'
4 |
5 | eggs = 'global'
6 | spam()
7 | print(eggs)
8 |
--------------------------------------------------------------------------------
/static/src/guests.txt:
--------------------------------------------------------------------------------
1 | Prof. Plum
2 | Miss Scarlet
3 | Col. Mustard
4 | Al Sweigart
5 | Robocop
--------------------------------------------------------------------------------
/static/src/headings.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/headings.docx
--------------------------------------------------------------------------------
/static/src/hello.py:
--------------------------------------------------------------------------------
1 | # This program says hello and asks for my name.
2 |
3 | print('Hello world!')
4 | print('What is your name?') # ask for their name
5 | myName = input()
6 | print('It is good to meet you, ' + myName)
7 | print('The length of your name is:')
8 | print(len(myName))
9 | print('What is your age?') # ask for their age
10 | myAge = input()
11 | print('You will be ' + str(int(myAge) + 1) + ' in a year.')
12 |
--------------------------------------------------------------------------------
/static/src/helloFunc.py:
--------------------------------------------------------------------------------
1 | def hello():
2 | print('Howdy!')
3 | print('Howdy!!!')
4 | print('Hello there.')
5 |
6 | hello()
7 | hello()
8 | hello()
9 |
--------------------------------------------------------------------------------
/static/src/helloFunc2.py:
--------------------------------------------------------------------------------
1 | def hello(name):
2 | print('Hello ' + name)
3 |
4 | hello('Alice')
5 | hello('Bob')
6 |
--------------------------------------------------------------------------------
/static/src/helloworld.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/helloworld.docx
--------------------------------------------------------------------------------
/static/src/inventory.py:
--------------------------------------------------------------------------------
1 | # inventory.py
2 | stuff = {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}
3 |
4 | def display_inventory(inventory):
5 | print("Inventory:")
6 | item_total = 0
7 | for k, v in inventory.items():
8 | print(str(v) + ' ' + k)
9 | item_total += v
10 | print("Total number of items: " + str(item_total))
11 |
12 | display_inventory(stuff)
13 |
--------------------------------------------------------------------------------
/static/src/lucky.py:
--------------------------------------------------------------------------------
1 | #! python3
2 | # Open several Google search results.
3 |
4 | import requests, sys, webbrowser, bs4
5 |
6 | print('Googling...') # display text while downloading the Google page
7 | res = requests.get('http://google.com/search?q=' + ' '.join(sys.argv[1:]))
8 | res.raise_for_status()
9 |
10 | soup = bs4.BeautifulSoup(res.text, features='lxml')
11 | linkElems = soup.select('.r a')
12 | numOpen = min(5, len(linkElems))
13 | for i in range(numOpen):
14 | urlToOpen = 'http://google.com' + linkElems[i].get('href')
15 | print('Opening', urlToOpen)
16 | webbrowser.open(urlToOpen)
17 |
--------------------------------------------------------------------------------
/static/src/magic8ball2.py:
--------------------------------------------------------------------------------
1 | import random
2 |
3 | messages = ['It is certain',
4 | 'It is decidedly so',
5 | 'Yes definitely',
6 | 'Reply hazy try again',
7 | 'Ask again later',
8 | 'Concentrate and ask again',
9 | 'My reply is no',
10 | 'Outlook not so good',
11 | 'Very doubtful']
12 |
13 | print(messages[random.randint(0, len(messages) - 1)])
14 |
--------------------------------------------------------------------------------
/static/src/mapit.py:
--------------------------------------------------------------------------------
1 | #! python3
2 |
3 | import webbrowser, sys, pyperclip
4 |
5 | if len(sys.argv) > 1:
6 | # get address from command line
7 | address = ' '.join(sys.argv[1:])
8 | else:
9 | # get address from clipboard
10 | address = pyperclip.paste()
11 |
12 | webbrowser.open('https://www.google.com/maps/place/' + address)
13 |
--------------------------------------------------------------------------------
/static/src/meetingminutes.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/meetingminutes.pdf
--------------------------------------------------------------------------------
/static/src/meetingminutes2.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/meetingminutes2.pdf
--------------------------------------------------------------------------------
/static/src/merged.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/merged.xlsx
--------------------------------------------------------------------------------
/static/src/mouseNow.py:
--------------------------------------------------------------------------------
1 | #! python3
2 | import pyautogui
3 | print('Press Ctrl-C to quit.')
4 | try:
5 | while True:
6 | # Get and print the mouse coordinates.
7 | x, y = pyautogui.position()
8 | positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
9 | print(positionStr, end='')
10 | print('\b' * len(positionStr), end='', flush=True)
11 |
12 | except KeyboardInterrupt:
13 | print('\nDone.')
14 |
--------------------------------------------------------------------------------
/static/src/multipleParagraphs.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/multipleParagraphs.docx
--------------------------------------------------------------------------------
/static/src/myPets.py:
--------------------------------------------------------------------------------
1 | myPets = ['Zophie', 'Pooka', 'Fat-tail']
2 | print('Enter a pet name:')
3 | name = input()
4 | if name not in myPets:
5 | print('I do not have a pet named ' + name)
6 | else:
7 | print(name + ' is my pet.')
8 |
--------------------------------------------------------------------------------
/static/src/passingReference.py:
--------------------------------------------------------------------------------
1 | def eggs(someParameter):
2 | someParameter.append('Hello')
3 |
4 | spam = [1, 2, 3]
5 | eggs(spam)
6 | print(spam)
7 |
--------------------------------------------------------------------------------
/static/src/picnicTable.py:
--------------------------------------------------------------------------------
1 | def printPicnic(itemsDict, leftWidth, rightWidth):
2 | print('PICNIC ITEMS'.center(leftWidth + rightWidth, '-'))
3 | for k, v in itemsDict.items():
4 | print(k.ljust(leftWidth, '.') + str(v).rjust(rightWidth))
5 |
6 | picnicItems = {'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}
7 | printPicnic(picnicItems, 12, 5)
8 | printPicnic(picnicItems, 20, 6)
9 |
--------------------------------------------------------------------------------
/static/src/prettyCharacterCount.py:
--------------------------------------------------------------------------------
1 | import pprint
2 | message = 'It was a bright cold day in April, and the clocks were striking thirteen.'
3 | count = {}
4 |
5 | for character in message:
6 | count.setdefault(character, 0)
7 | count[character] = count[character] + 1
8 |
9 | pprint.pprint(count)
10 |
--------------------------------------------------------------------------------
/static/src/printRandom.py:
--------------------------------------------------------------------------------
1 | import random
2 | for i in range(5):
3 | print(random.randint(1, 10))
--------------------------------------------------------------------------------
/static/src/produceSales.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/produceSales.xlsx
--------------------------------------------------------------------------------
/static/src/pw.py:
--------------------------------------------------------------------------------
1 | #! python3
2 | # An insecure password locker program.
3 |
4 | PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6',
5 | 'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',
6 | 'luggage': '12345'}
7 |
8 | import sys, pyperclip
9 | if len(sys.argv) < 2:
10 | print('Usage: py pw.py [account] - copy account password')
11 | sys.exit()
12 |
13 | account = sys.argv[1] # first command line arg is the account name
14 |
15 | if account in PASSWORDS:
16 | pyperclip.copy(PASSWORDS[account])
17 | print('Password for ' + account + ' copied to clipboard.')
18 | else:
19 | print('There is no account named ' + account)
20 |
--------------------------------------------------------------------------------
/static/src/readDocx.py:
--------------------------------------------------------------------------------
1 | #! python3
2 |
3 | import docx
4 |
5 | def getDocxText(filename):
6 | doc = docx.Document(filename)
7 | fullText = []
8 | for para in doc.paragraphs:
9 | fullText.append(para.text)
10 | return '\n\n'.join(fullText)
11 |
--------------------------------------------------------------------------------
/static/src/removeCsvHeader.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/removeCsvHeader.zip
--------------------------------------------------------------------------------
/static/src/restyled.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/restyled.docx
--------------------------------------------------------------------------------
/static/src/sameName.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | eggs = 'spam local'
3 | print(eggs) # prints 'spam local'
4 |
5 | def bacon():
6 | eggs = 'bacon local'
7 | print(eggs) # prints 'bacon local'
8 | spam()
9 | print(eggs) # prints 'bacon local'
10 |
11 | eggs = 'global'
12 | bacon()
13 | print(eggs) # prints 'global'
14 |
--------------------------------------------------------------------------------
/static/src/sameName2.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | global eggs
3 | eggs = 'spam'
4 |
5 | eggs = 'global'
6 | spam()
7 | print(eggs)
8 |
--------------------------------------------------------------------------------
/static/src/sameName3.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | print(eggs) # ERROR!
3 | eggs = 'spam local'
4 |
5 | eggs = 'global'
6 | spam()
7 |
--------------------------------------------------------------------------------
/static/src/sameName4.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | print(eggs) # ERROR!
3 | eggs = 'spam local'
4 |
5 | eggs = 'global'
6 | spam()
7 |
--------------------------------------------------------------------------------
/static/src/sameNameLocalGlobal.py:
--------------------------------------------------------------------------------
1 | def spam():
2 | print(eggs) # ERROR!
3 | eggs = 'spam local'
4 |
5 | eggs = 'global'
6 | spam()
7 |
--------------------------------------------------------------------------------
/static/src/sampleChart.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/sampleChart.xlsx
--------------------------------------------------------------------------------
/static/src/styled.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/styled.xlsx
--------------------------------------------------------------------------------
/static/src/styles.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/styles.xlsx
--------------------------------------------------------------------------------
/static/src/swordfish.py:
--------------------------------------------------------------------------------
1 | while True:
2 | print('Who are you?')
3 | name = input()
4 | if name != 'Joe':
5 | continue
6 | print('Hello, Joe. What is the password? (It is a fish.)')
7 | password = input()
8 | if password == 'swordfish':
9 | break
10 | print('Access granted.')
--------------------------------------------------------------------------------
/static/src/textMyself.py:
--------------------------------------------------------------------------------
1 | #! python3
2 |
3 | # preset values:
4 | accountSID = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
5 | authToken = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
6 | myNumber = '+15559998888'
7 | twilioNumber = '+15552225678'
8 |
9 | from twilio.rest import TwilioRestClient
10 |
11 | def textmyself(message):
12 | client = TwilioRestClient(accountSID, authToken)
13 | client.messages.create(body=message, from_=twilioNumber, to=myNumber)
14 |
--------------------------------------------------------------------------------
/static/src/threadDemo.py:
--------------------------------------------------------------------------------
1 | # https://autbor.com/threadNapDemo.py – Multithreaded demo.
2 | import threading, time
3 | print('Start of program.')
4 |
5 | def take_a_nap():
6 | time.sleep(5)
7 | print('Wake up!')
8 |
9 | threadObj = threading.Thread(target=take_a_nap)
10 | threadObj.start()
11 |
12 | print('End of program.')
13 |
--------------------------------------------------------------------------------
/static/src/threadNapDemo.py:
--------------------------------------------------------------------------------
1 | # https://autbor.com/threadNapDemo.py – Multithreaded demo.
2 | import threading, time
3 | print('Start of program.')
4 |
5 | def take_a_nap():
6 | time.sleep(5)
7 | print('Wake up!')
8 |
9 | threadObj = threading.Thread(target=take_a_nap)
10 | threadObj.start()
11 |
12 | print('End of program.')
13 |
--------------------------------------------------------------------------------
/static/src/twoPage.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/twoPage.docx
--------------------------------------------------------------------------------
/static/src/updatedProduceSales.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/updatedProduceSales.xlsx
--------------------------------------------------------------------------------
/static/src/validateInput.py:
--------------------------------------------------------------------------------
1 | while True:
2 | print('Enter your age:')
3 | age = input()
4 | if age.isdecimal():
5 | break
6 | print('Please enter a number for your age.')
7 |
8 | while True:
9 | print('Select a new password (letters and numbers only):')
10 | password = input()
11 | if password.isalnum():
12 | break
13 | print('Passwords can only have letters and numbers.')
--------------------------------------------------------------------------------
/static/src/vampire.py:
--------------------------------------------------------------------------------
1 | if name == 'Alice':
2 | print('Hi, Alice.')
3 | elif age < 12:
4 | print('You are not Alice, kiddo.')
5 | elif age > 100:
6 | print('You are not Alice, grannie.')
7 | elif age > 2000:
8 | print('Unlike you, Alice is not an undead, immortal vampire.')
9 |
--------------------------------------------------------------------------------
/static/src/watermark.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/watermark.pdf
--------------------------------------------------------------------------------
/static/src/zeroDivide.py:
--------------------------------------------------------------------------------
1 | def spam(divideBy):
2 | return 42 / divideBy
3 |
4 | try:
5 | print(spam(2))
6 | print(spam(12))
7 | print(spam(0))
8 | print(spam(1))
9 | except ZeroDivisionError:
10 | print('Error: Invalid argument.')
11 |
--------------------------------------------------------------------------------
/static/src/zophie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/src/zophie.png
--------------------------------------------------------------------------------
/static/styles3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/styles3.xlsx
--------------------------------------------------------------------------------
/static/unmerged3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/unmerged3.xlsx
--------------------------------------------------------------------------------
/static/wow_such_zophie_thumb.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/wow_such_zophie_thumb.webp
--------------------------------------------------------------------------------
/static/writeFormula3.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/asweigart/automatetheboringstuffwithpythondotcom/4fe493cd726c26c9bbbc9fe73f32afc934ae657d/static/writeFormula3.xlsx
--------------------------------------------------------------------------------