├── .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 --------------------------------------------------------------------------------