From dba88b396a1c9efd7ce6a582260679578c714717 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Mon, 7 Oct 2024 09:04:25 -0400 Subject: [PATCH 01/60] Updating the notebooks --- chapters/chap00.ipynb | 2 +- chapters/chap01.ipynb | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/chapters/chap00.ipynb b/chapters/chap00.ipynb index bbad5d8..55b62c2 100644 --- a/chapters/chap00.ipynb +++ b/chapters/chap00.ipynb @@ -251,7 +251,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.11" } }, "nbformat": 4, diff --git a/chapters/chap01.ipynb b/chapters/chap01.ipynb index 3d9374f..bd3875d 100644 --- a/chapters/chap01.ipynb +++ b/chapters/chap01.ipynb @@ -169,9 +169,9 @@ "source": [ "Notice that the result of the division is `42.0` rather than `42`. That's because there are two types of numbers in Python: \n", "\n", - "* **integers**, which represent whole numbers, and \n", + "* **integers**, which represent numbers with no fractional or decimal part, and \n", "\n", - "* **floating-point numbers**, which represent numbers with a decimal point.\n", + "* **floating-point numbers**, which represent integers and numbers with a decimal point.\n", "\n", "If you add, subtract, or multiply two integers, the result is an integer.\n", "But if you divide two integers, the result is a floating-point number.\n", @@ -333,7 +333,7 @@ "## Arithmetic functions\n", "\n", "In addition to the arithmetic operators, Python provides a few **functions** that work with numbers.\n", - "For example, the `round` function takes a floating-point number and rounds it off to the nearest whole number." + "For example, the `round` function takes a floating-point number and rounds it off to the nearest integer." ] }, { @@ -581,7 +581,7 @@ "source": [ "The other arithmetic operators don't work with strings.\n", "\n", - "Python provides a function called `len` that computes the length of a string.`" + "Python provides a function called `len` that computes the length of a string." ] }, { @@ -961,10 +961,10 @@ "A symbol, like `+` and `*`, that denotes an arithmetic operation like addition or multiplication.\n", "\n", "**integer:**\n", - "A type that represents whole numbers.\n", + "A type that represents numbers with no fractional or decimal part.\n", "\n", "**floating-point:**\n", - "A type that represents numbers with fractional parts.\n", + "A type that represents integers and numbers with decimal parts.\n", "\n", "**integer division:**\n", "An operator, `//`, that divides two numbers and rounds down to an integer.\n", @@ -1063,7 +1063,7 @@ "\n", "* I also mentioned the order of operations. For more details, ask \"What is the order of operations in Python?\"\n", "\n", - "* The `round` function, which we used to round a floating-point number to the nearest whole number, can take a second argument. Try asking \"What are the arguments of the round function?\" or \"How do I round pi off to three decimal places?\"\n", + "* The `round` function, which we used to round a floating-point number to the nearest integer, can take a second argument. Try asking \"What are the arguments of the round function?\" or \"How do I round pi off to three decimal places?\"\n", "\n", "* There's one more arithmetic operator I didn't mention; try asking \"What is the modulus operator in Python?\"" ] From 5f593506611a4686bad6445580a44d82a184a570 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Mon, 7 Oct 2024 09:04:25 -0400 Subject: [PATCH 02/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579109 -> 579113 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index ef1705b9325b16e1036e1f3c5aabcf043aecd8d7..8dcea58079950749149ed4aac2fb4d70c9204f43 100644 GIT binary patch delta 10891 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 W-+s{A-2VzqnujHV9vFdr(f>d7x$ocr delta 10828 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 F{{!qm@f-jE From 47436968d039d5e16fa5f51440aebb2d27cbfac5 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Mon, 7 Oct 2024 10:52:39 -0400 Subject: [PATCH 03/60] Updating the notebooks --- chapters/chap08.ipynb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/chapters/chap08.ipynb b/chapters/chap08.ipynb index f3b9480..aa9fe1f 100644 --- a/chapters/chap08.ipynb +++ b/chapters/chap08.ipynb @@ -1733,12 +1733,12 @@ "Each attempt has to be recognized as a word, not including proper nouns.\n", "After each attempt, you get information about which of the letters you guessed appear in the target word, and which ones are in the correct position.\n", "\n", - "For example, suppose the target word is `MOWER` and you guess `TRIED`. You would learn that `E` is in the word and in the correct position, `R` is in the word but not in the correct position, and `T`, `I`, and `D` are not in the word.\n", + "For example, suppose the target word is `MOWER` and you guess `TRIED`.\n", + "You would learn that `E` is in the word and in the correct position, `R` is in the word but not in the correct position, and `T`, `I`, and `D` are not in the word.\n", "\n", "As a different example, suppose you have guessed the words `SPADE` and `CLERK`, and you've learned that `E` is in the word, but not in either of those positions, and none of the other letters appear in the word.\n", - "\n", "Of the words in the word list, how many could be the target word?\n", - "Write a function called `check_word` that takes a five-letter word and checks whether it could be the target word." + "Write a function called `check_word` that takes a five-letter word and checks whether it could be the target word, given these guesses." ] }, { @@ -1842,7 +1842,7 @@ "\n", "In particular, he says it is \"shameless in its repetition of the same adjective,\" and mentions in particular the number of times \"its characters either shudder or turn pale.\"\n", "\n", - "To see whether his objection is valid, let's count the number number of times the word `pale` appears in any form, including `pale`, `pales`, `paled`, and `paleness`, as well as the related word `pallor`. \n", + "To see whether his objection is valid, let's count the number number of lines that contain the word `pale` in any form, including `pale`, `pales`, `paled`, and `paleness`, as well as the related word `pallor`. \n", "Use a single regular expression that matches all of these words and no others." ] }, @@ -1936,7 +1936,7 @@ "tags": [] }, "source": [ - "By my count, these words appear `223` times in a book that contains about `461,000` words. Mr. Eco might have a point." + "By my count, these words appear on `223` lines of the book, so Mr. Eco might have a point." ] }, { From ed8e598e3230930fadf7cff364cbe191bed50abf Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Mon, 7 Oct 2024 10:52:40 -0400 Subject: [PATCH 04/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579113 -> 579111 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 8dcea58079950749149ed4aac2fb4d70c9204f43..6a177d1beb453e5a488e723662aeb774164ec927 100644 GIT binary patch delta 7327 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 Date: Wed, 9 Oct 2024 08:48:22 -0400 Subject: [PATCH 05/60] Updating the notebooks --- chapters/chap11.ipynb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/chapters/chap11.ipynb b/chapters/chap11.ipynb index 9ff01be..3b8c7f7 100644 --- a/chapters/chap11.ipynb +++ b/chapters/chap11.ipynb @@ -428,14 +428,13 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 2, "id": "2debf30c", "metadata": {}, "outputs": [], "source": [ "t = tuple('abc')\n", - "s = [1, 2, 3]\n", - "d = {t: s}\n", + "d = {'key': t}\n", "d" ] }, @@ -2385,7 +2384,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.11" } }, "nbformat": 4, From 64bc2d79cb60bb122f2d00fb669a29cfb01a2668 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 9 Oct 2024 08:48:22 -0400 Subject: [PATCH 06/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579111 -> 579105 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 6a177d1beb453e5a488e723662aeb774164ec927..7d09a95920c97795f45c7516a81d42846bd7bbc4 100644 GIT binary patch delta 13527 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 aUyvs)WD!Oe*p;@k2qOyBJr48NVgEk?Fig_` delta 13446 zcmZvjWl&vFvbKSPySo$I-QC??g1ZLSgS!(rNN^1r+}+)RyGwA_@a1Oe&di@b~ zf0TUo{?}S_wl_Eo1JWNQUHYzrO*1wyuuq`cVsOU)Jv->27@QJ|3*>IE-IQ!#aBbx0 z*9dq1}??U4(s;nY-h(`F?PDH zy>`gW0k4LJ<$9T3>6I{^je?Jb~h9= zx9UhPer1tcRd*Q6>Q)LL!~IBk-0C4%P^@jG8(WyR;&$)+ZUi*^EZteL^u}i}(Z9`y zh~0$6WWV*eKFAyJgL^8A^TS|&1GatRB6_~DqDAL3umd~m*Mq~6aD_XaQMdQwB}v!& z+FJK}!u`4D$IEHq#GY8u^XWaX`!(QNb5gq|My*8G<5C9{&*=u#l*?F3c9OGMc~XFm zd6y^K|K)HpLjrUfv^#O$f=ih}AR34B-+^Q^a<*dv2&1~705&O`> z!yIcd4xKBDr#C-HN!fK(4IRAv`{(XUXzZ}Bw{zJ z9Wt`JPcL>7K22I9KC}_V6SL>aVWiqY6L>n+hJ)KM<0@=c3Pr5tR4^Ie z?_4>+o9M^%wQ%U+E>pEP7&e0iC(9uQq=WC4Qhjo+%jLA6^=w_oSDKPXxy<0w;}|Cx zY30)FU0-k!kJq_Ub-jwyu+O-nwqPic2;Ea-M zdl!0TsFB2(=mA{;1uzdNp+WXPTw=s2&N=6qtQBXzdUKX>C00+7QjQGQ^`XZih$#Cl zB~L?xVuhurQ^dmX8gFInP?L!F;u%dyZmbYc<1Rx#CFoB*2?d*KJS$k9Yaq(P3cv%} za6psn7{~qE46S}SrEfGjBBdi&L{9|&2Cq=rwc`#dY-hnCppR zkmT8>+4kG2uD_7dKnsQ08cxhn%yJeG(V*7@s#ZLXP|PVuo~0R!`O@lzTn*1uTE)=V zT&v*$${mpgg=z;nc3^J5UU{w zaltWA>k#fyX|#-&GYsOklBq!zMX}17Qci0R>`8s5QlmecUNV$98Ai^PVth^IPd0L) zksL_@Vz`K+h{;p@tA6}*)W4Py2rDks?77m}+Tlqpp0gp{UNmbP`XW}M6) zs36c{T6v7d(r^UF;LA9DU;q6m5N537cxkGm0FuJzoD5(Ja4J1@aAzlOH1+wxM z!fS#Ga3)MB`q8)I4#@d}lRp8mioU8bw3h*pOc$CX&u-8azI0v!5l1tpj9BjK<0e$5 z{I&J8*uolY9SZAFw;)3L2EkwXWoFe(^Lz4ae%T=QDHVf~RvG)et(mc5mOnT;GcyuO zbl7lAwuhvjVm*Du77C5f-XQ`CgW^1rN#R+NoV$luGP8D8HEi*t*4A-?VxJIn#)uV% z4+%sG!_m3W4&|PLpi? zMkgS(itlY=O!Ik1dD?3SS$VHl=e={j{n0FMJ9K2c+!_S+6@<$m`X`5*`U$PUH zWbW>8J~nqtKLZ(d+^>D%0Ls=G=lO^RU&L(IaQxx-V?x!!r+8X!_5A z(tQGc{#5I$P*m-PFDu#0%ST~E-s#5bv=ywt;FICqlBl|?Hy@adJhrF04s%1-A}+>f zb}=n@S|C~WxwhO1ODcIS_f;qXStKbT)xbCPH<{JU-RIs_{dp00Y05iIjCo78pes%+ zc$Nv@!YMa^=%t})X+Z5jk0%{75^PUeK6NXQ|NB6{6$8Wt>9o}1cu%!Xtw100!g7`-V_fMB??mEV)xGeE-f4&{tYca%^qouU85)4&P~XWEwuZS3xNHhT-99s>-H#T;7QsSHPg^X18kmoDAq(`j79OP!BB8@- zsJTiAN&?L|=x{4GjHgQ)XOSoH9hJI@WFYcF)2 zGxf0Jmc`>4OirSHl^12H%9Cq^0KX`Kt%qWE+OFlJ$&rS1n7OzkY10>?U4gR}H~qwG zgK1fJh?0h;6Rk*}ZA9ldxv_T4-45b{YbU~ENm8WYKo0D=1OZ1BsA@jKj5Il*=j{bn zD}N1a(u54=nBIWWG2v`$JxNI()3M`#2ALB7S&vwMb3fsa+rmiSK+8sfOJ5!h{$M88 zXzKb+7`l3DD1ax+2D)!23x;iYR_8Zn4iWTW!%$NuWUoT2fdUr&ZH*eCsoLJwSB&RK zl(<+&Y$G0=MO8i6QM8?Nb~;0#Tb^%jJ)b7JWU2P@a0MSf0#>llcE3g=8=L=DGZF26 zk%UNvEM(HSw|;41-kN2t9xbk&lFf~Z6r7pJ!DYj zV(!qC=3Wk4Xhb8qQ4jNgqIm~|=+Xt zixBu&KwgH#9Se&YNx4>YC2y%k54A(EJLrw?R1?E^y3gp0eS8lE))FY(`Y_9Wl?|>< zzZkZS4z!gh+Q(PBahq=l5?ZBg#G#71Lp~P@mqOB0+K-Rnj4Y`u>2{3a<76T8D;Th+ z!>P09E1BJxfU`pa%oe6^(R?e5_HCc1Ob(}y*((&d-@rJ$GBWC274kvlV_ z42cbyFZX&8+%J6`py{Y>0KH~s-U*w=FO54p*^RiRp%|Ho3{e#VCok=bx(|s(> zTc_d#ZBV$V1jM!|{giyA(|eNFj{yW_@&&Tx?@rLrsN4m+b_@7yfE7{s)LrE@(hUGM zC=+sgNJM)T$Ro^AF!3W>{n;i^S@x3{eI3<7KN9m6Kl|Y%3z#R6c(iU%AXA@>r(mH| zHgQA%-`HoP9>|QH)CR4z@48lJ!6r*kXUc8HoyZ#eOi*M_&30Z$aUORrAw+UkrLre% zH-C1c6P2A;_3e_6Y8$8>*DHh~#HKQG8%-ymB9h}kzJ}2 zl$ptyZDCN7nQ%6}gDrU4HtP6{Mv^haQ;< zhS0k@JDln^g9^=1$1KMf(ffNMsg@R%taZ_&wVp>-&MkTU?KZi{xH~9>PFqEe`KEee zpabxrVo5clf~xlW@8xw!j8%j+d-z#H&q|@x2Ysm%*D7 z>&2{6pY<@*z8eP0bjn>zT`t<=wswbouGJWo`}hWvYQEHvov3$$Xp=ss322og{4AxW zv>I8d`-L@)I{3A#Ih|y7@TPy;8{P0@M)pby_Vh_xA<-6jdG z!@;oRS0g3~$zz*1D}|tyPzg+M#1H&{?WhtboFTzCumIPmA_7j`_orhiFq`K&ep8aS zM~z_^#m(KtGp1q))w7#=nBZB55%%qB13c_i7gbIdvF6(Xy5oQ?iW8-+5{5Ypn{{K* zWHUHEp$NSAHt%_5_zWAjJqfZvEm|q3oUySDq}2jW!bkD-Wro*;fG5tN5F##q|JqKi zxEm(?!-jlUHSRs6DNh^>{dY%B#5gTf|5Nr-kK;B|0aID(G?}~dAiw(@jLOLEu}`T< z#{1v#9rFSWTE65c@asq_u3fZwcH-T_-Cou1bu4YmqwKa~U;4YJ{J#8^w&lWxC7OJ~ z6Oq~Wc=YP2o2y))n&w8njBkc+Dkp8)#NL;gyBgAvmODRLw=yPbQ5F$~)!1CbSiZf9 z@sm>hl+WO57h>qAuND*2m3gteg3kA0kw%)L$mu}e0e_eXWCswa75o#{(x-iLCG1hO z-XUd6Wr^Xy-l6E~TF^`@I5Bu4=P4RKsE>n70UaHA>ztZxABEg5#j_RpTeu|7fO)xOFiymd-SSe2d z+lNzVuR9*OKvY&y&5Wre780n92yERDTEVaEoxDyXXfj5Z=YzYS z>#jI(c#yLk<=x$XUT)4D{zvTFW7ty5f)*rRo1@azKI5G5r!p|JTT+X0JI!C-KHR5q za*C{(a}2&$w(ZXvN9dTg77kYO@T<@}u5#dCfgTM4YwK4sN>kR8jDcQPQSR0-%j~Cq z91a{kEg^~{=6|m3OIFpb=`DSF;rYhJ{QJ?S2LhDW&aGSg3|^Y%9j^bRI!I_2dSgj~ zcTV$tTcO`_VYwfdTzSMBm#{YEwwuqxquq#eoTln4=XKmvvX4p0Gc@5**qq{ksanSh zQ1$VhR`}g}=mke8H(rpRHm5xvXgz!jU|b-W*={GW4KG|YBqu97L_d_msw!T12)n-w zSo9QooRVpYuS27W}HgXgt(Bn&O_hKCU5HCiL*7Bt+sXGoMo z*_=zmRFGsDU$ziX7axm<4L>3~M{Su=OW*kgi)W~Hwf$9E)iMPWi?*+Se}{=oy2g|ITc|tu=w~Vsh#`gizHgmUy>;R&zUHusN@X)^)m4p4 zMht$5?K{PHnw*OF%ZLkTnLr2&`JZQ#8y9KXNiwLA_#%(<8_L}a+1zD7*zDE^2Qu(Z z^Tjkd?2;QWKzA3s?4%ynn`>sxuRhRgCpa-oL#WJR5FsXrvyCly~p>49&v_O6UeR0!B@!EKF!e z*NcWd%MY`a#4j4zi}*#hWFeyp+A6Cp(Wi;A!_4vuOUt5FW#@9U!jlI1$MB?Q00VZF zJAP;zaK=qkt+w93n}IQ3t$uUPPE}~X6`>K1>K|oTju;1EM-l4P9z?QB>0q;6CCLfM zQOjiCI_Xv|$*cuO06U3BfUtZwfpl14+*NJI^NWH**lJsl7dRC#9w15AN`QqaSh%Yv zUyRjzdDU^fU&}m|ONuUL_$#l&Kuf-l^eY=8VMct5uHAl-veU%zNKo0R-YB3BZZ*cD zt;OH$n4bumkO$e|bF4Ts5<;JGJI+xMo{jxsLa1WvFxyWvWzWh_z_}rp(jwZx*nU1{ z-~JrYzGYEowwr$A++b;DBOYzsd%1`&X3P5Qw-zIr#1Gl%@~uH|uy|^lfkSAYR^WPA0>A<`7bOxYurhNl5H}RZw&P0ixNjP!WCZk z?O62D9i9e*13lr->jcw2LqcLQ0SK&l)u)lYLH5PB#scoVz%{^p(Y(YIh3ywUjKuJ9 z4xfz;pzp2+UHI^}GBS|vDlvXLV)t%utKEIjGWl*WrBGQlvM<|Odz~RDf`9gb=mgJm z7tT|k4hE{9-q!{7N))V*2ikBl&P!@N=(R(!BHgXu|(w&ixohR6J5a{_kz_7 z<{DaZhg}E(Om1R?cyBfXP45i{eH5Y7YQmOS*8}`9yVtji!3;Jdsr}XwI_w=u&=Z7E zZ^#HM>a2N~oerLBnQ z1w@ZeX32TH8PAB>632YP64`Lgt}-Bp5u}s88%~eBGT8?qq8>%mSBsq>Q@#9 ze1aJAf8|MKD|9kH4diV6P;4_Ghec#L7bZH+QV;-QU+N}p76b6e?i5@>5FUL%`^xTtjI?w<(n>s)DqNTMkCpUy5p) zJ&2$X>59Q-zhtSM8V;v4Dx~V|6h4PSESI5~qO)BwkS^DOcSJO12Kk^D)nTiQ5m332 za)oU1bcy+|ATQ{LoXVK~+8%dvL^m|?;n>Fp2BjgLFqqQZSQIeX61z~LAlV*KI@;#J z)x%EcH5il4^Du$2whg}a%;na?7C#IT=; zCNsR4SlGX=`XY}YH*K)9Y|F*zwsD@Cb1(5^o(QE*G0F|=3r7x89){c@u7%Q6d+7uM z$G=hHB9b-iA4UV;H8d-377i?Wx%$I+pcc_)Ak5Cc)UF_`botS5Qoc$x^pG$QZYFPh z#7azqa^L08-@_}0x&80)`sauGTYufol(2bTqD`x~?5ljsCcd6j{``A9h`@v;17_3< zF_%mz0nbqrVI8TUpdS|eje&Ztkj(T!s5A)855;j>HARLor z&waXmHrEC(q?UZ8DW)#9^m*lh8@jFpp%u)5HF$j#C)umRy(^&HE)BbSJGa=5?2WpS zl$)^V+or2UT*1;+Qpnqu{REQ*$_}0gzJ%xY5cqcCv~`{o%>KrpI9VQkQW~E$vq$bp_L%0iC>B?hMzwS?thLCrjtw5d4iV51lNOqZVL?in@w9rS z-1zX$09izA1>&w6W#|5qnnt&^&|l7NYgxNHjMVA3zQRX6;tSkHT(*h@mK}pUs=vp> zaKLpPipLhQ{Xo$mEu~xwV(Y%o^goA0U=IgY(6w*od#Ls7Y}h8V#4qw5cysaHYt6EW zk5r)jQk}nHagRC`Ij`oJS29J%PT`Ze3~Xi5+pxY^bX~bI?PW9Z*m0#S4#BvEIQNWO z%0D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 From c51e9b2fd7011d8161b4926fdf4ba348389735cc Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 15 Oct 2024 18:03:44 -0400 Subject: [PATCH 07/60] Updating the notebooks --- chapters/chap04.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/chap04.ipynb b/chapters/chap04.ipynb index aed263a..2fa75dc 100644 --- a/chapters/chap04.ipynb +++ b/chapters/chap04.ipynb @@ -971,7 +971,7 @@ "id": "8b8faaf6", "metadata": {}, "source": [ - "## Exercise\n", + "### Exercise\n", "\n", "Write a function called `rhombus` that draws a rhombus with a given side length and a given interior angle. For example, here's a rhombus with side length `50` and an interior angle of `60` degrees." ] From 79d11b0a95276767a590c4733a668cd7df35c441 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 15 Oct 2024 18:03:44 -0400 Subject: [PATCH 08/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579105 -> 579103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 7d09a95920c97795f45c7516a81d42846bd7bbc4..05d36fef412d61688a06579aa3948ed8b22d4500 100644 GIT binary patch delta 2915 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 o Date: Thu, 17 Oct 2024 08:05:27 -0400 Subject: [PATCH 09/60] Updating the notebooks --- chapters/chap04.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/chap04.ipynb b/chapters/chap04.ipynb index 2fa75dc..f96a7e4 100644 --- a/chapters/chap04.ipynb +++ b/chapters/chap04.ipynb @@ -346,7 +346,7 @@ "Adding a parameter to a function is called **generalization** because it makes the function more general: with the previous version, the square is always the same size; with this version it can be any size.\n", "\n", "If we add another parameter, we can make it even more general.\n", - "The following function draws regular polygons with a given of sides." + "The following function draws regular polygons with a given number of sides." ] }, { From 4f17981095de2bceba8a8d63bb19a7bcc271aa9c Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Thu, 17 Oct 2024 08:05:27 -0400 Subject: [PATCH 10/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579103 -> 579100 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 05d36fef412d61688a06579aa3948ed8b22d4500..4859ba42b561d7e89062fecf4ad0b3cb9780e2f1 100644 GIT binary patch delta 10071 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 delta 10073 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 Date: Tue, 29 Oct 2024 12:26:34 -0400 Subject: [PATCH 11/60] Updating the notebooks --- chapters/chap07.ipynb | 114 ++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 61 deletions(-) diff --git a/chapters/chap07.ipynb b/chapters/chap07.ipynb index 18f71b1..31b2118 100644 --- a/chapters/chap07.ipynb +++ b/chapters/chap07.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "f0c8eb18", "metadata": { "tags": [] @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "6b8569b8-1576-45d2-99f6-c7a2c7e100c4", "metadata": {}, "outputs": [], @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "6cb5b573-601c-42f5-a940-f1a4d244f990", "metadata": {}, "outputs": [], @@ -109,7 +109,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "7040a890-6619-4ad2-b0bf-b094a5a0e43d", "metadata": {}, "outputs": [], @@ -129,7 +129,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "40fd553c-693c-4ffc-8e49-1d7de3c4d4a7", "metadata": {}, "outputs": [], @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "8a34174b-5a77-482a-8480-14cfdff16339", "metadata": {}, "outputs": [], @@ -172,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "0909121d-5218-49ca-b03e-258206f00e40", "metadata": {}, "outputs": [], @@ -194,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "3c4d8138-ddf6-46fe-a940-a7042617ceb1", "metadata": {}, "outputs": [], @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "5c463051-b737-49ab-a1d7-4be66fd8331f", "metadata": {}, "outputs": [], @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "a7b7ac52-64a6-4dd9-98f5-b772a5e0f161", "metadata": { "tags": [] @@ -256,7 +256,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "1ad13ce7-99be-4412-8e0b-978fe6de25f2", "metadata": {}, "outputs": [], @@ -274,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "dc2054e6-d8e8-4a06-a1ea-5cfcf4ccf1e0", "metadata": {}, "outputs": [], @@ -299,7 +299,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "eaea1520-0fb3-4ef3-be6e-9e1cdcccf39f", "metadata": {}, "outputs": [], @@ -318,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "f602bfb6-7a93-4fb8-ade6-6784155a6f1a", "metadata": {}, "outputs": [], @@ -340,7 +340,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "cf3b8b7e-5fc7-4bb1-b628-09277bdc5a0d", "metadata": { "tags": [] @@ -377,7 +377,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "6bf8a104", "metadata": {}, "outputs": [], @@ -396,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "0fe7ae60", "metadata": {}, "outputs": [], @@ -415,7 +415,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "8a09bc24", "metadata": { "tags": [] @@ -429,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "36a45674-7f41-4850-98f1-2548574ce958", "metadata": { "tags": [] @@ -458,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "id": "ba2ab90b", "metadata": { "tags": [] @@ -470,7 +470,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "id": "88496dc4", "metadata": {}, "outputs": [], @@ -491,14 +491,14 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "id": "4a0c46b9", "metadata": {}, "outputs": [], "source": [ "%%expect NameError\n", "\n", - "y = y + 1" + "z = z + 1" ] }, { @@ -512,14 +512,14 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "id": "2220d826", "metadata": {}, "outputs": [], "source": [ - "y = 0\n", - "y = y + 1\n", - "y" + "z = 0\n", + "z = z + 1\n", + "z" ] }, { @@ -534,13 +534,13 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "id": "d8e1ac5a", "metadata": {}, "outputs": [], "source": [ - "y += 2\n", - "y" + "z += 2\n", + "z" ] }, { @@ -563,7 +563,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "id": "0afd8f88", "metadata": {}, "outputs": [], @@ -587,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "id": "8686b2eb-c610-4d29-a942-2ef8f53e5e36", "metadata": {}, "outputs": [], @@ -607,7 +607,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "id": "89a05280", "metadata": {}, "outputs": [], @@ -632,7 +632,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "id": "9d29b5e9", "metadata": {}, "outputs": [], @@ -650,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "id": "304dfd86", "metadata": {}, "outputs": [], @@ -679,7 +679,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "id": "fe6431b7", "metadata": {}, "outputs": [], @@ -698,7 +698,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "id": "85d3fba6", "metadata": {}, "outputs": [], @@ -720,7 +720,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "id": "2d653847", "metadata": {}, "outputs": [], @@ -740,7 +740,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "id": "a92a81bc", "metadata": {}, "outputs": [], @@ -758,7 +758,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "id": "d15f83a4", "metadata": {}, "outputs": [], @@ -776,7 +776,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "id": "e7958af4", "metadata": {}, "outputs": [], @@ -787,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "id": "020a57a7", "metadata": {}, "outputs": [], @@ -797,7 +797,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "id": "0b979b20", "metadata": {}, "outputs": [], @@ -818,7 +818,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "id": "bd29ff63", "metadata": {}, "outputs": [], @@ -840,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "id": "9369fb05", "metadata": {}, "outputs": [], @@ -858,7 +858,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "id": "eb32713a", "metadata": {}, "outputs": [], @@ -876,7 +876,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 41, "id": "7e65a9fb", "metadata": {}, "outputs": [], @@ -912,7 +912,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 42, "id": "3982e7d3", "metadata": {}, "outputs": [], @@ -949,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 43, "id": "40ef00d3", "metadata": {}, "outputs": [], @@ -971,7 +971,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 44, "id": "f37cfd36", "metadata": {}, "outputs": [], @@ -994,7 +994,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 45, "id": "58c916cc", "metadata": {}, "outputs": [], @@ -1024,7 +1024,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 46, "id": "7a325745", "metadata": {}, "outputs": [], @@ -1093,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "bc58db59", "metadata": { "tags": [] @@ -1617,14 +1617,6 @@ "# Solution goes here" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "102df097", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "a7f4edf8", From cbe867b8c04617eff64ab286f57b1d39985c572c Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 29 Oct 2024 12:26:34 -0400 Subject: [PATCH 12/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579100 -> 579082 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 4859ba42b561d7e89062fecf4ad0b3cb9780e2f1..a350fe5621e13dba0c33c8d3ab409162bfd36ed1 100644 GIT binary patch delta 9396 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 TIG_+ZJBuuVSTv0M>yZBk&6O#h delta 9448 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 Date: Tue, 29 Oct 2024 13:43:29 -0400 Subject: [PATCH 13/60] Updating the notebooks --- chapters/chap07.ipynb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/chapters/chap07.ipynb b/chapters/chap07.ipynb index 31b2118..0b231c6 100644 --- a/chapters/chap07.ipynb +++ b/chapters/chap07.ipynb @@ -493,7 +493,9 @@ "cell_type": "code", "execution_count": 22, "id": "4a0c46b9", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ "%%expect NameError\n", @@ -871,7 +873,7 @@ "id": "b2acc611", "metadata": {}, "source": [ - "`uses_only` converts `word` and `letters` to lowercase, so it works with any combination of cases. " + "`uses_any` converts `word` and `letters` to lowercase, so it works with any combination of cases. " ] }, { From 669af39d5b1a3fac5da6e66a2edd723f24705dde Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 29 Oct 2024 13:43:29 -0400 Subject: [PATCH 14/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579082 -> 579083 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index a350fe5621e13dba0c33c8d3ab409162bfd36ed1..ce5c0fdf89f0032a08b15bd0e214ee4172e50d0e 100644 GIT binary patch delta 7149 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 delta 7113 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 A#{d8T From 91088f41e82fdfb9e55be01893af827e1207e3f1 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sun, 3 Nov 2024 18:19:06 -0500 Subject: [PATCH 15/60] Updating the notebooks --- chapters/chap08.ipynb | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/chapters/chap08.ipynb b/chapters/chap08.ipynb index aa9fe1f..1323762 100644 --- a/chapters/chap08.ipynb +++ b/chapters/chap08.ipynb @@ -1203,7 +1203,7 @@ "metadata": {}, "outputs": [], "source": [ - "pattern = r'Mina|Murray'\n", + "pattern = 'Mina|Murray'\n", "result = find_first(pattern)\n", "result.string" ] @@ -1429,6 +1429,8 @@ }, "outputs": [], "source": [ + "# Here's the pattern I used (which uses some features we haven't seen)\n", + "\n", "names = r'(? Date: Sun, 3 Nov 2024 18:19:06 -0500 Subject: [PATCH 16/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579083 -> 579110 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index ce5c0fdf89f0032a08b15bd0e214ee4172e50d0e..67a4c008bd1fa9e5703a73e9b37f7302091ea452 100644 GIT binary patch delta 7403 zcmZ{pWmMZ~*Yy*EgyQZ}q_`9>(g4NX-L+8MJvbC8-e9FjX-jd}LU7k&1&TWbTAW}n z!#vN-+;czghm*DPyUy9!*UA4wR(5O&{l^k|EHyg@E2bdY{rf*ybvb4l!2^_~{ToKmKBs?xJum)-$Wnf^4=}{)Z`fwVPyGPT zL;r^SVY!bV;OvLLU;%L<>jNVj{fkxWj^6wUbrFBVG=u~b_PtGg4Z~|}8ZH1ptuJN# z1ucOPr=5$hlZCbxIso)P?(0eDfD|N9K_`m6!%HF~=flbw-M2-8$qHFNUA=zv)Vn5E z@6~(~bmC|YCLUGD=VaNJ5!->brIQ5%q}1x9tmkjWdhk(#;bz?FzMEuV)!QY5FW7!m z5+UGbQBVuD4@?eKSeT5ak2LULsNG%MSA!NpiYfJ*o3M~!0&cQv5hGbiML4dSa$MhA zn53gXHgzOAr_n)n;8j0r#PtJ37IB@4&O{pJ|IunH^T)g-_E-46zsT{W!@

W})S) z{2sxi6(M28%cb5&m)KZQUd}>p`eV*-g@L4GQ_k*{G?(f^M`!#(r(HR_8s;*_CoEYG z(y*t(KpJRVg7W8z-ZDX{J^lGsPF&gVC$6H{-%Kh@L%W-W^W0w`3C&>B5F060m^MT_ zomVrk3HvQ^i{ivna84@?vWfBq>2S#~Fh?BAhY43#bmAAnxXY4$G!`76OujB29gR@y z3;|zHTL}w5ua$SDH4=)Z*wb#-$1(S2w@mx$5b0;_XPC z*q2m|>VAJ@s9uzT8nA)YS4%$`JUv(+TBw*nr8Z!@qg3r{C~X#wAvt>5bHI7_#rCIP z^kXQrd;f@nDSPnzQjBvlp1?XfZ?hT#`W4XI$k8O(ZBFRZ>iY4LoR*IX%`YR;Zk6$? z7?P51qOP(#W~^%vr_glcOSTE`57|iMr*+>P8%Dm<9>jNk);3d(BX()FD8o^5+V_{( z#kvVJstKTBdbK~q){u|)>quj*zt@Q2Nvf(cRC9L)U&9$mH@!49Bz#q~NX#JSb%@6I zGeVyJv~r3*o{|YKBIQv(zDJ?l_MV<3Ou$(r`zj&Yj3tgifqIn zr`Lf(-BL9{y;9zj7A&;4>jFmYOsS47)Kk(rhv&-ju*Eg;2}E#2Qq}>f zjANkgsv68+cv51AyF5X<)g;EwkuF7(S2W6#WK91tpCglB>|Fs3O3pkFawtJOm)FbB z^hZ4=kdyOV>ptB~JGde2)mIJ}dMzl%a2eoj>0GOFWU#nM|w5E>$Ge=wzTl#PU{5 z?zWHBS9*fSJH2>&y`?;P#n$6Gx2a_xKk;KUr#%*s`wCY*myo=!q#ID*u~$iEbg`1J z@O)wY)TKpBk2FA_A4L;d)^iZ1j%fx&d!MQV%N*vTObroQtN-szjg{6ZIHJ?Bbi>_FbH<8+5DPrQ3jklEYE zx>En0&ckU&8qdk2P~Y`QKacN5liJf^x0oP74>BST^`1$Zmsxbsa}>9Lneu@ng%Ut) z8Y`X|b6#q23~N`U=blEojjuvImoTaAu~p{iYO9+{T}W?B zyOa?Q3(nSE_`?`b=NpM=w{Na-I2q%ScVn8FG6raR(ciK*k7zGFGa%&Q1!8?n+Nep= zD(V?KNOL;EN^KdVp*}SjRJW7}d}AKWQ`cqw9-IZA?1RoF-%ssLQ>{7Kw`(32vt6iZ z<@r|Z#fG@ukNF^N95=t^t|nd7q=zVerM=W<7_@(W^P=ekG{Hd}3!&bpJs5PGrrjxg z9)%POV7s^blqv!FZV`Z@ved7tfq8%8I^l*BFto*2tcKN6_UF26lIX#@6XF1W! zuYER3ktc{3I{4gTI2mP?{6&EU$|ZNS%ZrLMmFh;7BLtS&;2=x%qQes}2wquUhRf)u zSCy=^h1jS)cSE+klZ%;zV|+3W0Nn=#qe!ltAdgQ`HL^#)omHRY4&mj+K>%> z9#U4HXfB#o>-3vai9lEB+xc*GFwtxAo$1r{K@2)}il!5!&MTITdLZ4m08Uj)*Lm#_ zDMoR503QjS@UTd=fK($B0hiofdqM=4V~H3#Je&^fAFcP40UZ2|pR&!W)XsdWTSa9~ zL%B-d*n>{Ag!f%9)pZLFYu!wq8@7T*a z-KRVrx3*swf+gzubmLZ0{UWr3RFp1Xfg<*^y$z8N0=;z6@svf4DOQX#tP~tZd2UdP z@nH#3R6j`ig-oDO3W?@ze#%-J_HRrkGfJGEwLE_Pym+m(+;^F*LStI;ks%b#{=ayB zJm!lUL>3&#TeoKZyvm*NwR4M5Qu~QA_O7xLBloo496H$sTmL+xt8o@5Qea-Cn?vo$ z=B|oKNr%Jq8P9eGb(haFj{guU+^!ZH$30=mQ9yF>qP|Ua!`rfLFfhjUI4+C2#I+gZ z`Bc0|*Kngsd;Cb$dsEziL+%;twSA4moEz2Nw&U%4N7dZv`_lSL45eA*6MOTifM=_U@1C-3Q@$Q-b@v4GXQvG$3) z<0tD`yX|vKW0=XU&MqGwrS>}jCGAqR5TM#o#`*0~FD5z*z=NstS=e+{Dp$uUC)^9` z@c8}q7A(@*oy=Q{q*>g5=I!%9$wvBUPeo@G4Tz!(tedtQ52~lXoLZblg)GJ1h!JD_ zAnswY&}W-jmMn5d{xalu{ljQpMaM$oSbN{0V9C9BQxR>=I+Cg&6-Z9$BdRTjE?tCa zR9qdCK&`d%(WuhbZcaO(f&$*)@{Le4bU704=~EaG%^|KaUCfSB7GeJhy6fLlBfmDG z-KAe7>nisR|E?V$Q*gU4uMeb;~lkq`e4;mPy4__4|k`RNG2gJ+V z>1v;v@~(ayh|;a)l@m*a<`3Q2P;c;xxC&Pk9J@{~YQ9Nc3_JKzl_=VZLc*9N#qm*r zjorNb(~PInhcPYd-W}18#v60>Avqnc_Gp z=x>tNzo|>R{qYj}&|SP#6WGBD3aiS~9Af&J4_BW>rhr2Lj}7i-y5Osh?{_B`fcRF zZgkWBRQ0FVUk3c?bixma(FrQf8C!qs=ISYmjI3X?`}8g_6P${CAZ$lS^ib0ebde?t zw0rhfJQ)~pi6pBs^@e(quldNTR5WRfeQHFg*@hL7-0&i%60+xd61$RXntzXz!7}-E zEK17E%ume=#l=hE8huHVZ$5z%f>+?D>20x%<8H`Cu>@Zn?D)t+T1{}f*>`BJoX#gC zL{MZlN=O}Wcdqrc$z+Yn+DXk2H?oQs8j2Umbcn}B)_`UPR;a?JYYXQ<+3_1rq2w*i zg>~dbP3k?b2!v@HV5Rh!L`TZ^(xb$3s|6wBGIV~m!+h{P)Y5TN`z^DONLnpn%rDLJ zB*iV^RY^mz%>w5VI!yPv&$ML&VwN>1^7)Zc)c1|vc1B6UzCgqkNS=sJ;4CH3Y=o;3 zY??;1%-$C>1tl*ohLNTE8|WYJkVNiB5L0XD!(8*MGt>6yu;d+s@~?}YY`eXyM)?^U z9&uFv2`<|Q#c#J3s7a_gg}?3o)$%W^Q_GKNLoz8Fqy6>PIZ3UWXW)^|4#YB zgS!tiO#Ug2aR_!zHYUgG8<4f*2W^SoCo|@iAv*0b6;M_!_Iad%R@dcCT*;uF2DvI( zIrl8OEE3}jHD?t;#a1YVQs#~SYB_4JMmhtE1`58oq6agp$QXUsBdJPHo|-3zhhQGp zQ`jErn(ZC1@KxD{2cjxI6&!>*Li$XXslH35|E?{Y)G~By>L#6X&#;hv)g=R{EMv`$ zA@PHh06GM%MIh%r@z}C_;U(#y4OEtHAiY&kBn{TE=WXd=YH9&X1i0y3C=Sok(;TZF zw!ZotVr56K+TIv8-K+I>-|b1jX1G_B>M-3g)?$H@TK&R%7Zet+u#l$U{oq5pby7&} zex>qM{@h&o`*ypEs|)VfaX)%N^XY7uKrh;&5i~h_?@3v$l>x%6gtI-_8sm(?jNGP1^=&>$n?KPB<|`qA_K=b~^ZM3mA1r&D>AIp!?)+_#8Kv+g`V z6~(2{(3qHud;F4geo3JQ&*GJzZTMAZNfsStCfiBPF3|}?Mn=q{oTcn%09p@9Qu?R?v-_3X~QR$LmP-%`i z(+EA7(8mh?zq)o@Gt>ePpvAwNskS_#I_n%c%%N5a29Q(wSJc{B=hfk$ zgcWm~ls+8PD>cnK@~y%CFxm8v$x=k^CkZ=DpsgSP`-+jRK!HTAraPirhS=}X4**UsGRmU zy|QSB_|f(&n({@HSlXei!?L9t{gY8Bs20bST5p1nfa+!nS&oyxN z^48E(0)F=!rqOV0KztafkW@?iN<66cYZ}ouohv#|oP}v`PDvg6{ZSKu=@SjXS-vq6a`JxNfK`OVs4b5vc%XUn|FxRvN7q_X&;!3yvkIO~?JfEoSK z)u64l`rc;m%KJW%uWZu}d-*b^*GWsg*r`a)+~hbDIauyc%oI(Xi)XEkc5u`l_0*=M zT0eOT^v{;M{Gaxw4PGD3t4@2u>DJ-Ayc!7fTC%`zdi%gOG46~}&qk=&^EnXpdFo|X zc~G%K<=g(0DKA)#-?2~ufl)RJ&Bgc2&L5{7RF-q&@fZHWH6xWaLybW>bX#HcxT{sf zH|xaIhr&w(?h)A3LNOtbRZm4cUi9Uwf?1qSsvX?6q@%@WJ#erdriL@&hh~7s`{Ur( z{;#u8ue1gO6n>5XGbEvWCGd5iEB=;pyK?NcQKIPJ#F8$rlO6{?C)j!BSPem-h#6{w z{0aQd2lY*iUbShfZ6b=0^>s34_m14j#X;wKN({ZNdfMphmxH`MDYeq>6AvEQ&hj7&rtrV1(l$e)Q&?3&t$2g)g04?@8Th(cg5q_W(Tj4C;7os{ z8&&S6p;NF?mPaBKBXBk8a#IOU8xC=vD$vBm!0d0aj8bHsuoUy zH&1mXXo~8nhO>~ns(G_pQhVhiF0mBO`w4wro>w6oeKz6=*i4*dvgzaEyh|OGQ9G%d=|${W2W6xtk#U#wP{RZ*Vq3 zlc~5szuwmJ^E7m2h65`d9!(VY0!muB7?jgyTRpuwtp*U3TMix`Jm4`>Zq~{sYSH}V zr$e#T&D6louc}Jv_VlaOpl7(IM^UEmuNeH3)ga-zca5c1d3s#CT4KUT?md~|FF?kT z0!E&eg*I+mP`GJ8tc7@EQB|N}I}hc;S{{ji*!rvlGs6uKZ3#5gu3xu23W@g1y0E-1 zFi|ir?jjiU_Ic^9mPlV0j^&JP9PYoe*WomcFxOXPX7h2x5OUVKx?{zamIlu(FcS!mOI-9TfJkxoI3*ueTAYKZmS3Cf=0^|`h!E;qY`OFP6^6%@fgqQ1@UmaI{&83 z(Gm(MLb-KejH>DIENWyF%MQ~@Z|?t8ojiA0fsnZ3#Ji&E z7daD+&*-&q4}Xi%IRT!ztQxW?yO|tli`~#^`%+iZhQWl0+Hlo!730zn;o?GPU5)4l zrQ>SDa>+Nzf>~(*I7RpWqo?eYiZJEZ;N98e_CI-fjn>K>5V<{=a^OZ^n6Hlc1U{RUchyG+I=g;ohf8eNDU^CxC0Ku|~ed2W=K->+$9*ZH-!d$SBF#k6=sSm?K zO5}Q&CKf~b%SXMI7*Za~1HQ2N2NtkJ(xiOAabf?!_pZPHY4~IDKk#}nlDgnSx6s-@ zu-6(=7XO1Ytjag@{FnehDb1hGAY`DwoJDDnf$j_WzEJK9^}f*RHORmgRS$~wgJ31l zeIf*t7zh99h;axk{YRqmH;MZ%a{OP!VEErt?f*rXNB-TD@L%NYp9JeaavzxOC|Kk# zXEcAD)y@YV*D(PAoV5VJV*u%W$^`%b@2e(62DUs3X8Ei8;jV0BUKf5FhFz@{KEArK5A Z1R{lnO@YOM9k8w`umo!7Ao%|K{(mC3p>F^H delta 7500 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 From d9a1861e3ebe7f0a1f86c714077530ccdf3ba1b1 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 09:38:11 -0500 Subject: [PATCH 17/60] Updating the notebooks --- chapters/chap10.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index 6109b0c..51dac26 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -1257,7 +1257,7 @@ "\n", "As you work with bigger datasets it can become unwieldy to debug by printing and checking the output by hand. Here are some suggestions for debugging large datasets:\n", "\n", - "1) Scale down the input: If possible, reduce the size of the dataset. For example if the\n", + "1. Scale down the input: If possible, reduce the size of the dataset. For example if the\n", " program reads a text file, start with just the first 10 lines, or\n", " with the smallest example you can find. You can either edit the\n", " files themselves, or (better) modify the program so it reads only\n", From 2f1439d24c58979ad8824ec9dc22105576634a50 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 09:38:11 -0500 Subject: [PATCH 18/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579110 -> 579111 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 67a4c008bd1fa9e5703a73e9b37f7302091ea452..4f04868e31e610f175d4f1715d577003198bb127 100644 GIT binary patch delta 5274 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 Date: Fri, 8 Nov 2024 13:47:58 -0500 Subject: [PATCH 19/60] Adding Chapter 4 figures --- jupyturtle_flower.png | Bin 0 -> 2396 bytes jupyturtle_pie.png | Bin 0 -> 2396 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 jupyturtle_flower.png create mode 100644 jupyturtle_pie.png diff --git a/jupyturtle_flower.png b/jupyturtle_flower.png new file mode 100644 index 0000000000000000000000000000000000000000..b092edb57df1a8f61ef2ec903e8120a336c74037 GIT binary patch literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWLGt^PYC@Co@w$j(ng)7j@FG| Date: Fri, 8 Nov 2024 14:00:28 -0500 Subject: [PATCH 20/60] Adding SVG figures --- jupyturtle_flower.png | Bin 2396 -> 0 bytes jupyturtle_flower.svg | 1930 +++++++++++++++++++++++++++++++++++++++++ jupyturtle_pie.png | Bin 2396 -> 0 bytes jupyturtle_pie.svg | 118 +++ 4 files changed, 2048 insertions(+) delete mode 100644 jupyturtle_flower.png create mode 100644 jupyturtle_flower.svg delete mode 100644 jupyturtle_pie.png create mode 100644 jupyturtle_pie.svg diff --git a/jupyturtle_flower.png b/jupyturtle_flower.png deleted file mode 100644 index b092edb57df1a8f61ef2ec903e8120a336c74037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWLGt^PYC@Co@w$j(ng)7j@FG| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jupyturtle_pie.png b/jupyturtle_pie.png deleted file mode 100644 index b092edb57df1a8f61ef2ec903e8120a336c74037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2396 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1{5*9c;^X_vMh0pC<)F_D=AMbN@eg( zEGfvzFUiSFQYcF;D$dN$GuAWLGt^PYC@Co@w$j(ng)7j@FG| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 46acf77bbf82ecec941bd04a55234b394f76f8d6 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 14:07:22 -0500 Subject: [PATCH 21/60] Updating the notebooks --- chapters/chap04.ipynb | 169 ++++++++++++++++++++++++++---------------- 1 file changed, 104 insertions(+), 65 deletions(-) diff --git a/chapters/chap04.ipynb b/chapters/chap04.ipynb index f96a7e4..686298f 100644 --- a/chapters/chap04.ipynb +++ b/chapters/chap04.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "df64b7da", "metadata": { "tags": [] @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "320fc8bc", "metadata": { "tags": [] @@ -75,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "8f5a8a45", "metadata": {}, "outputs": [], @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "b3f255cd", "metadata": {}, "outputs": [], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "234fde81", "metadata": {}, "outputs": [], @@ -137,7 +137,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "1e768880", "metadata": {}, "outputs": [], @@ -157,7 +157,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "6d874b03", "metadata": {}, "outputs": [], @@ -176,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "1bb57a0c", "metadata": {}, "outputs": [], @@ -208,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "9a9e455f", "metadata": {}, "outputs": [], @@ -238,7 +238,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "cc27ad66", "metadata": {}, "outputs": [], @@ -263,7 +263,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "ad5f1128", "metadata": {}, "outputs": [], @@ -284,7 +284,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "193bbe5e", "metadata": {}, "outputs": [], @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "def8a5f1", "metadata": {}, "outputs": [], @@ -328,7 +328,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "b283e795", "metadata": {}, "outputs": [], @@ -351,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "171974ed", "metadata": {}, "outputs": [], @@ -375,7 +375,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "71f7d9d2", "metadata": {}, "outputs": [], @@ -395,7 +395,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "8ff2a5f4", "metadata": { "tags": [] @@ -431,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "7f2a5f28", "metadata": {}, "outputs": [], @@ -461,7 +461,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "75258056", "metadata": {}, "outputs": [], @@ -500,7 +500,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "381edd23", "metadata": {}, "outputs": [], @@ -523,7 +523,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "2f4eecc0", "metadata": {}, "outputs": [], @@ -543,7 +543,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "539466f6", "metadata": {}, "outputs": [], @@ -568,7 +568,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "8e09f456", "metadata": {}, "outputs": [], @@ -588,7 +588,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "80d6eadd", "metadata": {}, "outputs": [], @@ -625,7 +625,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "1571ee71", "metadata": { "tags": [] @@ -646,7 +646,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "f4e37360", "metadata": { "tags": [] @@ -714,7 +714,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "baf964ba", "metadata": {}, "outputs": [], @@ -736,7 +736,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "e2e006d5", "metadata": {}, "outputs": [], @@ -768,7 +768,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "b68f3682", "metadata": {}, "outputs": [], @@ -876,7 +876,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "9f94061e", "metadata": { "tags": [] @@ -905,7 +905,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "6f9a0106", "metadata": {}, "outputs": [], @@ -935,7 +935,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "c54ba660", "metadata": {}, "outputs": [], @@ -955,7 +955,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "1311ee08", "metadata": { "tags": [] @@ -978,7 +978,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "3db6f106", "metadata": {}, "outputs": [], @@ -998,7 +998,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "1d845de9", "metadata": { "tags": [] @@ -1021,7 +1021,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "895005cb", "metadata": {}, "outputs": [], @@ -1031,7 +1031,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "7e7d34b0", "metadata": {}, "outputs": [], @@ -1041,7 +1041,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "481396f9", "metadata": {}, "outputs": [], @@ -1061,7 +1061,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "c8dfebc9", "metadata": { "tags": [] @@ -1080,19 +1080,38 @@ }, { "cell_type": "markdown", - "id": "feae252c", + "id": "d22e5334", "metadata": {}, "source": [ "### Exercise\n", "\n", - "Write an appropriately general set of functions that can draw shapes like this.\n", - "\n", + "Write an appropriately general set of functions that can draw shapes like this." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "ee4a5c6f", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from IPython.display import SVG, display\n", + "display(SVG(url='https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_pie.svg'))" + ] + }, + { + "cell_type": "markdown", + "id": "feae252c", + "metadata": {}, + "source": [ "Hint: Write a function called `triangle` that draws one triangular segment, and then a function called `draw_pie` that uses `triangle`." ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "8be6442e", "metadata": {}, "outputs": [], @@ -1102,7 +1121,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "be1b7ed8", "metadata": {}, "outputs": [], @@ -1122,14 +1141,14 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 51, "id": "89ce198a", "metadata": { "tags": [] }, "outputs": [], "source": [ - "make_turtle(delay=0)\n", + "turtle = make_turtle(delay=0)\n", "jump(-80)\n", "\n", "size = 40\n", @@ -1137,24 +1156,48 @@ "jump(2*size)\n", "draw_pie(6, size)\n", "jump(2*size)\n", - "draw_pie(7, size)" + "draw_pie(7, size)\n", + "\n", + "\n", + "with open(\"jupyturtle_pie.svg\", \"w\") as svg_file:\n", + " svg_content = turtle.get_SVG()\n", + " svg_file.write(svg_content)" ] }, { "cell_type": "markdown", - "id": "7c665dd1", + "id": "9ab5d08b", "metadata": {}, "source": [ "### Exercise\n", "\n", - "Write an appropriately general set of functions that can draw flowers like this.\n", - "\n", + "Write an appropriately general set of functions that can draw flowers like this." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "f00b40f9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from IPython.display import SVG, display\n", + "display(SVG(url='https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_flower.svg'))" + ] + }, + { + "cell_type": "markdown", + "id": "7c665dd1", + "metadata": {}, + "source": [ "Hint: Use `arc` to write a function called `petal` that draws one flower petal." ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "0f0e7498", "metadata": {}, "outputs": [], @@ -1164,7 +1207,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "6c0d0bff", "metadata": {}, "outputs": [], @@ -1189,7 +1232,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 53, "id": "4cfea3b0", "metadata": { "tags": [] @@ -1198,7 +1241,7 @@ "source": [ "from jupyturtle import render\n", "\n", - "make_turtle(auto_render=False)\n", + "turtle = make_turtle(auto_render=False)\n", "\n", "jump(-60)\n", "n = 7\n", @@ -1212,7 +1255,11 @@ "angle = 85\n", "flower(n, radius, angle)\n", "\n", - "render()" + "render()\n", + "\n", + "with open(\"jupyturtle_flower.svg\", \"w\") as svg_file:\n", + " svg_content = turtle.get_SVG()\n", + " svg_file.write(svg_content)" ] }, { @@ -1264,7 +1311,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 47, "id": "46d3151c", "metadata": {}, "outputs": [], @@ -1274,7 +1321,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 48, "id": "186c7fbc", "metadata": {}, "outputs": [], @@ -1282,14 +1329,6 @@ "# Solution goes here" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "979f5ad4", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "a7f4edf8", From 7044c3940d668a26286b64bc1a7a07ced2312204 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 14:07:22 -0500 Subject: [PATCH 22/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579111 -> 579257 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 4f04868e31e610f175d4f1715d577003198bb127..b7facd632f818ba3ebb5cfa5540ee8791ee61c09 100644 GIT binary patch delta 10127 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 From e9e17ab4917994190449e16f7a317c5d92ed29cd Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 14:10:38 -0500 Subject: [PATCH 23/60] Updating the notebooks --- chapters/chap04.ipynb | 53 +++++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/chapters/chap04.ipynb b/chapters/chap04.ipynb index 686298f..d405a38 100644 --- a/chapters/chap04.ipynb +++ b/chapters/chap04.ipynb @@ -1080,7 +1080,7 @@ }, { "cell_type": "markdown", - "id": "d22e5334", + "id": "3a56643b", "metadata": {}, "source": [ "### Exercise\n", @@ -1091,7 +1091,7 @@ { "cell_type": "code", "execution_count": 57, - "id": "ee4a5c6f", + "id": "be86eb71", "metadata": { "tags": [] }, @@ -1141,8 +1141,8 @@ }, { "cell_type": "code", - "execution_count": 51, - "id": "89ce198a", + "execution_count": null, + "id": "f8cbf549", "metadata": { "tags": [] }, @@ -1156,17 +1156,24 @@ "jump(2*size)\n", "draw_pie(6, size)\n", "jump(2*size)\n", - "draw_pie(7, size)\n", - "\n", - "\n", - "with open(\"jupyturtle_pie.svg\", \"w\") as svg_file:\n", - " svg_content = turtle.get_SVG()\n", - " svg_file.write(svg_content)" + "draw_pie(7, size)" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "89ce198a", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Solution goes here" ] }, { "cell_type": "markdown", - "id": "9ab5d08b", + "id": "e35f613a", "metadata": {}, "source": [ "### Exercise\n", @@ -1177,7 +1184,7 @@ { "cell_type": "code", "execution_count": 58, - "id": "f00b40f9", + "id": "c8095531", "metadata": { "tags": [] }, @@ -1232,8 +1239,8 @@ }, { "cell_type": "code", - "execution_count": 53, - "id": "4cfea3b0", + "execution_count": null, + "id": "8e92df6f", "metadata": { "tags": [] }, @@ -1255,11 +1262,19 @@ "angle = 85\n", "flower(n, radius, angle)\n", "\n", - "render()\n", - "\n", - "with open(\"jupyturtle_flower.svg\", \"w\") as svg_file:\n", - " svg_content = turtle.get_SVG()\n", - " svg_file.write(svg_content)" + "render()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "4cfea3b0", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Solution goes here" ] }, { From 7209f1131275181fd4802ecfbd9991b29e231bf2 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 14:10:38 -0500 Subject: [PATCH 24/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579257 -> 579218 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index b7facd632f818ba3ebb5cfa5540ee8791ee61c09..707546de949b985bfc43ffd69ec20a427692a090 100644 GIT binary patch delta 3911 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 Bs=xpM delta 3921 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 Date: Fri, 8 Nov 2024 16:07:15 -0500 Subject: [PATCH 25/60] Updating the support files --- jupyturtle_flower.png | Bin 0 -> 20588 bytes jupyturtle_pie.png | Bin 0 -> 13965 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 jupyturtle_flower.png create mode 100644 jupyturtle_pie.png diff --git a/jupyturtle_flower.png b/jupyturtle_flower.png new file mode 100644 index 0000000000000000000000000000000000000000..30a7ab2416dca85f6220b0353f4bc5c8c967a660 GIT binary patch literal 20588 zcmbrGgHxto*vFr+*|u$N+-%!!vu)cpH}7V8i0 zNI=qJ!fKwm=Xn;M1PkqfGn0>-G49RD?h8Kklq=~zeTdk$(I=rG*dLHmFrl(iFkD~I zL|{<1(Rd+QrVyW)Cejx=o040eHeW9%-$}`Q?X*|Z%w!)IUI%9OR(RMYJMX5Rr!`3n zm?6!x%+gOF@-Ja0*(N?c%)=bhwac=!NpsE8t;{uGEV9h9voQO$&9lt^pFfg=Yh`S^ zYd$Qy3g2b@-f_e>(G2C@LG6f{7)eh2c^TTV1O+OriyVTdnEzI+T|;ZG*&nrX=T0A8 zq=uE$M_K7(JO3?DyM_~31~}9--f1rp3j$9ozs6ZT^vroO^=>2H34`ib6)!K5z3%n= zXASm2o%PaTD)X4!gn1uJ$w}*k%=7%WX6+h6;FV*7i?)x;H*RqHw-d2#nLr?nX<04= z9-q@@;8$!?K3gSfwMn~Z7+)js-ACI^RvCMBK*Au95{IIkIf`%m%AA&J!oczCS$C(v z>)y}3f+vM1y&8^25$>=49{cA4UnJ#pJE}v+$>IqnY4(TvqaKTYIg;>p&vy=s<&>MH|JW&7AOUv}DXJ$K@wAuWk)Qdg%m{{5OpBFqQx$UTnL zaq;@HHUWtP4{KA2B|ubwIj`j|F8w6`FQ%CW%*bz+b3A)43oK`Q&!)q!gocTK_BKK* zW?AV``aZ6Ce|lagSq-54W*7VA6Vz%u8vokgSNhm}*6IlZYlearJa)zL(=G+C$#mb8 z%o^h7hdpb7Dl;=#!iiRx=tJfk1sF`U0D0h)anCTUOR_rH% z6sLBV6lUEak{Rzm2;dr;foC z_wTS3I~hJaF?g2?sC zvt}*{ds6ZB87BwpnlA!)T->i%AVufU3{Hw-PdQg8=sw`qm#*Uf27DtKH)mY?`pCu| zEHwW2ens!l#t_C%M^S^eKyJX$Ls9$;EKGcl$d)zCch>K!rM9QM%ft)Iw~y>AslCm1 zqhLXL8vJ2Ra+!1%Hea>7e*D1k(!G{4h7j%6KAkBQ+z$hLXd1d{V_H7O4zQ8>nGX0P z>GVyN!5JgH#n;EbHY6BzkZSSAzQxDwi9fk}`Oe++UZGSPhl?*;G-{`k_UkFV&Mmn& zy`@(4Yv+-9r!R4N-=v=oBMuMMV^lg0f7ZUDvxdqIEEyDVON{MB(q0D7zb5>Z`S4Ol_2LJ z+09vi&JgDO2+vf_)9K5FEo!%=|BG4n7=rM;MGWMgwz!^E76=sB*PraGZ~#ZEDTZ&& zuFXj_6=+(qkg7^bpjz35B3^zl(fgI{IhFX`pEihp69oob*nt8|+6Y$bq?w3G5dA5% zpP{T{WYt5$utUmup84?G`)t{G+KLwc@Dbem-jD7pemAid&WB-};{F4VFcxlZ4~5l# z7Q2z$3G5ixq2<0v?1<%KwdV~&IFs$r#yHuXystN(?fw%pHh%Gm_P=kQpr4uv)D%29 zF}_f@JW0c~ah^F_VsAMoB2t+Hk2waU;gaYgd1C}X)`yOEj#v$2MI|ZJ8^wu(IXU=*{-5i=i569YTx@M|xXk@GycI%|SK}KUqEn9Jf z_~PZNYbN8;g+9B8|6-DTRhH+^Zo5_mV!&GMng7f9sV9f=f~SDr$9@npFY}OB=|!XR zacC}`F&i~`eW=Fe^>T1Z&&ERVz_C1=nttL?*G2Csob`~}*PG^uC&cFLX}+C(O^9H* z;RZW#99y^qf)H8vY~Pn18-5Ejsty_u2!Y6J`qXx>uCi5FvxmWE(xqYIx!2cWpnk>& z*>Bm)ynMaFb>p8FW8Al!_)ihuc$?rJsgHG7Ikw`_aY%w$PprQ-5W-aC1d)`#nL;OwwKvh5tL&!TR z$TNol$Ne()@l^^uDGhe{6InwfJ~K%-?dyjK2NgH}VLo*jH}Ykn=?)2|5!f%aur_3?KwZNfS$c~4i&&3 z?l_;K4?AVu+AyKg$V5GMS8MPO_x{IM^sMj#F^q>u``Zh_>3GQbs@GoWkg<@Vfg2ox zIA7*a-gcK6T}B$vDN$urZ0~+qe|x2i7*7>!Z3so8B~7|6rQA%OKCJ5Zg*?iyc}GC8 z>6UYwyxw@A853~7HPPeUUccAIyPvT6IN9%XKPN`ul==3CAaN^$4H?LtF(t1ookKta z*Z)D2EH$_nDAh-WTg0Qz;ga?kJnJjWnkkS8=qReMnY{X#r% zOM&rvdGXb)c8dFaKhpAyxI)KMR6yW_S&VD@4-&U0ngkoFi)LmPQ)n_cQ;4jyHn{vN zMobG8<|QO(lwo)CZU2p{fcv{fd+&$O{Nji;6IBFOGap{`4;mc7{C|2cc!>Nt|D!(q11{2N}==A^1 z3QGzJ`fE46^**!c$g;RmNUxpB8bwdB3ri7{nOd{)Y3r2zo@8YE(47|3vX4&t)2x-2 zm*K=KclQhX1O@46iDlpRDOGHmmXXR`n*jt@uW#>xi}1E zmh&(Q8}NSXWYDga_=9hLJBk5Cs&4b@B^J!8-nvlajLd<*u^6a+G_=bi1ul$|+DGnV zE9_6jju&srf)W)CfdVP~=OphoOc#!+>YJN3ZG{5-Yq3OFqlwodMfe(mfHKiU*#q6$ z)Tx241}k&vPLdG^Ui4n%a`&h8(ikD;M1#hLI$f$lm9N35P>QhNv6j~ej$24sUZoIB zqYPw`ZMxI4*KOs;!c%HFTVlYG1NN1F<-=eG1SFgPq?&&Dti`;~olP?5I&Qe0L>N8$ zP=pmmFFk_;YYUMY)VlF|VoE;=BtI%BkR_&XUv=(|n}IZqv1nEs5-%r`d|RTQK@ez4 znryLTg}VFEU_dD2TH~5I!5_yRua#7+>s5{?&;tzpB&rS!?Ytbq7P5O~Dn2X4~&U9hYP~!T=HQ>PJ*?PCV#1#;8zd3o_fJ@8t1m()? zjIYTGzFpi*n_3GW;@}4E2&pBGZAYbWx~(Dz06B+ToZW*0Z4#}IbE^%|1VW0!b8Df1@S6zy;)1$VMh z;;9^*qKN!R)$XR!oi%>GyjXlS&`VNzGd|gkol5w7?pu7Yx3wgAyPAE+V1<;jRdhqq zORDCc$%r>IXE&DJK1KKR(*cSB59p|Z$&FwsY`wu+t-Z|s<1*!l$;FTPbE&pATXor@ zJ!4uh{!n8kc|;jGv7|}g@`@0Sa8zE>$-1@4A1S+Q1BFC1b|fZY*`>E#vPi{wL(l73 zu^KN}NSF&fWCmFfD3G1+Kn~1pGyKN+xjd;-6b1}rb6M^AJkt3P5?}mzDg9to(fLD2 z@VL(MTS2eq=?_iK0vofT-R)QrCeD+iwJW4O7%k;T$V%4e!dvsb*?=c4xBNn`XcEg= zUngL%R+3})H_W2A8;&l%7Vsr&%2(^~*r6ueEgsSFGFZ5eX|5}0TPtVH#tufCX_tE- z0!K})c5FINidxNG`>AUoSx5;6DvFzIy1S$eM!uGjNOq9?rYmZ$xjY6pTil7%lk73w zka3jmpx{NK=0ujU^-J*Y#SxoXZWA15LeJj2^@J*&gqAG@DW-ubvq$9StTB#Un%ANh zFbv^NMeEPoV*RW4CDxoxY(#SUD;lrUfjGgB`DicvTNP)mE3eAtvyv8Dr$a=+T6zD! zsVT~XVMa7)3J5K^1^BF_#kf&g{ADKXz`;8gEXEIr{I%Bc&Rovv_t+8Fo-D!?6e{2O zuQd;Wy7#mZ-#5mANkKZOBYEr-^7|45 zu!Y4V+9JQIViRN)U@-MH@FFM}4+b*pu|s!|?k1kDp10fga2O`Hlb6mDSqVC_KQuvv}<&SQbMb)sZrhj4dN7b@u#_{s@uM%r| zpZ};q&nB#G1mTWt7VCN zlvd2N>v)JkLPyE;>1N)xeV6FjUic%+`9Oo35D<`DAZ&3xnnRRtGwZo5B10B5x03P% zb>UyBzhI~DYYG;^x959btY;m7wmXJAcRH-A-N{SWZ}HhT)h? zMT`K^*%v{fl(Tup25k#fOOj$g>)CFi^9SD;o;F+HwT5fW|8@x@wn>jwUV{pU5lyv& z`)=SU9@=jfJ`6>?ug7C;iq69v_36<9yN~5>fP{luoAu&>!b>fYHGAizzY~(p^95~A zY7K>E7SQB`YERlJPJR9hQzXb)(L5Xth=U8qO zbS!*y;kdocnsM3)*0BS}cTE^K=klgh=F#s`vYuWpbD=6!SsF5XiDPO6!GWF(sEE}4 zL6(28A67%`bpvUyGt-bDznG`NgILy$-}b7v{#H#?YvrfK&a+{~(|0mZ!uPgDVlhk2 z{KOb0i%Np*b(!IRHZvSR@)C}-JVU>8@X&rd|uH3;Ubqk$UN0d6A9KL^RHMnox|-|9-ty%mAOdSMW~C~mAQl|2_6%0+x$kYbIZAt z^p{UyTy|FqA~&M8o8zzVo+)unW1iA;R&AJ#pC3}E4Fv^OCoFW`RSppO9Cx;^*}sX~ z$&|$a)dydKjg#0pP>Cc87M(Xh`aSO^6-9M_&M$Ta(CjBLud39s zMafmdI%PvR2s%ZQ7u~RDo(1q)%)O2&>!kLzoRU7&`9O;1Qo)}r#o3N)TZG_c;_+yWhw zce~%S-H?DtpPB845U9la)0pPIv#R9u79=w=Mia6`6o zxu4a0Sz@{`etyXzu5NdQ<)GC!{JdzI*p)=RmtlOJ-Kchf@zWot6(_$fY@N^R3% zK>e^yqCkr_bLkfw3R`_?M+Pm~T4v`dg)HsfE@ zx;Kd3Ev(4hE8)AbAvj2pzrtQ}-h}bDEEgI91OshKEEu3NYh}<x}$DaxblmFwRg zI?mxpWfOyk1(0_26n+z4a{p?v{-#S@o7br`JX82oFxzR@_c8D7R?FC_=V;%9nJnb~ z-pF|z6OZ*)`Uf`Kz=i>>R*!Z7mBqlq^QxD(N@qsCH*+S%w;+?uf%PG8(G2TGV?#gP z+7lF9NGxbbd@lisd!OUa6Y$@&9?)g(a3qbY_H^{RdEUy1b-Rb($?cRUk@nYKxkH{zTbAo;rp{u6GZdHeqdj1 zu6PTvdb3H2(N|%nSpG{CzBRruk*AcIs;fql6hE4cuIwo-n|N)6*ESChQ6JYms4E5u&}=ky3pL=-4f1afd(LWj6_w0cCZ5x3-fsU`^F6gNgCR(&W_;A6gedz@p8%)b(ud zuI#NjPkEFRa1ZeB!4yj@qg76>#caKajz&i|UP#MHVuof42XM4hepegh+0A-#__ZVo zuKMT{7&7+nu(BX zI-sSStK@L-MyP$d2||L=Md&qt^_g_BXPc-kneB+o^y9IA{_;w09f&GLbGFY5&=gOX~e4z2j8~OW&5Z*99=cLAI zq5k;x8LClCv;0)+zE{`i?x&z&X1&%v{7uwn(^j6@sJ5-U$#N6J7QF^%DHzC#Qfj^j zw^fZ>h->!(jpI|&#SNk87Syvm6y=mgIL_X7L71%xgn4g6vT-5R52gt6Bj-c9y(&qUqoDnKZ*jhrXB9JS=oqTvLwrYz&k258m3MWQCrYavca`$RC8^| z-RI37sC`^7%BIwhW67?!C_PC}Ddq4KCrX;5Ao(xj-i~0|zHCBXa6sGYaD|AroOFY} zaJ_Y9zZ96&UDTcak<{l&>z7BK>UPA96-V#ze|3x~_1bdu=zcuz_32cw?0J_|eMNm( zs^vgx%_>gfMiA}*>$LwZ@aOw2Z*Y=PY(I&Ss-AK!%Tgrp=r9!P>u2AM1Df_S%g#dM zCrPA|M_)o%m0nRXu@YzvsY=v=+Q#7ym{>?p2L^ERx2Hly7?cKR(4~PvN1H`j_zxOA%)d97Gp&&lXH4!;A0?* zUpFrz!}b7UW}N0tzz$D5$o}`HzgY8Ucl-dcTfy>X`DHy)bC!O3p!|_I%HJaxN;FFb zG-4~n!TqEuYh1o7!MM9`HrHk%H0tpz**^HGW~?-R{45)ZRdS%D9!;5;wS<0GL!$tvS>&5 zIbtR+GRzc*!2G$I5)enS(KN-_q-39Y+tC&K^IyyhOB6)P8pFP%BN%U>R-@?z|an z#U_>{1NI%oe8vtx;(^tDa|~vdA+AB?c}!e6^UdGH=M!jGNeH@j zTjr$q8}nrYiv34yrid&u<@yfPW4;P#aYm8lW=L@)dmfF6{<623eY>AZP-~noD^ro+ zAox6Pr8cP#ZP{`SUUHWaS+bdH!bl({XLzpMnrV+K#2AlS zDf3@*9@a?ue$LJxuJmq=Lxv4 z{Ug*zG!Yj5j|Dgbl+#rGMg31((%EYP$qJJ!SHP}h=&dfX^yf9~$9dn}W!=A~);H|> z8%h3Ki{LOQLnFSicG$=`J~CaERu6D=yakXWBGkWW!~n)!bN-9Q^tQ4m+ROcE1-mOH z!gJ9JX@>Ei%X(-IKX%uu7HRi$A+t5ncZa6j{oY)*jlRP zZS;Y0-m`D_62Hjq(&G5f-QnRrl24H_5QkP1ekJ&>0^2o$g>h8JCCJ8ANzp7IqB@FzCQ{Br;_#J*m%+Swq{K1$ zyIk>Hp7QTmB<>P3aQTGhLXGqKFLQV8J3^_HCE@SN{J7YT5ylAT^-v~BZCiw}&&A~6 z(nY(XAC}p%Rw^A?zR_!VfXWYeJQKy7*o!i+6AA8F>X%(S{RLgVgdn4%vnj+*DD?Wl zgbyDt>1gFQVTb+m&7Gje@Evy-_pm<|js_kU+EXvNYG>aK1WaZJmjZ0g9XNzgXmqoi zZ~EwLo%0u9ajn^jU#m1XZAX8iq%%$d)l$IsAlNTOwI8ktX|<9^?Mmy&sKFErHyv-3 z*@{KkM4d~x{YKjyw2kKa3KuWAtmWSqJ$rmQr>@|vUN7d*HdkLOnbwD?k)sRqsGGLB zH~P`$Qu7XhrUg)vco}_$POwE{RyW*4=Cy0t5&2d`e$Af)NXEIh;qx2I@GkeGB$qa?+`Lz`kiCCQD{cJ?;d-XQBnIvCpV zK3srwrTh*X8Bdw+@Dm8dz$)}p{O(l8=!)tsMK*1%zp{ z97BT={agjYYYFQ_Pm&-7Awhvq$Jby65(2G`1}_b|F(ZE$7BbQUNV7&BHCk+x%Zfru zt+)JF!4z7?gFAMdpHPSf2#~^vqD<-;;`0_~R)5H0f(KE_aG^n3b+omY;owvSCMs

Wr40c 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 delta 41818 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∋~jsQA(YzFNTb>Tx1WSCtzE=09Gdtp)YclM%)vt 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 Date: Wed, 15 Jan 2025 10:30:32 -0500 Subject: [PATCH 31/60] Updating the notebooks --- chapters/chap03.ipynb | 10 +++++----- chapters/chap07.ipynb | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/chapters/chap03.ipynb b/chapters/chap03.ipynb index 64e293f..7eae21b 100644 --- a/chapters/chap03.ipynb +++ b/chapters/chap03.ipynb @@ -580,13 +580,13 @@ "frame2 = make_frame(d2, name='cat_twice', dy=-0.3, \n", " offsetx=0.03, loc='left')\n", "\n", - "d3 = dict(s = line1+line2)\n", + "d3 = dict(string=line1+line2)\n", "frame3 = make_frame(d3, name='print_twice', \n", - " offsetx=-0.28, offsety=-0.3, loc='left')\n", + " offsetx=0.04, offsety=-0.3, loc='left')\n", "\n", "d4 = {\"?\": line1+line2}\n", "frame4 = make_frame(d4, name='print', \n", - " offsetx=-0.28, offsety=0, loc='left')\n", + " offsetx=-0.22, offsety=0, loc='left')\n", "\n", "stack = Stack([frame1, frame2, frame3, frame4], dy=-0.8)" ] @@ -603,10 +603,10 @@ "from diagram import diagram, adjust\n", "\n", "\n", - "width, height, x, y = [3.8, 2.91, 1.15, 2.66]\n", + "width, height, x, y = [3.77, 2.9, 1.1, 2.65]\n", "ax = diagram(width, height)\n", "bbox = stack.draw(ax, x, y)\n", - "#adjust(x, y, bbox)" + "# adjust(x, y, bbox)" ] }, { diff --git a/chapters/chap07.ipynb b/chapters/chap07.ipynb index 0b231c6..6370e83 100644 --- a/chapters/chap07.ipynb +++ b/chapters/chap07.ipynb @@ -1472,6 +1472,7 @@ "source": [ "available = 'ACDLORT'\n", "required = 'R'\n", + "\n", "total = 0\n", "\n", "file_object = open('words.txt')\n", @@ -1612,6 +1613,24 @@ { "cell_type": "code", "execution_count": 71, + "id": "a3ea747d", + "metadata": {}, + "outputs": [], + "source": [ + "# Here's what I got from ChatGPT 4o December 26, 2024\n", + "# It's correct, but it makes multiple calls to uses_any \n", + "\n", + "def uses_all(s1, s2):\n", + " \"\"\"Checks if all characters in s2 are in s1, allowing repeats.\"\"\"\n", + " for char in s2:\n", + " if not uses_any(s1, char):\n", + " return False\n", + " return True\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, "id": "6980de57", "metadata": {}, "outputs": [], From 8eddbf6e319dc053717210817f979e08762c00ee Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 15 Jan 2025 10:30:32 -0500 Subject: [PATCH 32/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579214 -> 579347 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index cb57fd7002dd3c367b1b1f5639cce1669cb5dc46..4a991b95695c6d9a7b1638b4d3a26a787182967c 100644 GIT binary patch delta 10307 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

4Z%we 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 pA5H^_|Cz!|j_U`)KPj1K9+ld=K{XcdC4lMux delta 10206 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 From 76a6c725c559507ecb5b8cc8317d290655d64413 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 15 Jan 2025 10:31:33 -0500 Subject: [PATCH 33/60] Updating the blank notebooks --- blank/chap00.ipynb | 18 +++- blank/chap01.ipynb | 30 ++++-- blank/chap02.ipynb | 16 ++++ blank/chap03.ipynb | 26 ++++- blank/chap04.ipynb | 146 +++++++++++++++++----------- blank/chap05.ipynb | 16 ++++ blank/chap06.ipynb | 16 ++++ blank/chap07.ipynb | 122 +++++++++++++---------- blank/chap08.ipynb | 54 +++++++---- blank/chap09.ipynb | 16 ++++ blank/chap10.ipynb | 18 +++- blank/chap11.ipynb | 234 +++++++++++++++++++++++---------------------- blank/chap12.ipynb | 18 +++- blank/chap13.ipynb | 18 +++- blank/chap14.ipynb | 16 ++++ blank/chap15.ipynb | 16 ++++ blank/chap16.ipynb | 16 ++++ blank/chap17.ipynb | 16 ++++ blank/chap18.ipynb | 18 +++- blank/chap19.ipynb | 16 ++++ 20 files changed, 587 insertions(+), 259 deletions(-) diff --git a/blank/chap00.ipynb b/blank/chap00.ipynb index a21a38a..55b62c2 100644 --- a/blank/chap00.ipynb +++ b/blank/chap00.ipynb @@ -217,6 +217,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { @@ -235,7 +251,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.11" } }, "nbformat": 4, diff --git a/blank/chap01.ipynb b/blank/chap01.ipynb index 1fb365f..7b758f0 100644 --- a/blank/chap01.ipynb +++ b/blank/chap01.ipynb @@ -161,9 +161,9 @@ "source": [ "Notice that the result of the division is `42.0` rather than `42`. That's because there are two types of numbers in Python: \n", "\n", - "* **integers**, which represent whole numbers, and \n", + "* **integers**, which represent numbers with no fractional or decimal part, and \n", "\n", - "* **floating-point numbers**, which represent numbers with a decimal point.\n", + "* **floating-point numbers**, which represent integers and numbers with a decimal point.\n", "\n", "If you add, subtract, or multiply two integers, the result is an integer.\n", "But if you divide two integers, the result is a floating-point number.\n", @@ -311,7 +311,7 @@ "## Arithmetic functions\n", "\n", "In addition to the arithmetic operators, Python provides a few **functions** that work with numbers.\n", - "For example, the `round` function takes a floating-point number and rounds it off to the nearest whole number." + "For example, the `round` function takes a floating-point number and rounds it off to the nearest integer." ] }, { @@ -533,7 +533,7 @@ "source": [ "The other arithmetic operators don't work with strings.\n", "\n", - "Python provides a function called `len` that computes the length of a string.`" + "Python provides a function called `len` that computes the length of a string." ] }, { @@ -877,10 +877,10 @@ "A symbol, like `+` and `*`, that denotes an arithmetic operation like addition or multiplication.\n", "\n", "**integer:**\n", - "A type that represents whole numbers.\n", + "A type that represents numbers with no fractional or decimal part.\n", "\n", "**floating-point:**\n", - "A type that represents numbers with fractional parts.\n", + "A type that represents integers and numbers with decimal parts.\n", "\n", "**integer division:**\n", "An operator, `//`, that divides two numbers and rounds down to an integer.\n", @@ -979,7 +979,7 @@ "\n", "* I also mentioned the order of operations. For more details, ask \"What is the order of operations in Python?\"\n", "\n", - "* The `round` function, which we used to round a floating-point number to the nearest whole number, can take a second argument. Try asking \"What are the arguments of the round function?\" or \"How do I round pi off to three decimal places?\"\n", + "* The `round` function, which we used to round a floating-point number to the nearest integer, can take a second argument. Try asking \"What are the arguments of the round function?\" or \"How do I round pi off to three decimal places?\"\n", "\n", "* There's one more arithmetic operator I didn't mention; try asking \"What is the modulus operator in Python?\"" ] @@ -1162,6 +1162,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap02.ipynb b/blank/chap02.ipynb index ca7c116..345e793 100644 --- a/blank/chap02.ipynb +++ b/blank/chap02.ipynb @@ -1096,6 +1096,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap03.ipynb b/blank/chap03.ipynb index 7bd3423..a2b6766 100644 --- a/blank/chap03.ipynb +++ b/blank/chap03.ipynb @@ -509,13 +509,13 @@ "frame2 = make_frame(d2, name='cat_twice', dy=-0.3, \n", " offsetx=0.03, loc='left')\n", "\n", - "d3 = dict(s = line1+line2)\n", + "d3 = dict(string=line1+line2)\n", "frame3 = make_frame(d3, name='print_twice', \n", - " offsetx=-0.28, offsety=-0.3, loc='left')\n", + " offsetx=0.04, offsety=-0.3, loc='left')\n", "\n", "d4 = {\"?\": line1+line2}\n", "frame4 = make_frame(d4, name='print', \n", - " offsetx=-0.28, offsety=0, loc='left')\n", + " offsetx=-0.22, offsety=0, loc='left')\n", "\n", "stack = Stack([frame1, frame2, frame3, frame4], dy=-0.8)" ] @@ -532,10 +532,10 @@ "from diagram import diagram, adjust\n", "\n", "\n", - "width, height, x, y = [3.8, 2.91, 1.15, 2.66]\n", + "width, height, x, y = [3.77, 2.9, 1.1, 2.65]\n", "ax = diagram(width, height)\n", "bbox = stack.draw(ax, x, y)\n", - "#adjust(x, y, bbox)" + "# adjust(x, y, bbox)" ] }, { @@ -955,6 +955,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap04.ipynb b/blank/chap04.ipynb index 6b5fca9..23e5490 100644 --- a/blank/chap04.ipynb +++ b/blank/chap04.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "df64b7da", "metadata": { "tags": [] @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "320fc8bc", "metadata": { "tags": [] @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "8f5a8a45", "metadata": {}, "outputs": [], @@ -71,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "b3f255cd", "metadata": {}, "outputs": [], @@ -94,7 +94,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "234fde81", "metadata": {}, "outputs": [], @@ -110,7 +110,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "1e768880", "metadata": {}, "outputs": [], @@ -127,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "6d874b03", "metadata": {}, "outputs": [], @@ -144,7 +144,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "1bb57a0c", "metadata": {}, "outputs": [], @@ -171,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "9a9e455f", "metadata": {}, "outputs": [], @@ -187,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "cc27ad66", "metadata": {}, "outputs": [], @@ -207,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "ad5f1128", "metadata": {}, "outputs": [], @@ -223,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "193bbe5e", "metadata": {}, "outputs": [], @@ -243,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "def8a5f1", "metadata": {}, "outputs": [], @@ -259,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "b283e795", "metadata": {}, "outputs": [], @@ -273,12 +273,12 @@ "Adding a parameter to a function is called **generalization** because it makes the function more general: with the previous version, the square is always the same size; with this version it can be any size.\n", "\n", "If we add another parameter, we can make it even more general.\n", - "The following function draws regular polygons with a given of sides." + "The following function draws regular polygons with a given number of sides." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "171974ed", "metadata": {}, "outputs": [], @@ -296,7 +296,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "71f7d9d2", "metadata": {}, "outputs": [], @@ -313,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "8ff2a5f4", "metadata": { "tags": [] @@ -346,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "7f2a5f28", "metadata": {}, "outputs": [], @@ -368,7 +368,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "75258056", "metadata": {}, "outputs": [], @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "381edd23", "metadata": {}, "outputs": [], @@ -422,7 +422,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "2f4eecc0", "metadata": {}, "outputs": [], @@ -438,7 +438,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "539466f6", "metadata": {}, "outputs": [], @@ -456,7 +456,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "8e09f456", "metadata": {}, "outputs": [], @@ -473,7 +473,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "80d6eadd", "metadata": {}, "outputs": [], @@ -505,7 +505,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "1571ee71", "metadata": { "tags": [] @@ -515,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "f4e37360", "metadata": { "tags": [] @@ -576,7 +576,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "baf964ba", "metadata": {}, "outputs": [], @@ -592,7 +592,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "e2e006d5", "metadata": {}, "outputs": [], @@ -621,7 +621,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "b68f3682", "metadata": {}, "outputs": [], @@ -718,7 +718,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "9f94061e", "metadata": { "tags": [] @@ -742,7 +742,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "6f9a0106", "metadata": {}, "outputs": [], @@ -761,7 +761,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "c54ba660", "metadata": {}, "outputs": [], @@ -779,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "1311ee08", "metadata": { "tags": [] @@ -792,14 +792,14 @@ "id": "8b8faaf6", "metadata": {}, "source": [ - "## Exercise\n", + "### Exercise\n", "\n", "Write a function called `rhombus` that draws a rhombus with a given side length and a given interior angle. For example, here's a rhombus with side length `50` and an interior angle of `60` degrees." ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "3db6f106", "metadata": {}, "outputs": [], @@ -817,7 +817,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "1d845de9", "metadata": { "tags": [] @@ -837,7 +837,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "895005cb", "metadata": {}, "outputs": [], @@ -845,7 +845,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "7e7d34b0", "metadata": {}, "outputs": [], @@ -853,7 +853,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "481396f9", "metadata": {}, "outputs": [], @@ -871,7 +871,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "c8dfebc9", "metadata": { "tags": [] @@ -881,19 +881,21 @@ }, { "cell_type": "markdown", - "id": "feae252c", + "id": "991ab59d", "metadata": {}, "source": [ "### Exercise\n", "\n", "Write an appropriately general set of functions that can draw shapes like this.\n", "\n", + "![](https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_pie.png)\n", + "\n", "Hint: Write a function called `triangle` that draws one triangular segment, and then a function called `draw_pie` that uses `triangle`." ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "8be6442e", "metadata": {}, "outputs": [], @@ -901,7 +903,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "be1b7ed8", "metadata": {}, "outputs": [], @@ -919,7 +921,17 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, + "id": "c519ca39", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 51, "id": "89ce198a", "metadata": { "tags": [] @@ -929,19 +941,21 @@ }, { "cell_type": "markdown", - "id": "7c665dd1", + "id": "9c78b76f", "metadata": {}, "source": [ "### Exercise\n", "\n", "Write an appropriately general set of functions that can draw flowers like this.\n", "\n", + "![](https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_flower.png)\n", + "\n", "Hint: Use `arc` to write a function called `petal` that draws one flower petal." ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "0f0e7498", "metadata": {}, "outputs": [], @@ -949,7 +963,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "6c0d0bff", "metadata": {}, "outputs": [], @@ -972,7 +986,17 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": null, + "id": "04193da5", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 53, "id": "4cfea3b0", "metadata": { "tags": [] @@ -1029,7 +1053,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 47, "id": "46d3151c", "metadata": {}, "outputs": [], @@ -1037,19 +1061,27 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 48, "id": "186c7fbc", "metadata": {}, "outputs": [], "source": [] }, { - "cell_type": "code", - "execution_count": null, - "id": "979f5ad4", - "metadata": {}, - "outputs": [], - "source": [] + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap05.ipynb b/blank/chap05.ipynb index b27f183..9f9ad19 100644 --- a/blank/chap05.ipynb +++ b/blank/chap05.ipynb @@ -1506,6 +1506,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap06.ipynb b/blank/chap06.ipynb index b35c34b..7fadc4e 100644 --- a/blank/chap06.ipynb +++ b/blank/chap06.ipynb @@ -1654,6 +1654,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap07.ipynb b/blank/chap07.ipynb index e2855cc..22ea459 100644 --- a/blank/chap07.ipynb +++ b/blank/chap07.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "f0c8eb18", "metadata": { "tags": [] @@ -50,7 +50,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "6b8569b8-1576-45d2-99f6-c7a2c7e100c4", "metadata": {}, "outputs": [], @@ -68,7 +68,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "6cb5b573-601c-42f5-a940-f1a4d244f990", "metadata": {}, "outputs": [], @@ -87,7 +87,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "7040a890-6619-4ad2-b0bf-b094a5a0e43d", "metadata": {}, "outputs": [], @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "40fd553c-693c-4ffc-8e49-1d7de3c4d4a7", "metadata": {}, "outputs": [], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "8a34174b-5a77-482a-8480-14cfdff16339", "metadata": {}, "outputs": [], @@ -135,7 +135,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "0909121d-5218-49ca-b03e-258206f00e40", "metadata": {}, "outputs": [], @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "3c4d8138-ddf6-46fe-a940-a7042617ceb1", "metadata": {}, "outputs": [], @@ -159,7 +159,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "5c463051-b737-49ab-a1d7-4be66fd8331f", "metadata": {}, "outputs": [], @@ -188,7 +188,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "a7b7ac52-64a6-4dd9-98f5-b772a5e0f161", "metadata": { "tags": [] @@ -207,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "1ad13ce7-99be-4412-8e0b-978fe6de25f2", "metadata": {}, "outputs": [], @@ -223,7 +223,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "dc2054e6-d8e8-4a06-a1ea-5cfcf4ccf1e0", "metadata": {}, "outputs": [], @@ -246,7 +246,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "eaea1520-0fb3-4ef3-be6e-9e1cdcccf39f", "metadata": {}, "outputs": [], @@ -262,7 +262,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "id": "f602bfb6-7a93-4fb8-ade6-6784155a6f1a", "metadata": {}, "outputs": [], @@ -281,7 +281,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "cf3b8b7e-5fc7-4bb1-b628-09277bdc5a0d", "metadata": { "tags": [] @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "6bf8a104", "metadata": {}, "outputs": [], @@ -330,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "0fe7ae60", "metadata": {}, "outputs": [], @@ -346,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "8a09bc24", "metadata": { "tags": [] @@ -356,7 +356,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "36a45674-7f41-4850-98f1-2548574ce958", "metadata": { "tags": [] @@ -378,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "id": "ba2ab90b", "metadata": { "tags": [] @@ -388,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "id": "88496dc4", "metadata": {}, "outputs": [], @@ -406,9 +406,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "id": "4a0c46b9", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [] }, @@ -423,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "id": "2220d826", "metadata": {}, "outputs": [], @@ -441,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "id": "d8e1ac5a", "metadata": {}, "outputs": [], @@ -467,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "id": "0afd8f88", "metadata": {}, "outputs": [], @@ -485,7 +487,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "id": "8686b2eb-c610-4d29-a942-2ef8f53e5e36", "metadata": {}, "outputs": [], @@ -503,7 +505,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "id": "89a05280", "metadata": {}, "outputs": [], @@ -519,7 +521,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "id": "9d29b5e9", "metadata": {}, "outputs": [], @@ -535,7 +537,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 29, "id": "304dfd86", "metadata": {}, "outputs": [], @@ -562,7 +564,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 30, "id": "fe6431b7", "metadata": {}, "outputs": [], @@ -578,7 +580,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 31, "id": "85d3fba6", "metadata": {}, "outputs": [], @@ -594,7 +596,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 32, "id": "2d653847", "metadata": {}, "outputs": [], @@ -611,7 +613,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 33, "id": "a92a81bc", "metadata": {}, "outputs": [], @@ -627,7 +629,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 34, "id": "d15f83a4", "metadata": {}, "outputs": [], @@ -643,7 +645,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 35, "id": "e7958af4", "metadata": {}, "outputs": [], @@ -651,7 +653,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 36, "id": "020a57a7", "metadata": {}, "outputs": [], @@ -659,7 +661,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 37, "id": "0b979b20", "metadata": {}, "outputs": [], @@ -678,7 +680,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 38, "id": "bd29ff63", "metadata": {}, "outputs": [], @@ -694,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 39, "id": "9369fb05", "metadata": {}, "outputs": [], @@ -710,7 +712,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 40, "id": "eb32713a", "metadata": {}, "outputs": [], @@ -721,12 +723,12 @@ "id": "b2acc611", "metadata": {}, "source": [ - "`uses_only` converts `word` and `letters` to lowercase, so it works with any combination of cases. " + "`uses_any` converts `word` and `letters` to lowercase, so it works with any combination of cases. " ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 41, "id": "7e65a9fb", "metadata": {}, "outputs": [], @@ -760,7 +762,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 42, "id": "3982e7d3", "metadata": {}, "outputs": [], @@ -784,7 +786,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 43, "id": "40ef00d3", "metadata": {}, "outputs": [], @@ -801,7 +803,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 44, "id": "f37cfd36", "metadata": {}, "outputs": [], @@ -822,7 +824,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 45, "id": "58c916cc", "metadata": {}, "outputs": [], @@ -838,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 46, "id": "7a325745", "metadata": {}, "outputs": [], @@ -905,7 +907,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 47, "id": "bc58db59", "metadata": { "tags": [] @@ -1292,18 +1294,34 @@ { "cell_type": "code", "execution_count": 71, - "id": "6980de57", + "id": "a3ea747d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", - "execution_count": null, - "id": "102df097", + "execution_count": 72, + "id": "6980de57", "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap08.ipynb b/blank/chap08.ipynb index e137ddc..00a2a91 100644 --- a/blank/chap08.ipynb +++ b/blank/chap08.ipynb @@ -1303,10 +1303,7 @@ "Replacement of a string, or part of a string, with another string.\n", "\n", "**shell command:**\n", - "A statement in a shell language, which is a language used to interact with an operating system.\n", - "\n", - "**raw string:**\n", - "A Python string that is preceded by the letter `r`, which indicates that backslashes that appear in the string should not be considered part of a special sequence." + "A statement in a shell language, which is a language used to interact with an operating system." ] }, { @@ -1358,7 +1355,7 @@ "\n", "And if you want to see something more complicated, try asking for a regular expression that matches any legal URL.\n", "\n", - "A regular expression often has the letter `r` before the quotation mark, which indicates that it is a **raw string**.\n", + "A regular expression often has the letter `r` before the quotation mark, which indicates that it is a \"raw string\".\n", "For more information, ask a virtual assistant, \"What is a raw string in Python?\"" ] }, @@ -1445,12 +1442,12 @@ "Each attempt has to be recognized as a word, not including proper nouns.\n", "After each attempt, you get information about which of the letters you guessed appear in the target word, and which ones are in the correct position.\n", "\n", - "For example, suppose the target word is `MOWER` and you guess `TRIED`. You would learn that `E` is in the word and in the correct position, `R` is in the word but not in the correct position, and `T`, `I`, and `D` are not in the word.\n", + "For example, suppose the target word is `MOWER` and you guess `TRIED`.\n", + "You would learn that `E` is in the word and in the correct position, `R` is in the word but not in the correct position, and `T`, `I`, and `D` are not in the word.\n", "\n", "As a different example, suppose you have guessed the words `SPADE` and `CLERK`, and you've learned that `E` is in the word, but not in either of those positions, and none of the other letters appear in the word.\n", - "\n", "Of the words in the word list, how many could be the target word?\n", - "Write a function called `check_word` that takes a five-letter word and checks whether it could be the target word." + "Write a function called `check_word` that takes a five-letter word and checks whether it could be the target word, given these guesses." ] }, { @@ -1537,8 +1534,9 @@ "\n", "In particular, he says it is \"shameless in its repetition of the same adjective,\" and mentions in particular the number of times \"its characters either shudder or turn pale.\"\n", "\n", - "To see whether his objection is valid, let's count the number number of times the word `pale` appears in any form, including `pale`, `pales`, `paled`, and `paleness`, as well as the related word `pallor`. \n", - "Use a single regular expression that matches all of these words and no others." + "To see whether his objection is valid, let's count the number number of lines that contain the word `pale` in any form, including `pale`, `pales`, `paled`, and `paleness`, as well as the related word `pallor`. \n", + "Use a single regular expression that matches any of these words.\n", + "As an additional challenge, make sure that it doesn't match any other words, like `impale` -- you might want to ask a virtual assistant for help." ] }, { @@ -1583,7 +1581,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 83, "id": "08294921", "metadata": {}, "outputs": [], @@ -1591,29 +1589,45 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 84, "id": "3eb8f83f", "metadata": {}, "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": 85, + "id": "b6bffe8a", + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", - "id": "71d2148f", + "id": "7db56337", "metadata": { "tags": [] }, "source": [ - "By my count, these words appear `223` times in a book that contains about `461,000` words. Mr. Eco might have a point." + "By this count, these words appear on `223` lines of the book, so Mr. Eco might have a point." ] }, { - "cell_type": "code", - "execution_count": null, - "id": "32d539d9", - "metadata": {}, - "outputs": [], - "source": [] + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap09.ipynb b/blank/chap09.ipynb index 4521314..c4cae84 100644 --- a/blank/chap09.ipynb +++ b/blank/chap09.ipynb @@ -1633,6 +1633,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap10.ipynb b/blank/chap10.ipynb index 23c3157..56d77c9 100644 --- a/blank/chap10.ipynb +++ b/blank/chap10.ipynb @@ -1008,7 +1008,7 @@ "\n", "As you work with bigger datasets it can become unwieldy to debug by printing and checking the output by hand. Here are some suggestions for debugging large datasets:\n", "\n", - "1) Scale down the input: If possible, reduce the size of the dataset. For example if the\n", + "1. Scale down the input: If possible, reduce the size of the dataset. For example if the\n", " program reads a text file, start with just the first 10 lines, or\n", " with the smallest example you can find. You can either edit the\n", " files themselves, or (better) modify the program so it reads only\n", @@ -1492,6 +1492,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap11.ipynb b/blank/chap11.ipynb index 916cd43..d80bc23 100644 --- a/blank/chap11.ipynb +++ b/blank/chap11.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "295ac6d7", "metadata": { "tags": [] @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "fb0bdca2", "metadata": {}, "outputs": [], @@ -70,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "5a6da881", "metadata": {}, "outputs": [], @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "e2596ca7", "metadata": {}, "outputs": [], @@ -102,7 +102,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "a0d350a6", "metadata": {}, "outputs": [], @@ -119,7 +119,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "c9100ee4", "metadata": {}, "outputs": [], @@ -136,7 +136,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "44bd3d83", "metadata": {}, "outputs": [], @@ -155,7 +155,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "92e55b2c", "metadata": {}, "outputs": [], @@ -171,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "38ee5c2a", "metadata": {}, "outputs": [], @@ -187,7 +187,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "2e0e311a", "metadata": {}, "outputs": [], @@ -203,7 +203,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "8bb7d715", "metadata": {}, "outputs": [], @@ -219,7 +219,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "e653e00f", "metadata": {}, "outputs": [], @@ -235,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "8969188d", "metadata": {}, "outputs": [], @@ -251,7 +251,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "65d7ebaa", "metadata": {}, "outputs": [], @@ -277,7 +277,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "b4970fe0", "metadata": { "tags": [] @@ -295,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "772738cc", "metadata": { "tags": [] @@ -316,7 +316,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "37e67042", "metadata": {}, "outputs": [], @@ -332,7 +332,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "d809a490", "metadata": {}, "outputs": [], @@ -348,7 +348,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "dfc42a8b", "metadata": {}, "outputs": [], @@ -364,7 +364,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "2debf30c", "metadata": {}, "outputs": [], @@ -382,7 +382,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "1e94ea37", "metadata": {}, "outputs": [], @@ -399,7 +399,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "99c96c7f", "metadata": {}, "outputs": [], @@ -416,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "b67881ed", "metadata": {}, "outputs": [], @@ -432,7 +432,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "b4515e2b", "metadata": {}, "outputs": [], @@ -449,7 +449,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "8e5b4a14", "metadata": { "tags": [] @@ -468,7 +468,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "2389d6de", "metadata": {}, "outputs": [], @@ -484,7 +484,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "5512edec", "metadata": {}, "outputs": [], @@ -503,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "651ab417", "metadata": {}, "outputs": [], @@ -521,7 +521,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "2c0b7d47", "metadata": {}, "outputs": [], @@ -554,7 +554,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "fff80eaa", "metadata": {}, "outputs": [], @@ -570,7 +570,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "4a0eb2a9", "metadata": {}, "outputs": [], @@ -578,7 +578,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "d74ba1b6", "metadata": {}, "outputs": [], @@ -594,7 +594,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "dad3b3bb", "metadata": {}, "outputs": [], @@ -611,7 +611,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "fbd90b0e", "metadata": {}, "outputs": [], @@ -627,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "5a101efb", "metadata": {}, "outputs": [], @@ -649,7 +649,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "0a33e2d0", "metadata": {}, "outputs": [], @@ -666,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "336a08ca", "metadata": {}, "outputs": [], @@ -683,7 +683,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "991810bc", "metadata": { "tags": [] @@ -702,7 +702,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "f25ebee1", "metadata": {}, "outputs": [], @@ -719,7 +719,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "7ad64412", "metadata": {}, "outputs": [], @@ -739,7 +739,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "b2863701", "metadata": {}, "outputs": [], @@ -747,7 +747,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "id": "cc1afa29", "metadata": {}, "outputs": [], @@ -774,7 +774,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "ad3e6f81", "metadata": {}, "outputs": [], @@ -791,7 +791,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "9ce313ce", "metadata": {}, "outputs": [], @@ -807,7 +807,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 46, "id": "321d9c30", "metadata": {}, "outputs": [], @@ -824,7 +824,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 47, "id": "7eb73d5d", "metadata": {}, "outputs": [], @@ -842,7 +842,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 48, "id": "9529baa8", "metadata": {}, "outputs": [], @@ -858,7 +858,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 49, "id": "dbde77b8", "metadata": {}, "outputs": [], @@ -875,7 +875,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 50, "id": "dbb7d0b3", "metadata": {}, "outputs": [], @@ -891,7 +891,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 51, "id": "49e3fd8e", "metadata": {}, "outputs": [], @@ -909,7 +909,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 52, "id": "9e4f3e51", "metadata": {}, "outputs": [], @@ -925,7 +925,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 53, "id": "c1dcb46d", "metadata": {}, "outputs": [], @@ -945,7 +945,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 54, "id": "aed20c28", "metadata": {}, "outputs": [], @@ -961,7 +961,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 55, "id": "4d9e73b3", "metadata": {}, "outputs": [], @@ -979,7 +979,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 56, "id": "2077dfa9", "metadata": {}, "outputs": [], @@ -995,7 +995,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 57, "id": "b3d40516", "metadata": {}, "outputs": [], @@ -1014,7 +1014,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 58, "id": "8288c28f", "metadata": {}, "outputs": [], @@ -1030,7 +1030,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 59, "id": "bbbade35", "metadata": {}, "outputs": [], @@ -1049,7 +1049,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 60, "id": "a4c31795", "metadata": {}, "outputs": [], @@ -1065,7 +1065,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 61, "id": "f3d3619a", "metadata": {}, "outputs": [], @@ -1083,7 +1083,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 62, "id": "f078c8a6", "metadata": {}, "outputs": [], @@ -1100,7 +1100,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 63, "id": "54030d8f", "metadata": {}, "outputs": [], @@ -1132,7 +1132,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 64, "id": "ef158f81", "metadata": {}, "outputs": [], @@ -1150,7 +1150,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 65, "id": "d3607b8d", "metadata": {}, "outputs": [], @@ -1170,7 +1170,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 66, "id": "692d9cf8", "metadata": {}, "outputs": [], @@ -1199,7 +1199,7 @@ "Lists, dictionaries and tuples are **data structures**.\n", "In this chapter we are starting to see compound data structures, like lists of tuples, or dictionaries that contain tuples as keys and lists as values.\n", "Compound data structures are useful, but they are prone to errors caused when a data structure has the wrong type, size, or structure.\n", - "For example, if a function expects a list if integers and you give it a plain old integer\n", + "For example, if a function expects a list of integers and you give it a plain old integer\n", "(not in a list), it probably won't work.\n", "\n", "To help debug these kinds of errors, I wrote a module called `structshape` that provides a function, also called `structshape`, that takes any kind of data structure as an argument and returns a string that summarizes its structure.\n", @@ -1209,7 +1209,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 67, "id": "e9f03e91", "metadata": { "tags": [] @@ -1227,7 +1227,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 68, "id": "90ab624a", "metadata": {}, "outputs": [], @@ -1243,7 +1243,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 69, "id": "6794330f", "metadata": {}, "outputs": [], @@ -1259,7 +1259,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 70, "id": "54cd185b", "metadata": {}, "outputs": [], @@ -1276,7 +1276,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 71, "id": "04028afd", "metadata": {}, "outputs": [], @@ -1292,7 +1292,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 72, "id": "b5d45c88", "metadata": {}, "outputs": [], @@ -1308,7 +1308,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 73, "id": "15131907", "metadata": {}, "outputs": [], @@ -1359,7 +1359,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 74, "id": "c65d68d2", "metadata": { "tags": [] @@ -1400,7 +1400,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 75, "id": "4416fe4a", "metadata": {}, "outputs": [], @@ -1416,7 +1416,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 76, "id": "e6eda0e4", "metadata": { "tags": [] @@ -1434,7 +1434,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 77, "id": "4fae1acc", "metadata": { "tags": [] @@ -1464,7 +1464,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 78, "id": "855c7ed2", "metadata": {}, "outputs": [], @@ -1480,7 +1480,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 79, "id": "3c921f68", "metadata": {}, "outputs": [], @@ -1497,7 +1497,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 80, "id": "b029b0da", "metadata": {}, "outputs": [], @@ -1534,7 +1534,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 81, "id": "1cc07036", "metadata": { "tags": [] @@ -1544,7 +1544,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 82, "id": "96560a0e", "metadata": {}, "outputs": [], @@ -1552,7 +1552,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 83, "id": "c026c6d1", "metadata": { "tags": [] @@ -1562,7 +1562,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 84, "id": "5814999d", "metadata": { "tags": [] @@ -1582,7 +1582,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 85, "id": "9464d140", "metadata": { "tags": [] @@ -1614,7 +1614,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 86, "id": "4309d0b5", "metadata": { "tags": [] @@ -1624,7 +1624,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 87, "id": "52228828", "metadata": {}, "outputs": [], @@ -1642,7 +1642,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 88, "id": "3bf2aa0d", "metadata": { "tags": [] @@ -1662,7 +1662,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 89, "id": "e4fbf5d9", "metadata": { "tags": [] @@ -1672,7 +1672,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 90, "id": "817ec689", "metadata": { "tags": [] @@ -1724,7 +1724,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 91, "id": "941719c1", "metadata": { "tags": [] @@ -1734,7 +1734,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 92, "id": "d2ec641b", "metadata": { "tags": [] @@ -1754,7 +1754,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 93, "id": "7ae29f73", "metadata": { "tags": [] @@ -1764,7 +1764,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 94, "id": "013819a5", "metadata": {}, "outputs": [], @@ -1783,7 +1783,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 95, "id": "fbf9ede3", "metadata": { "tags": [] @@ -1803,7 +1803,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 96, "id": "55435050", "metadata": { "tags": [] @@ -1823,7 +1823,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 97, "id": "6a9320c2", "metadata": { "tags": [] @@ -1855,7 +1855,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 98, "id": "3d5a75f8", "metadata": { "tags": [] @@ -1865,7 +1865,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 99, "id": "a9816dde", "metadata": {}, "outputs": [], @@ -1873,7 +1873,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 100, "id": "753a23c1", "metadata": { "tags": [] @@ -1899,7 +1899,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 101, "id": "57649075", "metadata": {}, "outputs": [], @@ -1959,7 +1959,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 102, "id": "c19bf833", "metadata": {}, "outputs": [], @@ -1967,7 +1967,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 103, "id": "2d9764d6", "metadata": {}, "outputs": [], @@ -1975,7 +1975,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 104, "id": "5e4f5d8e", "metadata": {}, "outputs": [], @@ -1983,7 +1983,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 105, "id": "27d311dd", "metadata": {}, "outputs": [], @@ -1991,19 +1991,27 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 106, "id": "68c27c7e", "metadata": {}, "outputs": [], "source": [] }, { - "cell_type": "code", - "execution_count": null, - "id": "a34c2014", - "metadata": {}, - "outputs": [], - "source": [] + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { @@ -2023,7 +2031,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.14" + "version": "3.10.11" } }, "nbformat": 4, diff --git a/blank/chap12.ipynb b/blank/chap12.ipynb index d9ac117..220b664 100644 --- a/blank/chap12.ipynb +++ b/blank/chap12.ipynb @@ -27,7 +27,7 @@ "source": [ "# Text Analysis and Generation\n", "\n", - "At this point we have covered Python's core data structures -- lists, dictionaries, and tuples -- and and some algorithms that use them.\n", + "At this point we have covered Python's core data structures -- lists, dictionaries, and tuples -- and some algorithms that use them.\n", "In this chapter, we'll use them to explore text analysis and Markov generation:\n", "\n", "* Text analysis is a way to describe the statistical relationships between the words in a document, like the probability that one word is followed by another, and\n", @@ -1771,6 +1771,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap13.ipynb b/blank/chap13.ipynb index e346fce..69616a9 100644 --- a/blank/chap13.ipynb +++ b/blank/chap13.ipynb @@ -283,7 +283,7 @@ "id": "f652aaac", "metadata": {}, "source": [ - "To write this data to a file, you can use the `write` method, which we saw in [Chapter 8](section_writing_files).\n", + "To write this data to a file, you can use the `write` method, which we saw in Chapter 8.\n", "The argument of `write` has to be a string, so if we want to put other values in a file, we have to convert them to strings.\n", "The easiest way to do that is with the built-in function `str`.\n", "\n", @@ -1634,6 +1634,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap14.ipynb b/blank/chap14.ipynb index c9b0f0f..38aaffc 100644 --- a/blank/chap14.ipynb +++ b/blank/chap14.ipynb @@ -1415,6 +1415,22 @@ "id": "d6f1cc2f", "metadata": {}, "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap15.ipynb b/blank/chap15.ipynb index dc133c2..2ffde33 100644 --- a/blank/chap15.ipynb +++ b/blank/chap15.ipynb @@ -881,6 +881,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap16.ipynb b/blank/chap16.ipynb index 987c2cc..4309183 100644 --- a/blank/chap16.ipynb +++ b/blank/chap16.ipynb @@ -1508,6 +1508,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap17.ipynb b/blank/chap17.ipynb index eb14274..bc6b43e 100644 --- a/blank/chap17.ipynb +++ b/blank/chap17.ipynb @@ -2102,6 +2102,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap18.ipynb b/blank/chap18.ipynb index 8487e41..6a069c1 100644 --- a/blank/chap18.ipynb +++ b/blank/chap18.ipynb @@ -1513,7 +1513,7 @@ "metadata": {}, "source": [ "`run_unittest` does not take `TestExample` as an argument -- instead, it searches for classes that inherit from `TestCase`.\n", - "Then is searches for methods that begin with `test` and runs them.\n", + "Then it searches for methods that begin with `test` and runs them.\n", "This process is called **test discovery**.\n", "\n", "Here's what happens when we call `run_unittest`." @@ -2045,6 +2045,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { diff --git a/blank/chap19.ipynb b/blank/chap19.ipynb index 190c3e6..4d86fb8 100644 --- a/blank/chap19.ipynb +++ b/blank/chap19.ipynb @@ -146,6 +146,22 @@ "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "markdown", + "id": "a7f4edf8", + "metadata": { + "tags": [] + }, + "source": [ + "[Think Python: 3rd Edition](https://allendowney.github.io/ThinkPython/index.html)\n", + "\n", + "Copyright 2024 [Allen B. Downey](https://allendowney.com)\n", + "\n", + "Code license: [MIT License](https://mit-license.org/)\n", + "\n", + "Text license: [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-nc-sa/4.0/)" + ] } ], "metadata": { From 7cf11d17acc9e84e12b96a0ce760628f9a4ad45e Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sun, 19 Jan 2025 15:02:28 -0500 Subject: [PATCH 34/60] Updating the notebooks --- chapters/chap03.ipynb | 5 ++++- chapters/chap06.ipynb | 9 ++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/chapters/chap03.ipynb b/chapters/chap03.ipynb index 7eae21b..5f2cb1d 100644 --- a/chapters/chap03.ipynb +++ b/chapters/chap03.ipynb @@ -606,7 +606,10 @@ "width, height, x, y = [3.77, 2.9, 1.1, 2.65]\n", "ax = diagram(width, height)\n", "bbox = stack.draw(ax, x, y)\n", - "# adjust(x, y, bbox)" + "# adjust(x, y, bbox)\n", + "\n", + "import matplotlib.pyplot as plt\n", + "plt.savefig('chap03_stack_diagram.png', dpi=300)" ] }, { diff --git a/chapters/chap06.ipynb b/chapters/chap06.ipynb index 1d30683..5b082b8 100644 --- a/chapters/chap06.ipynb +++ b/chapters/chap06.ipynb @@ -1039,7 +1039,7 @@ }, { "cell_type": "code", - "execution_count": 130, + "execution_count": 1, "id": "455f0457", "metadata": { "tags": [] @@ -1063,7 +1063,7 @@ " loc='left', dx=1.2)\n", " frames.append(frame)\n", " \n", - "binding1 = make_binding('n', n)\n", + "binding1 = make_binding('n', 0)\n", "frame = Frame([binding1], name='factorial', value=1, \n", " shim=1.2, loc='left', dx=1.4)\n", "frames.append(frame)\n", @@ -1073,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": 4, "id": "a75ccd9b", "metadata": { "tags": [] @@ -1197,8 +1197,7 @@ "id": "0bec7ba4", "metadata": {}, "source": [ - "It looks like an infinite recursion. How can that be? The function has a\n", - "base case -- when `n == 0`.\n", + "It looks like an infinite recursion. How can that be? The function has base cases when `n == 1` or `n == 0`.\n", "But if `n` is not an integer, we can *miss* the base case and recurse forever.\n", "\n", "In this example, the initial value of `n` is `1.5`.\n", From 8e938813eeeb198c5150f97a4fcdf433aa07e0e1 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sun, 19 Jan 2025 15:02:28 -0500 Subject: [PATCH 35/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579347 -> 579404 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 4a991b95695c6d9a7b1638b4d3a26a787182967c..b2edbef5fd72d6ef0791d5b52d8f12289ae8e4e4 100644 GIT binary patch delta 14208 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�T-p&; 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 delta 14153 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 Date: Wed, 22 Jan 2025 13:14:18 -0500 Subject: [PATCH 36/60] Updating the notebooks --- chapters/chap06.ipynb | 172 +++++++++++++++++++++--------------------- chapters/chap08.ipynb | 2 +- 2 files changed, 87 insertions(+), 87 deletions(-) diff --git a/chapters/chap06.ipynb b/chapters/chap06.ipynb index 5b082b8..a8d03c3 100644 --- a/chapters/chap06.ipynb +++ b/chapters/chap06.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 5, "id": "56b1c184", "metadata": { "tags": [] @@ -66,7 +66,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 6, "id": "e0e1dd91", "metadata": {}, "outputs": [], @@ -86,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 7, "id": "5aaf62d2", "metadata": {}, "outputs": [], @@ -104,7 +104,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 8, "id": "741f7386", "metadata": {}, "outputs": [], @@ -122,7 +122,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 9, "id": "e56d39c4", "metadata": {}, "outputs": [], @@ -140,7 +140,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 10, "id": "50a9a9be", "metadata": {}, "outputs": [], @@ -164,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 11, "id": "d70fd9b5", "metadata": {}, "outputs": [], @@ -182,7 +182,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 12, "id": "ef20ba8c", "metadata": {}, "outputs": [], @@ -200,7 +200,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 13, "id": "0a4670f4", "metadata": {}, "outputs": [], @@ -218,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 14, "id": "6e6460b9", "metadata": {}, "outputs": [], @@ -236,7 +236,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 15, "id": "77613df9", "metadata": { "tags": [] @@ -269,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 16, "id": "89c083f8", "metadata": {}, "outputs": [], @@ -288,7 +288,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 17, "id": "737b67ca", "metadata": {}, "outputs": [], @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 18, "id": "9b4fa14f", "metadata": {}, "outputs": [], @@ -325,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 19, "id": "50f96bcb", "metadata": {}, "outputs": [], @@ -344,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 20, "id": "6712f2df", "metadata": {}, "outputs": [], @@ -364,7 +364,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 21, "id": "0ec1afd3", "metadata": {}, "outputs": [], @@ -386,7 +386,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 22, "id": "c82334b6", "metadata": {}, "outputs": [], @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 23, "id": "595ec598", "metadata": {}, "outputs": [], @@ -432,7 +432,7 @@ }, { "cell_type": "code", - "execution_count": 106, + "execution_count": 24, "id": "236c59e6", "metadata": {}, "outputs": [], @@ -459,7 +459,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 25, "id": "2f60639c", "metadata": {}, "outputs": [], @@ -481,7 +481,7 @@ }, { "cell_type": "code", - "execution_count": 108, + "execution_count": 26, "id": "c9dae6c8", "metadata": {}, "outputs": [], @@ -501,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 27, "id": "c8c4edee", "metadata": {}, "outputs": [], @@ -555,7 +555,7 @@ }, { "cell_type": "code", - "execution_count": 110, + "execution_count": 28, "id": "bbcab1ed", "metadata": {}, "outputs": [], @@ -577,7 +577,7 @@ }, { "cell_type": "code", - "execution_count": 111, + "execution_count": 29, "id": "923d96db", "metadata": {}, "outputs": [], @@ -601,7 +601,7 @@ }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 30, "id": "9374cfe3", "metadata": {}, "outputs": [], @@ -627,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 113, + "execution_count": 31, "id": "405af839", "metadata": {}, "outputs": [], @@ -645,7 +645,7 @@ }, { "cell_type": "code", - "execution_count": 114, + "execution_count": 32, "id": "e52b3b04", "metadata": {}, "outputs": [], @@ -668,7 +668,7 @@ }, { "cell_type": "code", - "execution_count": 115, + "execution_count": 33, "id": "38eebbf3", "metadata": {}, "outputs": [], @@ -686,7 +686,7 @@ }, { "cell_type": "code", - "execution_count": 116, + "execution_count": 34, "id": "b4536ea0", "metadata": {}, "outputs": [], @@ -709,7 +709,7 @@ }, { "cell_type": "code", - "execution_count": 117, + "execution_count": 35, "id": "325efb93", "metadata": {}, "outputs": [], @@ -729,7 +729,7 @@ }, { "cell_type": "code", - "execution_count": 118, + "execution_count": 36, "id": "3cd982ce", "metadata": {}, "outputs": [], @@ -753,7 +753,7 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 37, "id": "c734f5b2", "metadata": {}, "outputs": [], @@ -771,7 +771,7 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 38, "id": "094a242f", "metadata": {}, "outputs": [], @@ -813,7 +813,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 39, "id": "64207948", "metadata": {}, "outputs": [], @@ -835,7 +835,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 40, "id": "c367cdae", "metadata": {}, "outputs": [], @@ -845,7 +845,7 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 41, "id": "837f4f95", "metadata": {}, "outputs": [], @@ -864,7 +864,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 42, "id": "e411354f", "metadata": {}, "outputs": [], @@ -883,7 +883,7 @@ }, { "cell_type": "code", - "execution_count": 125, + "execution_count": 43, "id": "925e7d4f", "metadata": {}, "outputs": [], @@ -902,7 +902,7 @@ }, { "cell_type": "code", - "execution_count": 126, + "execution_count": 44, "id": "62178e75", "metadata": {}, "outputs": [], @@ -949,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 127, + "execution_count": 45, "id": "23e37c79", "metadata": {}, "outputs": [], @@ -968,7 +968,7 @@ }, { "cell_type": "code", - "execution_count": 128, + "execution_count": 46, "id": "5ea57d9f", "metadata": {}, "outputs": [], @@ -991,7 +991,7 @@ }, { "cell_type": "code", - "execution_count": 129, + "execution_count": 47, "id": "b66e670b", "metadata": {}, "outputs": [], @@ -1039,7 +1039,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 48, "id": "455f0457", "metadata": { "tags": [] @@ -1073,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 49, "id": "a75ccd9b", "metadata": { "tags": [] @@ -1142,7 +1142,7 @@ }, { "cell_type": "code", - "execution_count": 132, + "execution_count": 50, "id": "cad75752", "metadata": {}, "outputs": [], @@ -1180,7 +1180,7 @@ }, { "cell_type": "code", - "execution_count": 133, + "execution_count": 51, "id": "5e4b5f1d", "metadata": { "tags": [] @@ -1211,7 +1211,7 @@ }, { "cell_type": "code", - "execution_count": 134, + "execution_count": 52, "id": "3f607dff", "metadata": {}, "outputs": [], @@ -1221,7 +1221,7 @@ }, { "cell_type": "code", - "execution_count": 135, + "execution_count": 53, "id": "ab638bfe", "metadata": {}, "outputs": [], @@ -1239,7 +1239,7 @@ }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 54, "id": "73aafac0", "metadata": {}, "outputs": [], @@ -1269,7 +1269,7 @@ }, { "cell_type": "code", - "execution_count": 137, + "execution_count": 55, "id": "be881cb7", "metadata": {}, "outputs": [], @@ -1288,7 +1288,7 @@ }, { "cell_type": "code", - "execution_count": 138, + "execution_count": 56, "id": "fa83014f", "metadata": {}, "outputs": [], @@ -1337,7 +1337,7 @@ }, { "cell_type": "code", - "execution_count": 139, + "execution_count": 57, "id": "1d50479e", "metadata": {}, "outputs": [], @@ -1366,7 +1366,7 @@ }, { "cell_type": "code", - "execution_count": 140, + "execution_count": 58, "id": "798db5c4", "metadata": {}, "outputs": [], @@ -1423,7 +1423,7 @@ }, { "cell_type": "code", - "execution_count": 142, + "execution_count": 59, "id": "e0f15ca4", "metadata": { "tags": [] @@ -1448,7 +1448,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 60, "id": "90b4979f", "metadata": {}, "outputs": [], @@ -1470,7 +1470,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 61, "id": "9217f038", "metadata": {}, "outputs": [], @@ -1494,7 +1494,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 62, "id": "3168489b", "metadata": {}, "outputs": [], @@ -1533,7 +1533,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 63, "id": "62267fa3", "metadata": {}, "outputs": [], @@ -1543,7 +1543,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 64, "id": "5f8fa829", "metadata": {}, "outputs": [], @@ -1553,7 +1553,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 65, "id": "3d129b03", "metadata": {}, "outputs": [], @@ -1563,7 +1563,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 66, "id": "030179b6", "metadata": {}, "outputs": [], @@ -1573,7 +1573,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 67, "id": "d737b468", "metadata": {}, "outputs": [], @@ -1583,7 +1583,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 68, "id": "77a74879", "metadata": {}, "outputs": [], @@ -1593,7 +1593,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 69, "id": "0521d267", "metadata": {}, "outputs": [], @@ -1603,7 +1603,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 70, "id": "468a31e9", "metadata": {}, "outputs": [], @@ -1613,7 +1613,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 71, "id": "abbe3ebf", "metadata": {}, "outputs": [], @@ -1623,7 +1623,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 72, "id": "651295e4", "metadata": {}, "outputs": [], @@ -1644,7 +1644,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "id": "0a4ee482", "metadata": {}, "outputs": [], @@ -1664,7 +1664,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 74, "id": "956ed6d7", "metadata": { "tags": [] @@ -1676,7 +1676,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 75, "id": "a994eaa6", "metadata": { "tags": [] @@ -1688,7 +1688,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 76, "id": "4318028d", "metadata": { "tags": [] @@ -1700,7 +1700,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 77, "id": "05208c8b", "metadata": { "tags": [] @@ -1733,7 +1733,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 78, "id": "7eb85c5c", "metadata": {}, "outputs": [], @@ -1753,7 +1753,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 79, "id": "687a3e5a", "metadata": { "tags": [] @@ -1765,7 +1765,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "id": "c49e9749", "metadata": { "tags": [] @@ -1777,7 +1777,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 81, "id": "8497dec4", "metadata": { "tags": [] @@ -1799,7 +1799,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 82, "id": "76be4d15", "metadata": { "tags": [] @@ -1838,7 +1838,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 83, "id": "0bcba5fe", "metadata": {}, "outputs": [], @@ -1858,7 +1858,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 84, "id": "4b6656e6", "metadata": { "tags": [] @@ -1870,7 +1870,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 85, "id": "36d9e92a", "metadata": { "tags": [] @@ -1882,7 +1882,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 86, "id": "1d944b42", "metadata": { "tags": [] @@ -1894,7 +1894,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 87, "id": "63ec57c9", "metadata": { "tags": [] @@ -1924,7 +1924,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 88, "id": "4e067bfb", "metadata": {}, "outputs": [], @@ -1944,7 +1944,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 89, "id": "2a7c1c21", "metadata": { "tags": [] @@ -1956,7 +1956,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 90, "id": "5df00229", "metadata": { "tags": [] diff --git a/chapters/chap08.ipynb b/chapters/chap08.ipynb index 1323762..0108312 100644 --- a/chapters/chap08.ipynb +++ b/chapters/chap08.ipynb @@ -862,7 +862,7 @@ "id": "34c93df3", "metadata": {}, "source": [ - "The `endswidth` method checks whether a string ends with a given sequence of characters." + "The `endswith` method checks whether a string ends with a given sequence of characters." ] }, { From 3ae2ff0220806fd7dedf700cb4228348bbb703a3 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 22 Jan 2025 13:14:18 -0500 Subject: [PATCH 37/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579404 -> 579477 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index b2edbef5fd72d6ef0791d5b52d8f12289ae8e4e4..399eaa47912696864c5f3c3b0beab0e0f0a06345 100644 GIT binary patch delta 24969 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

01mLPT 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 From c0622875baafe2b19d406b2b85ee24847898dd5d Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 28 Jan 2025 09:39:03 -0500 Subject: [PATCH 38/60] Updating the notebooks --- chapters/chap00.ipynb | 4 ++-- chapters/chap10.ipynb | 12 ------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/chapters/chap00.ipynb b/chapters/chap00.ipynb index 55b62c2..b42d9c0 100644 --- a/chapters/chap00.ipynb +++ b/chapters/chap00.ipynb @@ -171,9 +171,9 @@ "\n", "If you are teaching with this book, here are some resources you might find useful.\n", "\n", - "* You can find notebooks with solutions to the exercises from , along with links to the additional resources below.\n", + "* You can find notebooks with solutions to the exercises at , along with links to the additional resources below.\n", "\n", - "* Quizzes for each chapter, and a summative quiz for the whole book, are available from [COMING SOON]\n", + "* Quizzes for each chapter, and a summative quiz for the whole book, are available on request.\n", "\n", "* *Teaching and Learning with Jupyter* is an online book with suggestions for using Jupyter effectively in the classroom. You can read the book at \n", "\n", diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index 51dac26..5a0f8eb 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -611,18 +611,6 @@ "The time it takes to find a key in a dictionary is almost constant -- regardless of the number of items." ] }, - { - "cell_type": "code", - "execution_count": 63, - "id": "aa079ed3", - "metadata": {}, - "outputs": [], - "source": [ - "d = {'a': 1, 'b': 2}\n", - "d['a'] = 3\n", - "d" - ] - }, { "cell_type": "markdown", "id": "b3bfa8a5", From 1a14dace0632cb3396c5f74ffa8de856b24482e6 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 28 Jan 2025 09:39:03 -0500 Subject: [PATCH 39/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579477 -> 579434 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 399eaa47912696864c5f3c3b0beab0e0f0a06345..07539c066b1a05adc740e1122617f4eb47f99d9e 100644 GIT binary patch delta 18029 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 Date: Tue, 28 Jan 2025 09:45:46 -0500 Subject: [PATCH 40/60] Updating the notebooks --- chapters/chap18.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapters/chap18.ipynb b/chapters/chap18.ipynb index 2cc91a5..1955731 100644 --- a/chapters/chap18.ipynb +++ b/chapters/chap18.ipynb @@ -2027,9 +2027,9 @@ "\n", "* \"How does `unittest` do test discovery?\"\n", "\n", - "\"Along with `assertEqual`, what are the most commonly used methods in `unittest.TestCase`?\"\n", + "* \"Along with `assertEqual`, what are the most commonly used methods in `unittest.TestCase`?\"\n", "\n", - "\"What are the pros and cons of `doctest` and `unittest`?\"\n", + "* \"What are the pros and cons of `doctest` and `unittest`?\"\n", "\n", "For the following exercises, consider asking an AI for help, but as always, remember to test the results." ] From 6c568d1594b0cf69bbff8c9098676c06d9d7fdbb Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 28 Jan 2025 09:45:46 -0500 Subject: [PATCH 41/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579434 -> 579430 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 07539c066b1a05adc740e1122617f4eb47f99d9e..a5bf99e15c98281578c1afb321e547e86a37f39f 100644 GIT binary patch delta 3127 zcmZ9PX&{vA7r>kvTR4WmqDc%%Cmn*-RU=$W~k2_I|@y2KfJBL^@Gr#uKu_fR8@|n z-bDRu-9!|PbQl7Wt;XC*(oQo|kyF47fOV4tSMBZEcRy< zm)_#PR+*70ezx9wNw>-D!0jqA%o8mko)g00aeG9*ymGG#gX#NLUpS(lJdbcs(hd>%#nev z2t9$f%!6zFD67&$gsjcbzS%oVp)WZv>-o86-wfF2N;n5Lkf`$;*&GrZe|x&T3%(mH zcbgLlG~Rmw`z+jScLHZ2M-iy#dkx24cbC)p44>uEB>VT@NZqStEFc%0x{=yk7ySnL z5+4q^#jaX0tyb|BSzOR?Kf69>;O!QTCuxT5uI`yxPxZnq3t^x08|=lWeLJXgF6TVN zx+@%Ue$m||qdeKLBV0(k%|i-orRI5ZBNE$_3XX z|ES6cx?eIWMXiEK&TqN{^I>Ms`o|U%yrBDD+eq4Gl3I1;rhmkj=)q&Pm0ynVn;ra? zvbXWEenD26Kgqk}68?n*0hVJ)DdB;cbKY#w zlnku6%gaAlZ5!{o>aW1n2(!$924@|L;Gwsv6`PzXSbkZ&Zk(9Yl*Ph}f<;9?lI3)hnZadSsy+ z-aiUolandB!5_|LV6NPs+H-Z7?Lvpuw6*I*pM$UCY8R9711Ae+WB{!v-H=D4^^miO zrM`!Dsq0{NE!J#UoxhNP)-Bsy#1Gh1^Up^bd&RV$dJe>=Q%iZ{jB}L+3U+o5cyj0omFrrII!C%Ft9-lk8La}g z4@#)s51cq{Fnt}-%;aKPwCt_9gy!5Bip?}6I;|AhyLllMf|}*o6dl%vs3D2(^Kasc z#Xii47g}a3z6>V#c5Vof@D}RpMeb2IO}-cg>?zYc5?FGy6OEf)pjuZ(j2!nn#Nz+F zMR|Db#(VhC-H285wbvrOj=mM_S?&(Cf3CF|iaXNzDqXWy@=xwHnq7bPv180zgOfS? zWeV#s(V6qzGczYy@(p+HOkBrIhJBrr7UjTb=SG4*+()iy0yIo+p! z2-e$uA&7HQogE@^>Rlqg)Bn6h^gNo1Sn4@*l{ zae^9}XQ}j>0AI;XaNx`GtBed=}dJ>Udz$Fbw-kFk|M9HPmL?|V~h3*JH zJi>*iMLqellu73JGX)N&yUfSVzoz+MWVq-K*;Fq}n6arV<ifQQ1C*-E5#G}`tqD69x zX8I;wfk8GCM;x$6VY0;U<$y)JyzBkF_JOrnKd=A&Tho4p)A@X(#tZwpfjZX6TdUHRo`FbPaGX4uQ^ZhWlEkDb(gY| zY3*2a=(x2o6!W|wK(oZrFFyPgDSL{{!!Ga<770lq%~^jOVI%4^ZwdKegT~F(MWU}w zm@lDp8iKvkoptrTEr#@hi+q5HR`bvqHfgDwVd@gz+6x1xY6_}#dyNt+hw~mgH_0^J zc6P&=-&F9+)DPn-XtEoB7n$kDIk4r)yFSeqsW5C30~+xILeMAR1%AL#%2YDr5d}w; z-XM(&*vtfWUVf-K`7~w}V?7$Ge0S66x)>74a)o}Lg?$nn;|IiL?$JVqfy>q8w}ll- zk;oDSTgS~$IX+!SVU%@i(q|~q{srqWZ5-@ekCEX8rBHw%>f}*RVnS7GTtR~86U8Zu0$i zr35(-06!O`B+~=Hb}(%R^LDUo$DVrA18_2tvHI}#!cAbg%i!Q3T#&(Wy>J6q-Y;I< z#pZp#=NophaR2Z5#9h3+i_Z-FUjJwp9~}HWpS+7d>|*Po-|Jg;vH0-s`P5xZ+r?)` ze%0^V^?F9&YX5yINeWy5fE)lo(F4FCW@ZTR?=ymF6u1y@RRRF-O8|o4Ulh1D)E7jK r!tDTgB>*&6+LlS9aBUz;1psfU0Q}&aZGyr;u@`V17N8ft{h#oE)gHWu delta 3150 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 Date: Fri, 31 Jan 2025 09:22:05 -0500 Subject: [PATCH 42/60] Updating the notebooks --- chapters/chap10.ipynb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index 5a0f8eb..5788be5 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -1797,10 +1797,16 @@ "cell_type": "code", "execution_count": 70, "id": "e04a5c73", - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [], "source": [ - "# Solution goes here" + "for word in word_list:\n", + " if len(word) >= 8 and is_interlocking(word):\n", + " first = word[0::2]\n", + " second = word[1::2]\n", + " print(word, first, second)" ] }, { From 2c7925f5160a63c8d04e4967b48cdf70a2e4467a Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 31 Jan 2025 09:22:05 -0500 Subject: [PATCH 43/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579430 -> 579467 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index a5bf99e15c98281578c1afb321e547e86a37f39f..34287ce1954d7fdba92e891792be28f43ced0e3a 100644 GIT binary patch delta 6437 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

GxcJ~ z6jGZqdME4?c(^cTaExWi+aq*Xd}w3*EiRo~l#1J5v1Vx-xKGX@W!luJUdx#G6_c)p zu9?4~Yn}^~lTwn}ly(z`(6n!8Rr|Cr%0dkvX@1k`HYe#Q$v)Z<45|wSry^-TJrjm9 zAUUReTxpu^0p=12+so^*zYz4{u8;X(r)hoteJ9oDx{nQizjp{yL)1UTo` zjy!EkjE_Xwj2wsOA;`rxW7etWi|1k}MN83QJv1rC7O2+QGYCw2Y}^L88K|63k6&*l zM2T@?HlGwe8YS#U^SlE6#86RY;muq)c_T70%D8~*U|&Y;E{PrMQW=%0jFNO#YvPfl zb&6FV%g5lJ-5({vK{f*qZJO|RXGq4Wyy&E2PWn+1U8s`{f%tsVlDmDOgykL9rs!z^ zubQ02d>UFpO3Qhki4`1xc79WyK+zn_l5(lqrJpboKD0oAVnV@9EggT*7(`AQVx$JI zCwBWHe_ER=ZPu)aAAXKtR?^(U5?v6nP)qJ5B8wj4Vr(Ik2ov=2sG2=?vy84zV|El! zL5ZNscE4!Ngp6^K4bOXd6zrMYt>kdJdXuMwL&F`8mFiePvQy*t)@G0io35oHv+CwmwlH7O{-6_V~y%c?3O@w18SRML0vxI46R~+fI9F#a3LLD3{;#J=|Z%8z*vk*pEM5Y$v3wSxB z%iUPmPn94So^@uW61keev#Ag+Fq)>0>0p^ZKC;){Gri=6{ZIumOl2cive+g8$Fz*E{q86BZgxZ>%!$xeSQ zKoi z3QT@9BmBk7w)3oLbqTb+q|{fcEpx@=l2y`3aheTvzoW3-+K(f;=05Njh#X> zP{AD1FmFRD{6=ILO!cApj3)AR77wUAJYEVTr_=G6fS9y%(d@fE%{^qt9Vr1wM$Q(Bso^?%C?IUy=&b5XFLy7 z9n=FZ$?x>1>xB-)Kh{=`jygoqSICN$Ad-<~5}AlT-pyntsUg-bMZmQkTA%#h%>w>vB44*L`*#B(xI z!Zg+0a1_Vt=g&{Yg)G$^_o%D{sNMMZyz%k_BmG&sq0#QB)#%R~~DA6WlpA{j~{5XIj_P_M6a@ zapBO_Z{A1Y;e6kXS33}@Nrk2^AU6HOOX2*q-W12xkHr~a@fH^yIkZznEZox9pKb6P zdTA8O&XK^2Kk$=&tot0OD&!O_XGj@j5Zg)wCn{{ki#=PKqkYCwyqBe*Jx3JTkUD_ZTH&tMm)`U-D`%@wJkAcrr8aGC^&~+3?AX2J zPF!!j3;*LD0Gs$8*clt)cXL^ZjS$ZH zz#(<{?pV z5cCWo?ErcL2T?pg;UGv3A^i`)9Qq4f|AyJWL3;SFEhT>g&d6UYJpP7-zd?5N_m;mK z;7_9VG=qu$7`Y6&?T}dKmzC0wBIG%K-r3{iqAbE`owbL1a+nF%Z^&wme+i zdkjQ|AUpH#Y|ac29T^#b_~#d~e7^uu5*q;;fQ>-+$K;cL4s35#(GFt<0N85&J`g1F zu!9Wxb{vHHKPOg<-v{o#{&yOipTpY8+rd;z^Y^h-|0J(g^Yyge*Wt;{e<%AxxhFu( z{}cIU;yyC9?Eggy{(mAfR7oa$`2m2ypMOWPK=1yJREFP20!R`6xi%T}{-=fZ`|eMm zHE<9qFdjMx2N?tHq3n|&10WYPViIJG=qHQ_Z52i&h9XXZq<{!e*(s1T3gRH>{w@3; DqzlwW From 33b5c9b7d49d74f695bc41bc122ec0080db91f16 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 11 Feb 2025 19:14:55 -0500 Subject: [PATCH 44/60] Updating the notebooks --- chapters/chap07.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapters/chap07.ipynb b/chapters/chap07.ipynb index 6370e83..9d9c634 100644 --- a/chapters/chap07.ipynb +++ b/chapters/chap07.ipynb @@ -815,7 +815,7 @@ "## Search\n", "\n", "Based on this simpler version of `has_e`, let's write a more general function called `uses_any` that takes a second parameter that is a string of letters.\n", - "If returns `True` if the word uses any of the letters and `False` otherwise." + "It returns `True` if the word uses any of the letters and `False` otherwise." ] }, { @@ -1076,7 +1076,7 @@ " A variable used to count something, usually initialized to zero and then incremented.\n", "\n", "**linear search:**\n", - "A computational pattern that searches through a sequence of elements and stops what it finds what it is looking for.\n", + "A computational pattern that searches through a sequence of elements and stops when it finds what it is looking for.\n", "\n", "**pass:**\n", "If a test runs and the result is as expected, the test passes.\n", From b8d5d02473f060ac627fae31857df5d9314ec551 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 11 Feb 2025 19:14:55 -0500 Subject: [PATCH 45/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579467 -> 579467 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 34287ce1954d7fdba92e891792be28f43ced0e3a..442b85f5407b0c732d7fb3dcf3bed074748ca57a 100644 GIT binary patch delta 5813 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 From 25c982444789eaca326ad613389b53c4dd39854b Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 12 Feb 2025 10:16:35 -0500 Subject: [PATCH 46/60] Updating the notebooks --- chapters/chap09.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/chap09.ipynb b/chapters/chap09.ipynb index 93f8fd6..0f3c3c8 100644 --- a/chapters/chap09.ipynb +++ b/chapters/chap09.ipynb @@ -1746,7 +1746,7 @@ "id": "8fc79a2f", "metadata": {}, "source": [ - "Of if you want them in a string, you can use the `join` method." + "Or if you want them in a string, you can use the `join` method." ] }, { From 17be2f6e46c6b8b428231702a1ce926ee887c2da Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 12 Feb 2025 10:16:35 -0500 Subject: [PATCH 47/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579467 -> 579467 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 442b85f5407b0c732d7fb3dcf3bed074748ca57a..e1e9469e04c356f21fae432b2180647bafbe193d 100644 GIT binary patch delta 998 zcmeBPuiU*}nK!_jnMH(wfq{cTD9C3buN`~v?ltK^yfH|IhZ!g|xsb;kCboG!PmeHI z&`tp%SfgO43>Mt$j1c_oT%`aOtVlr!ZcE9P0}HA(BLq{L4=I8LHJ8E#7pE`P0*hsx zhl_1qao$@SEcopgLeS**A$5@8^q)$MaMA7N%8Zu!d_dtSyH}fIx2ZEQ=xv>B*sL&p zUJxS>%s1ON1~FPIGX`ycTgo_v1*}>&=@$D(Z3c#}J<}U+GAc}8UxlRnP!%J$4%n^> z%aH8iTh5qj1Qss4i6p$`CgUy>uy7$C6T)Td`ItKN!NOK{NWv9%Oba!^!ZI01!ciGa z!7^as4J`=a=|G1|ZRcoZ+7I#isWk|>?Hp^F0?ol%VxAxg&w9c%)fDVU-i>{?O?em? z*2+Wt7%Rn$2$BLR<~E+miOs^>In|kuF@sr;w3xSWfmtg}nN3+htoDzV%s|Wn#H>Kf zw*8|edvW&kz;hg;?UhT}w^uIZ*bQ-;`B@GhW?*ufe((|p#3xJ7a=4<3@SH;zDaH`F zg(2d29$nW83=#ed=xWL^MD8MsaKO^cbkB<%4yevteG%O-p-bo@l^7xqFhtxhqw89S cAtHJOT}=&!$YTr delta 997 zcmeBPuiU*}nK!_jnMH(wfq{eJ&P?x#ymsvWpRY~_;*CKvJj_6$$%Q=TFtN?+d3uDw zf_4fB!5RfSWw790XN2Hy=PCuTU_}Z-a9c{Q99U4T86lX`d`J;2sJRp_xHx^O7FaCn zJX~z^iu2yuV8L&{5P~MZ52=F$r~g!9go|!BS7x--=K~5yZM|Lld7C-|gWlH3hRq7o z=LIqHzwxXL zunfsAzU7RmMquHxn@GZ2ZZhsN0Sg!MF(F*Go{yE+s?6;DbO6OCFTi|@T@0HQ%%8s@$61Ke%+GT8FauN5^n;f;ARbwImctcQgy$T(NHK=UEesLI z^XR%(V2JQvKvz?SA#xX4gaejjrh8uGa6onD>Wk=x30*=Lsl*U@fFa_38C};p3=z>Q X=xS;(L>^;^cwI%(wSC=Hj=PKi;Pd1! From 5bebacb0de08c7702a4852b91850667bf9a753f9 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 12 Feb 2025 20:44:12 -0500 Subject: [PATCH 48/60] Update --- jb/_config.yml | 15 ++++++++++++++- jb/_toc.yml | 50 +++++++++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/jb/_config.yml b/jb/_config.yml index 245575a..f0b261f 100644 --- a/jb/_config.yml +++ b/jb/_config.yml @@ -1,5 +1,5 @@ # Book settings -title: Think Python, 3rd edition +title: Think Python author: Allen B. Downey latex: @@ -14,6 +14,19 @@ repository: html: use_repository_button: true + extra_footer: | +

+ parse: # myst_extended_syntax: true # instead enable individual features below myst_enable_extensions: # https://myst-parser.readthedocs.io/en/latest/using/syntax-optional.html diff --git a/jb/_toc.yml b/jb/_toc.yml index e5e3fd4..6a5c362 100644 --- a/jb/_toc.yml +++ b/jb/_toc.yml @@ -1,23 +1,31 @@ format: jb-book root: index -chapters: -- file: chap00 -- file: chap01 -- file: chap02 -- file: chap03 -- file: chap04 -- file: chap05 -- file: chap06 -- file: chap07 -- file: chap08 -- file: chap09 -- file: chap10 -- file: chap11 -- file: chap12 -- file: chap13 -- file: chap14 -- file: chap15 -- file: chap16 -- file: chap17 -- file: chap18 -- file: chap19 +parts: +- caption: Front Matter + chapters: + - file: chap00 +- caption: Chapters + numbered: True + chapters: + - file: chap01 + - file: chap02 + - file: chap03 + - file: chap04 + - file: chap05 + - file: chap06 + - file: chap07 + - file: chap08 + - file: chap09 + - file: chap10 + - file: chap11 + - file: chap12 + - file: chap13 + - file: chap14 + - file: chap15 + - file: chap16 + - file: chap17 + - file: chap18 + - file: chap19 +- caption: End Matter + chapters: + - file: blank From d56f0f50c8bd6e8b5b81b4de99fe9433b90c91d7 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 12 Feb 2025 20:44:33 -0500 Subject: [PATCH 49/60] Updating the notebooks --- chapters/chap09.ipynb | 2 +- chapters/chap10.ipynb | 42 +++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/chapters/chap09.ipynb b/chapters/chap09.ipynb index 0f3c3c8..755c656 100644 --- a/chapters/chap09.ipynb +++ b/chapters/chap09.ipynb @@ -895,7 +895,7 @@ "id": "f90bd9ea", "metadata": {}, "source": [ - "The result it a list.\n", + "The result is a list.\n", "To convert the list to a string, we can use `join`." ] }, diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index 5788be5..5c12688 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -477,7 +477,7 @@ "metadata": {}, "source": [ "The following function loops through the words in the list.\n", - "For each one, it reverses the letters and then checks whether the reversed word in the word list." + "For each one, it reverses the letters and then checks whether the reversed word is in the word list." ] }, { @@ -505,6 +505,17 @@ "If it doesn't find what it's looking for -- which happens most of the time -- it has to search all the way to the end." ] }, + { + "cell_type": "markdown", + "id": "fac41347", + "metadata": { + "tags": [] + }, + "source": [ + "To measure how long a function takes, we can use `%time` which is one of Jupyter's \"built-in magic commands\".\n", + "These commands are not part of the Python language, so they might not work in other development environments." + ] + }, { "cell_type": "code", "execution_count": 58, @@ -590,6 +601,15 @@ "This function takes less than one hundredth of a second, so it's about 10,000 times faster than the previous version." ] }, + { + "cell_type": "markdown", + "id": "4cd91c99", + "metadata": {}, + "source": [ + "In general, the time it takes to find an element in a list is proportional to the length of the list.\n", + "The time it takes to find a key in a dictionary is almost constant -- regardless of the number of items." + ] + }, { "cell_type": "code", "execution_count": 62, @@ -602,15 +622,6 @@ "%time much_faster()" ] }, - { - "cell_type": "markdown", - "id": "4cd91c99", - "metadata": {}, - "source": [ - "In general, the time it takes to find an element in a list is proportional to the length of the list.\n", - "The time it takes to find a key in a dictionary is almost constant -- regardless of the number of items." - ] - }, { "cell_type": "markdown", "id": "b3bfa8a5", @@ -1201,17 +1212,6 @@ "In the notebook for this chapter, you'll see where these measurements come from." ] }, - { - "cell_type": "markdown", - "id": "c6f39f84", - "metadata": { - "tags": [] - }, - "source": [ - "To measure how long a function takes, we can use `%time` which is one of Jupyter's \"built-in magic commands\".\n", - "These commands are not part of the Python language, so they might not work in other development environments." - ] - }, { "cell_type": "code", "execution_count": 50, From dfba6768557da4ed66e015302a608876988e2432 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 12 Feb 2025 20:44:33 -0500 Subject: [PATCH 50/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579467 -> 579465 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index e1e9469e04c356f21fae432b2180647bafbe193d..bf4c23cb14ef7cdc438b26e7632dc862a3f5d329 100644 GIT binary patch delta 18276 zcmYJ(Q*bWO(gx_*$&PK?wr$(CoqVyK?AW$#+qP|cCv(o!%ztjWYCU)Bs;l4b=sJ?f zIubZV8Bj1(ARr(ppoEe{I0482`5KEr`I-i0TsV-#l4M6XPRRc}|4U7Ea4{(VH9o@s znJ*zf$$za|?d9`-#`-l#@gGZjCkFmMY~vsS=3+odERoeVI4W~(rT_w>Z%JkfCQQp!28R3p zf6>;U3><(2SbkHO=0-}L4AvkDdELrXR~JJBmD&nYq^0+zfrFq5S&;PFQ;_r}kL@_Z z-tC?vqY7G_!s;HI{nkpA;4=);(6#V>ruki$wytJV$W<3CmwqnL>H9m>;MyL#=GVi7xTl8t?I+$=^H1}B zzg8v*@MNE%Xx5tYuv7cDv})Q_=o3>$b?oEhgskH!1psx7^N=cnd({r%;Qcb4qMX&GE@r?S*vMc!Iljc%{E zJ_h#!0T1!t7)KPkN-6hf8bR$$M%5^OIytKY;6SX^QE0rIeuz(WIF|~q%{(_)?C2Im zKn_Cy?YsCl7$bJW3v_zOB*{N4;QY@?VuVV75_Y)ouw;G|^jZF6JWa@}}maMRQ76Y#m z0KN4dcO$*Urv~zdZeBwaeh&R

Jg@y_ZmSTjYh1S1pK-SE`JZ(-|Q-|2JsUf%+oe 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 Qo$hj-!;wwxEC(>E00tJofdBvi delta 18356 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 From af6435b8651b147a1fe3d11cb7e7ca2a72f2e0ef Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sat, 15 Feb 2025 20:03:06 -0500 Subject: [PATCH 51/60] Updating the notebooks --- chapters/chap13.ipynb | 9 +- chapters/chap14.ipynb | 12 +-- chapters/chap15.ipynb | 4 +- chapters/chap16.ipynb | 202 +++++++++--------------------------------- chapters/chap17.ipynb | 4 +- chapters/chap18.ipynb | 5 +- 6 files changed, 57 insertions(+), 179 deletions(-) diff --git a/chapters/chap13.ipynb b/chapters/chap13.ipynb index b826989..a5b20d6 100644 --- a/chapters/chap13.ipynb +++ b/chapters/chap13.ipynb @@ -1587,9 +1587,7 @@ { "cell_type": "markdown", "id": "85844afb", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "Here's an outline of the function to get you started." ] @@ -1601,7 +1599,10 @@ "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def replace_all(old, new, source_path, dest_path):\n", + " # read the contents of the source file\n", + " # replace the old string with the new\n", + " # write the result into the destination file" ] }, { diff --git a/chapters/chap14.ipynb b/chapters/chap14.ipynb index b71f706..2236a58 100644 --- a/chapters/chap14.ipynb +++ b/chapters/chap14.ipynb @@ -359,7 +359,7 @@ "metadata": {}, "source": [ "It might be surprising that the parameters have the same names as the attributes, but that's a common way to write a function like this.\n", - "Here's how we use `make_time` to create a `Time` object.`" + "Here's how we use `make_time` to create a `Time` object." ] }, { @@ -981,7 +981,7 @@ "metadata": {}, "source": [ "The result is the number of seconds since the beginning of the day.\n", - "For example, `01:01:01` is `1` hour, `1` minute and `1` second from the beginning of the day, with is the sum of `3600` seconds, `60` seconds, and `1` second." + "For example, `01:01:01` is `1` hour, `1` minute and `1` second from the beginning of the day, which is the sum of `3600` seconds, `60` seconds, and `1` second." ] }, { @@ -1307,14 +1307,6 @@ "Also, in this chapter we saw one example of a format specifier. For more information, ask \"What format specifiers can be used in a Python f-string?\"" ] }, - { - "cell_type": "markdown", - "id": "c85eab62", - "metadata": {}, - "source": [ - "## Exercises\n" - ] - }, { "cell_type": "markdown", "id": "bcdab7d6", diff --git a/chapters/chap15.ipynb b/chapters/chap15.ipynb index 91d1271..39bebc0 100644 --- a/chapters/chap15.ipynb +++ b/chapters/chap15.ipynb @@ -983,9 +983,9 @@ "\n", "2. Write an `__init__` method that takes `year`, `month`, and `day` as parameters and assigns the parameters to attributes. Create an object that represents June 22, 1933.\n", "\n", - "2. Write `__str__` method that uses an f-string to format the attributes and returns the result. If you test it with the `Date` you created, the result should be `1933-06-22`.\n", + "3. Write `__str__` method that uses an f-string to format the attributes and returns the result. If you test it with the `Date` you created, the result should be `1933-06-22`.\n", "\n", - "3. Write a method called `is_after` that takes two `Date` objects and returns `True` if the first comes after the second. Create a second object that represents September 17, 1933, and check whether it comes after the first object.\n", + "4. Write a method called `is_after` that takes two `Date` objects and returns `True` if the first comes after the second. Create a second object that represents September 17, 1933, and check whether it comes after the first object.\n", "\n", "Hint: You might find it useful write a method called `to_tuple` that returns a tuple that contains the attributes of a `Date` object in year-month-day order." ] diff --git a/chapters/chap16.ipynb b/chapters/chap16.ipynb index 01fd85b..57f3d41 100644 --- a/chapters/chap16.ipynb +++ b/chapters/chap16.ipynb @@ -1279,9 +1279,7 @@ { "cell_type": "markdown", "id": "2e488e0f", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following outline to get started." ] @@ -1290,9 +1288,7 @@ "cell_type": "code", "execution_count": 49, "id": "92c07380", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%add_method_to Line\n", @@ -1310,22 +1306,13 @@ }, "outputs": [], "source": [ - "%%add_method_to Line\n", - "\n", - "def __eq__(self, other):\n", - " if (self.p1 == other.p1) and (self.p2 == other.p2):\n", - " return True\n", - " if (self.p1 == other.p2) and (self.p2 == other.p1):\n", - " return True\n", - " return False" + "# Solution goes here" ] }, { "cell_type": "markdown", "id": "3a44e45a", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use these examples to test your code." ] @@ -1334,9 +1321,7 @@ "cell_type": "code", "execution_count": 51, "id": "aa086dd1", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "start1 = Point(0, 0)\n", @@ -1347,9 +1332,7 @@ { "cell_type": "markdown", "id": "e825f049", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "This example should be `True` because the `Line` objects refer to `Point` objects that are equivalent, in the same order." ] @@ -1358,9 +1341,7 @@ "cell_type": "code", "execution_count": 52, "id": "857cba26", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "line_a = Line(start1, end)\n", @@ -1382,9 +1363,7 @@ "cell_type": "code", "execution_count": 53, "id": "b45def0a", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "line_c = Line(end, start1)\n", @@ -1394,9 +1373,7 @@ { "cell_type": "markdown", "id": "8c9c787b", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "Equivalence should always be transitive -- that is, if `line_a` and `line_b` are equivalent, and `line_a` and `line_c` are equivalent, then `line_b` and `line_c` should also be equivalent." ] @@ -1405,9 +1382,7 @@ "cell_type": "code", "execution_count": 54, "id": "9784300c", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "line_b == line_c # should be True" @@ -1416,9 +1391,7 @@ { "cell_type": "markdown", "id": "d4f385fa", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "This example should be `False` because the `Line` objects refer to `Point` objects that are not equivalent." ] @@ -1427,9 +1400,7 @@ "cell_type": "code", "execution_count": 55, "id": "5435c8e4", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "line_d = Line(start1, start2)\n", @@ -1449,9 +1420,7 @@ { "cell_type": "markdown", "id": "b8c52d19", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following outline to get started." ] @@ -1460,9 +1429,7 @@ "cell_type": "code", "execution_count": 56, "id": "f377afbb", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%add_method_to Line\n", @@ -1480,20 +1447,13 @@ }, "outputs": [], "source": [ - "%%add_method_to Line\n", - "\n", - " def midpoint(self):\n", - " mid_x = (self.p1.x + self.p2.x) / 2\n", - " mid_y = (self.p1.y + self.p2.y) / 2\n", - " return Point(mid_x, mid_y)" + "# Solution goes here" ] }, { "cell_type": "markdown", "id": "4df69a9f", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following examples to test your code and draw the result." ] @@ -1502,9 +1462,7 @@ "cell_type": "code", "execution_count": 58, "id": "0d603aa3", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "start = Point(0, 0)\n", @@ -1518,9 +1476,7 @@ "cell_type": "code", "execution_count": 59, "id": "647d0982", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "mid1 = line1.midpoint()\n", @@ -1531,9 +1487,7 @@ "cell_type": "code", "execution_count": 60, "id": "e351bea3", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "mid2 = line2.midpoint()\n", @@ -1544,9 +1498,7 @@ "cell_type": "code", "execution_count": 61, "id": "5ad5a076", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "line3 = Line(mid1, mid2)" @@ -1556,9 +1508,7 @@ "cell_type": "code", "execution_count": 62, "id": "8effaff0", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "make_turtle()\n", @@ -1580,9 +1530,7 @@ { "cell_type": "markdown", "id": "c586a3ed", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following outline to get started." ] @@ -1591,9 +1539,7 @@ "cell_type": "code", "execution_count": 63, "id": "d94a6350", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%add_method_to Rectangle\n", @@ -1611,20 +1557,13 @@ }, "outputs": [], "source": [ - "%%add_method_to Rectangle\n", - "\n", - " def midpoint(self):\n", - " mid_x = self.corner.x + self.width / 2\n", - " mid_y = self.corner.y + self.height / 2\n", - " return Point(mid_x, mid_y)" + "# Solution goes here" ] }, { "cell_type": "markdown", "id": "d186c84b", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following example to test your code." ] @@ -1633,9 +1572,7 @@ "cell_type": "code", "execution_count": 65, "id": "4aec759c", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "corner = Point(30, 20)\n", @@ -1646,9 +1583,7 @@ "cell_type": "code", "execution_count": 66, "id": "7ec3339d", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "mid = rectangle.midpoint()\n", @@ -1659,9 +1594,7 @@ "cell_type": "code", "execution_count": 67, "id": "326dbf24", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "diagonal = Line(corner, mid)" @@ -1671,9 +1604,7 @@ "cell_type": "code", "execution_count": 68, "id": "4da710d4", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "make_turtle()\n", @@ -1701,9 +1632,7 @@ { "cell_type": "markdown", "id": "29e994c6", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use this outline to get started." ] @@ -1712,9 +1641,7 @@ "cell_type": "code", "execution_count": 69, "id": "30cc0726", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "%%add_method_to Rectangle\n", @@ -1732,24 +1659,13 @@ }, "outputs": [], "source": [ - "%%add_method_to Rectangle\n", - "\n", - " def make_cross(self):\n", - " midpoints = []\n", - "\n", - " for line in self.make_lines():\n", - " midpoints.append(line.midpoint())\n", - "\n", - " p1, p2, p3, p4 = midpoints\n", - " return Line(p1, p3), Line(p2, p4)" + "# Solution goes here" ] }, { "cell_type": "markdown", "id": "970fcbca", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following example to test your code." ] @@ -1758,9 +1674,7 @@ "cell_type": "code", "execution_count": 71, "id": "2afd718c", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "corner = Point(30, 20)\n", @@ -1771,9 +1685,7 @@ "cell_type": "code", "execution_count": 72, "id": "b7bdb467", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "lines = rectangle.make_cross()" @@ -1783,9 +1695,7 @@ "cell_type": "code", "execution_count": 73, "id": "9d09b2c3", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "make_turtle()\n", @@ -1809,9 +1719,7 @@ { "cell_type": "markdown", "id": "cb1b24a3", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following function, which is a version of the `circle` function we wrote in Chapter 4." ] @@ -1820,9 +1728,7 @@ "cell_type": "code", "execution_count": 74, "id": "b3d2328f", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "from jupyturtle import make_turtle, forward, left, right\n", @@ -1852,9 +1758,7 @@ { "cell_type": "markdown", "id": "b4325143", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "You can use the following example to test your code.\n", "We'll start with a square `Rectangle` with width and height `100`." @@ -1864,9 +1768,7 @@ "cell_type": "code", "execution_count": 76, "id": "49074ed5", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "corner = Point(20, 20)\n", @@ -1876,9 +1778,7 @@ { "cell_type": "markdown", "id": "2cdecfa9", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "The following code should create a `Circle` that fits inside the square." ] @@ -1887,9 +1787,7 @@ "cell_type": "code", "execution_count": 77, "id": "d65a9163", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "center = rectangle.midpoint()\n", @@ -1902,9 +1800,7 @@ { "cell_type": "markdown", "id": "37e94d98", - "metadata": { - "tags": [] - }, + "metadata": {}, "source": [ "If everything worked correctly, the following code should draw the circle inside the square (touching on all four sides)." ] @@ -1913,9 +1809,7 @@ "cell_type": "code", "execution_count": 78, "id": "e3b23b4d", - "metadata": { - "tags": [] - }, + "metadata": {}, "outputs": [], "source": [ "make_turtle(delay=0.01)\n", @@ -1924,14 +1818,6 @@ "circle.draw()" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "48abaaae", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "a7f4edf8", diff --git a/chapters/chap17.ipynb b/chapters/chap17.ipynb index 7dadbc2..c26b8b7 100644 --- a/chapters/chap17.ipynb +++ b/chapters/chap17.ipynb @@ -1740,7 +1740,7 @@ "* `get_rank_counts` does the same thing with the ranks of the cards, returning a dictionary that maps from each rank code to the number of times it appears.\n", "\n", "All of the exercises that follow can be done using only the Python features we have learned so far, but some of them are more difficult than most of the previous exercises.\n", - "I encourage you to ask an AI for help.\n", + "I encourage you to ask a virtual assistant for help.\n", "\n", "For problems like this, it often works well to ask for general advice about strategies and algorithms.\n", "Then you can either write the code yourself or ask for code.\n", @@ -1934,7 +1934,7 @@ "Write a method called `has_straight` that checks whether a hand contains a straight, which is a set of five cards with consecutive ranks.\n", "For example, if a hand contains ranks `5`, `6`, `7`, `8`, and `9`, it contains a straight.\n", "\n", - "An Ace can come before a two or after a King, so `Ace`, `2`, `3`, `4`, `5` is a straight and so it `10`, `Jack`, `Queen`, `King`, `Ace`.\n", + "An Ace can come before a two or after a King, so `Ace`, `2`, `3`, `4`, `5` is a straight and so is `10`, `Jack`, `Queen`, `King`, `Ace`.\n", "But a straight cannot \"wrap around\", so `King`, `Ace`, `2`, `3`, `4` is not a straight." ] }, diff --git a/chapters/chap18.ipynb b/chapters/chap18.ipynb index 1955731..41d5fc1 100644 --- a/chapters/chap18.ipynb +++ b/chapters/chap18.ipynb @@ -2013,7 +2013,6 @@ "### Ask a virtual assistant\n", "\n", "There are a few topics in this chapter you might want to learn about.\n", - "Here are some question to ask an AI.\n", "\n", "* \"What are the methods and operators of Python's set class?\"\n", "\n", @@ -2031,7 +2030,7 @@ "\n", "* \"What are the pros and cons of `doctest` and `unittest`?\"\n", "\n", - "For the following exercises, consider asking an AI for help, but as always, remember to test the results." + "For the following exercises, consider asking a virtual assistant for help, but as always, remember to test the results." ] }, { @@ -2064,7 +2063,7 @@ "metadata": {}, "source": [ "Write a version of this function that uses `set` operations instead of a `for` loop.\n", - "Hint: ask an AI \"How do I compute the intersection of Python sets?\"" + "Hint: ask a VA, \"How do I compute the intersection of Python sets?\"" ] }, { From 34d7c6405ae89cdc756629d0ca2f28f4bbd24b6d Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sat, 15 Feb 2025 20:03:07 -0500 Subject: [PATCH 52/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579465 -> 579250 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index bf4c23cb14ef7cdc438b26e7632dc862a3f5d329..e5eed7a470f863b4963935d7a87c7b9d800bf2a0 100644 GIT binary patch delta 28931 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⪼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 T*eDi)#Qr>ClqLXwuK9leTVo|? delta 29170 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 B?AibT From f3620aaf4679114c32d533ec2736576f4cfd34cd Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sun, 16 Feb 2025 09:28:02 -0500 Subject: [PATCH 53/60] Updating the notebooks --- chapters/chap13.ipynb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/chapters/chap13.ipynb b/chapters/chap13.ipynb index a5b20d6..ba90420 100644 --- a/chapters/chap13.ipynb +++ b/chapters/chap13.ipynb @@ -1601,8 +1601,12 @@ "source": [ "def replace_all(old, new, source_path, dest_path):\n", " # read the contents of the source file\n", + " reader = open(source_path)\n", + "\n", " # replace the old string with the new\n", - " # write the result into the destination file" + " \n", + " # write the result into the destination file\n", + " " ] }, { From c578daea3421ad66726a7f7e9973a19e66c98fde Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Sun, 16 Feb 2025 09:28:02 -0500 Subject: [PATCH 54/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579250 -> 579259 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index e5eed7a470f863b4963935d7a87c7b9d800bf2a0..fb26e2f9efb194b8c3f3d500d3d4dec2b0a1fb20 100644 GIT binary patch delta 7310 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 From 2e20e9fe7076eabe66a4451564de5e256b3fe076 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 4 Jun 2025 17:34:16 -0400 Subject: [PATCH 55/60] Updating the notebooks --- chapters/chap12.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapters/chap12.ipynb b/chapters/chap12.ipynb index f3f7b19..cb9b780 100644 --- a/chapters/chap12.ipynb +++ b/chapters/chap12.ipynb @@ -1827,7 +1827,7 @@ "metadata": {}, "source": [ "Dictionaries provide a method called `setdefault` that we can use to do the same thing more concisely.\n", - "Ask a virtual assistant how it works, or copy `add_word` into a virtual assistant and ask \"Can you rewrite this using `setdefault`?\"\n", + "Ask a virtual assistant how it works, or copy `add_bigram` into a virtual assistant and ask \"Can you rewrite this using `setdefault`?\"\n", "\n", "In this chapter we implemented Markov chain text analysis and generation.\n", "If you are curious, you can ask a virtual assistant for more information on the topic.\n", From c4863203e08ffdb16d54a83e3600c8b19506a583 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 4 Jun 2025 17:34:17 -0400 Subject: [PATCH 56/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579259 -> 579256 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index fb26e2f9efb194b8c3f3d500d3d4dec2b0a1fb20..88767d9bee4146cefdf1edc2d947d90e8a46ed73 100644 GIT binary patch delta 3253 zcmZ{mc{G%L8^`Z)TgEP;WG(BUu_Y$E-eNMA1|?!1;%SgI9%0c=!N*2;MwHu#@ql!e;?JY~3s#izToHn(fix41kk*%hXv1M9`s45gX^4in zG0_^gbCM91k7lCo(an1yinz-}@pm^75cTX~q6Iz2lp(rIW1?DX%?b=kTHOcR!ZkWF zFdbDsI(NWL+z+f&003lFih8s(DH{vp`E@VSj>{~fH7~HRN(HDkU@glyo zq~cH*@2}dL=1>@y3Ut)Vd(21i-iNtqK=P&AduOr^0Km*7B+njVmRAhHKI|uadU5;K zxMbs%QzrvPub#w}bDx)i7hcn|+Knk6_;T4Pd3N+@qLWSkIs3e1>-ZmL1u8F}d?POD zPRN_o~)%atG0a1S`bn`kMx* z&l8GLZAZqx+GShnwmT+2!OjjQ#vu+}JR33FhQ5@8dFZd+6)|lpMMFI+@wBF7D5#^q zx{&Wl6cP;-Fc#E=j-9C7%l@5>l!D&bnP?@=KMb=+?Muba+eA8f5lZa#G}}B7I0PtH z|Ix7HLfOAw@VG=zb&r&s*Pxw1Jl%3; zr|9IhmCmdNa(IT-((Jj@;xJWw!Jimg7S8Gh{oFHZ@pmFVN38UB9AU3O-imjwO5&(0 z;#+A5T%3D!H^h$ct)`gZoN97%G9^;u{a4yE_3lh#qU=z3{nBk=bV;p3gign31qO-w zR&6maqZInOZ^uoV2V42Kd5PylpVwtMx|QL$x5g#o)6@2s=h-OnLn<+^y&D7L`q8l} z8kyp1MZguS>Lp1S26?h>=1@f|FZCK9aA$hTWXQGb-BIU^++Br)ep{p=k}n9x1|U5z zO1%kCIUQ7o%@3UaU=*(8TaZufzN9N5&Ly4ta@Mjy)lRo|b{4Ofy;}RWHJ^4mAS3op z8Mm3E;a}q(*#6-AS+a{B>6h>5e0Hzc$U)RM#MtdSiWQX%ex>s$0kPbTY9|}SmUA74 zai9G@x`9g3v%Kd_aQu#$k`R1wtvj8nHjHyx$bK|h-eFS*@^8k*`)Vr0s%ORb=EEb9 zDF$6L3zg2E;nS^(eJ<+C8yxk3^5nykXJMWz6b9k<|lNbj!dpYN|d)koQ3@!J}D{7m?q517mJjRM>BtF!H+n0`HXqefL3S?jE)>kvAAS4U2^Mk9B8ulmO{F(c!@ zFBLw5Z4}#!w6X}4UHxjKGO4)FPWTfxR(D`!kLG$sN6F}F>;94{Q8RDN(!XX;O#bbc z#)c=KF#a;WN1ou{ApNQQAWkA(cn|&z%03}cx$)b>m4*N^&SiIUESge;T#S;O3%S{I z zelWDa$CrvDW^FNwCjTZIy;a{K`O5I6eAOqgKhuHjh-$P21(PHCLFo8oM@G8PoAW*s zuKSj9Gb?J)frf-9tS&9bB87-@Cs*ZFT`~x@$1jVF<+8em%Pj}<-_W1$d;BmoNwqJm zRPJ~pZb7ofieRo<-+q!BY9)+)uSRAyY>I|Ot1d*9`de?39?liGmx=EVVLzZmT5Ma9 zidvYl`jdP=U@cLqxl>@lNa|v7w-L@I_x=IvCX-#k67?g;Jk1x|aqEs%QBCZgn6%Q! z5X`}GiP&2T!G{svvfMbim_8r*>x&mBHA?;W{ivk{)e#6)ozBz_FVqt+b4{8P5YwxN z$&2;2+u!d7nr^}@MbiAgqa#nL>{YeQS`#J}zKPai<=5m})_H^&2n*ei>nA2=KRx3W zP9#__^x=|AcY4ohf8I+qA_zX{u;EOwUlEAYmd$^T_|zM%ynMYA_gus~iZfW1|Hx;7 z^^l;Nw>agwG_L$Q-X~X`H)(V2F;v_=?1@fa@2UK20n!IKt`@KGr|X9_u{xizu&Wj5 zvb{Sg$-8iLaKR#52;&fWNf0^NBed4DVl`D5^*;CA`oO}5*grN2k}n?%(-eNd$I|k1 z3KQQgoB1FBpt>9yjir5XE^bZ${NL75^U#1L4x0HSJv_5R7@oye92%}BB{AafpKsCf~*jKrvobg zs*e*yf%IUd2OB-uYXngoR$fq@TOP-jZ(MpFM@@PjyzA$(bG8ePVP!lXX>Si)47we) z3x4D`q}RO--Pw+~UT&-M-;M^iBg39;!h72h@2hQ9f!oo@c4X4aEaYYEa=#WVQbjLZ z_qW>$^ufhgaC{^+3S69o?t}Ae<)sqgN}SMC4nYHcMD z=cNSzuFJo>5=p9*ZLXmddMjW>L6SQCgOnr+a&j>LDAZK%=_%MaX`KS!$I9sApZ&vV zZ(}Mw(?oKj!Xz!vY}<7Isz5bx`w>WB9Y^gWLZ_3(op7qUrv4VPlK>w?n-{{eO4 BrN#gN delta 3220 zcmZvedpwkB8-U-LR}97|5(Xj65F)3LQ>>_wtV5(E5))R45E-W$4VoCdN<}%1Q$ve! ziiX-2gUBIKh*Gk|MlH$CjBop9vwz(GT+jVn_jCIFp1ZbOp`lzs$PNecYy|)S0mS0$ zQiV(q3yYOL?5K2*LV_$t2}17q4u7pcCW&&Wi5wTbC}*s|p${y$=vRvfISvi?;-Yjf z|Lq)#iRYrH;~DZCs#3s3@daxt9O~Q6MT@%+s&eSkG8ffdVPM%5`fCU5|Cp|?0Mpk% zvAC=IL{Uf;765itQ+CJ8LAUK;$nX1tP?zA6^bUJi6_%45JRcc3uL=MujjUW*Xmbxj zK#(5*|2Z2v;{r@TjZ>|wkh_{t5zI@AV-WVfx-C}+0Nze=47Z11Lf@;=e;tBNsT1ad zV;WtlnYF~To?RKzixd6MGY>})@STdyqL=Mw#G*XJPZ@@#?ilRTlFFn`i0&}8S5DH_ zl*#*gFTAb$cgwQ$(frd20;gdw?j3y_KJ4q}ow9$QK;2cNFPLaK^`6dy69n0)qNSy6 zExEB(3XtR8!v->AG{Pdu&KCBO5k5%3^{?_`P~9@ppU86nb_T1fS1EBpMmO5_dFrSI zadz4RGP)+}(>Cx~wrMR!YNTn+{pPV!!<(pI>)yphueGENyfWJkdfgD=6G;7I>x~@o zHT%ay0j`0j?$fWYj>XhG6^hw*<6EI^5yLIb;$`-$l&Xvc^62cjpl%cYV2`XAf`e#` zWhaeCt=3Sbt|zKI`IW04o7@O%roLv2%qNY*F7v5jHj**ahMixKwh z(z}Y=$l)fJ?8@Q8Ax5~uyiQGklBki^aaTA>Ww()y6~Sgs_um;SSf6?>8lkP2NBJY$!^agqw2S9lF=7>_~Ly zs6*Udje^6MSM=MT1f_m4$|!ny4~4FGHN}$ES{c>`1AaSn>I~i9MJRlVG?)fEcu-TavYx%Il3C6mCB$d zVeUGgp4j)Mr1hePTfJd`id(-dVO8DFx!|eTU->yUUm8t+p}rA4_|+WXBO zkhR_US&f22Jvbz~l1RFp5yF!n?P{QA97)`gm#sT9g;F1d!t9D`>kN*_M#6MG^#tz( zWorzLhos3TF)@5hm505Q@xboG=p|Ulf_5cl!jKoyO%THu4p=eYT>tS^m{9^U6sZ ztf$US^PG-+VeRF;<(cT5h~1n}*GVqtMP6GjV2hIH;GQAO z`Zv6GoAJ5Rzr>iTW?EJP2_GhAwhHbcSv!rdskYuKjZC@zZK&_a?8@tH0}IIfn(NLD zA*#W4`Wqn3CVJdR3QxwTWr@x&28+-@6@s z@SFJi2ZL$Kk7;29@^Dds`0>e7-v>p@)IbT_xSUZ&3Lckwa#q+4QGuCUpFcP>q{(*aF&zmwE}di9G^bwT(f?OVAk!yVMc zbU2$DVWj3!7M+xaJL!69muMm__&t>0!_9)P59)9EcAT(k__EpcG;MmaT6(OyKyq~# z(1PENv2U#@$vksEHg65U3U<^kD>kcTUK1hm?Ic^vdF|%DG|qs^rd$Uu@&n#8mE%<7zqs! zaYtBUbfaheu{p6&+$P7Dykk~0!o^UpmT3(K71cNNnqWt3gU#9TRs$=1OqoV^IIXg< z$6_QaJXO@H$PYgx7owt*C)97^9gu@ zE{D5If?VslEeYBp!4VrHXif>#L;y2cJ_ijdedt&Wco*bwrV6O`o!9IHlLa`KtizrD zLQ5-d$=bGv0Jq7O%qhngV_7SZiRXgQgBZcl-i4s-mJarOkhNSr<3ER^{$L_PO@xA z^5~LvfC>QAR04oJAi-*F0RYB|s#tI6S}#K72kS7~s)1j(>i(Bij%_tBPmmtR0Dx=t zkJiTtoVifsGX(Mnckwfp8&&dqM_W2KQN)-?zExHa Date: Wed, 4 Jun 2025 17:43:41 -0400 Subject: [PATCH 57/60] Updating the notebooks --- chapters/chap10.ipynb | 2 +- chapters/chap12.ipynb | 4 ++-- chapters/chap14.ipynb | 2 +- chapters/chap15.ipynb | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index 5c12688..e1de3af 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -1559,7 +1559,7 @@ "source": [ "### Exercise\n", "\n", - "Write function called `find_repeats` that takes a dictionary that maps from each key to a counter, like the result from `value_counts`.\n", + "Write a function called `find_repeats` that takes a dictionary that maps from each key to a counter, like the result from `value_counts`.\n", "It should loop through the dictionary and return a list of keys that have counts greater than `1`.\n", "You can use the following outline to get started." ] diff --git a/chapters/chap12.ipynb b/chapters/chap12.ipynb index cb9b780..49c55ce 100644 --- a/chapters/chap12.ipynb +++ b/chapters/chap12.ipynb @@ -520,7 +520,7 @@ "\n", "* `key=second_element` means the items will be sorted according to the frequencies of the words.\n", "\n", - "* `reverse=True` means they items will be sorted in reverse order, with the most frequent words first." + "* `reverse=True` means the items will be sorted in reverse order, with the most frequent words first." ] }, { @@ -730,7 +730,7 @@ "id": "22becbab", "metadata": {}, "source": [ - "The we'll store the words as keys in a dictionary so we can use the `in` operator to check quickly whether a word is valid." + "Then we'll store the words as keys in a dictionary so we can use the `in` operator to check quickly whether a word is valid." ] }, { diff --git a/chapters/chap14.ipynb b/chapters/chap14.ipynb index 2236a58..f0f9998 100644 --- a/chapters/chap14.ipynb +++ b/chapters/chap14.ipynb @@ -907,7 +907,7 @@ " \n", " carry, time.second = divmod(time.second, 60)\n", " carry, time.minute = divmod(time.minute + carry, 60)\n", - " carry, time.hour = divmod(time.hour + carry, 60)" + " carry, time.hour = divmod(time.hour + carry, 24)" ] }, { diff --git a/chapters/chap15.ipynb b/chapters/chap15.ipynb index 39bebc0..52fb9c8 100644 --- a/chapters/chap15.ipynb +++ b/chapters/chap15.ipynb @@ -604,7 +604,7 @@ "id": "e01e9673", "metadata": {}, "source": [ - "## The __init__ method\n", + "## The init method\n", "\n", "The most special of the special methods is `__init__`, so-called because it initializes the attributes of a new object.\n", "An `__init__` method for the `Time` class might look like this:" From 38462ce925df86fb8015cc1e0c4873f5e237f9b2 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Wed, 4 Jun 2025 17:43:41 -0400 Subject: [PATCH 58/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579256 -> 579251 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 88767d9bee4146cefdf1edc2d947d90e8a46ed73..4be25fae6d89b5d67784f9163742d7ff4875de68 100644 GIT binary patch delta 20664 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 Date: Mon, 12 Jan 2026 16:32:12 -0500 Subject: [PATCH 59/60] Updating the notebooks --- chapters/chap00.ipynb | 2 +- chapters/chap10.ipynb | 2 +- chapters/chap12.ipynb | 170 +++++++++++++++++++++--------------------- chapters/chap15.ipynb | 22 +++--- chapters/chap16.ipynb | 2 +- chapters/chap18.ipynb | 2 +- 6 files changed, 100 insertions(+), 100 deletions(-) diff --git a/chapters/chap00.ipynb b/chapters/chap00.ipynb index b42d9c0..e7c283c 100644 --- a/chapters/chap00.ipynb +++ b/chapters/chap00.ipynb @@ -50,7 +50,7 @@ "\n", "Writing this book, I tried to be careful with the vocabulary.\n", "I define each term when it first appears.\n", - "And there is a glossary that the end of each chapter that reviews the terms that were introduced.\n", + "And there is a glossary at the end of each chapter that reviews the terms that were introduced.\n", "\n", "I also tried to be concise.\n", "The less mental effort it takes to read the book, the more capacity you will have for programming.\n", diff --git a/chapters/chap10.ipynb b/chapters/chap10.ipynb index e1de3af..742da86 100644 --- a/chapters/chap10.ipynb +++ b/chapters/chap10.ipynb @@ -1364,7 +1364,7 @@ "id": "170f1deb", "metadata": {}, "source": [ - "### Ask an assistant\n", + "### Ask a virtual assistant\n", "\n", "In this chapter, I said the keys in a dictionary have to be hashable and I gave a short explanation. If you would like more details, ask a virtual assistant, \"Why do keys in Python dictionaries have to be hashable?\"\n", "\n", diff --git a/chapters/chap12.ipynb b/chapters/chap12.ipynb index 49c55ce..f2d5d23 100644 --- a/chapters/chap12.ipynb +++ b/chapters/chap12.ipynb @@ -80,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "4cd1c980", "metadata": { "tags": [] @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "52ebfe94", "metadata": { "tags": [] @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "49cfc352", "metadata": { "tags": [] @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "44e53ce6", "metadata": {}, "outputs": [], @@ -152,7 +152,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "50d1fafa", "metadata": { "tags": [] @@ -173,7 +173,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "id": "16d24028", "metadata": {}, "outputs": [], @@ -201,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 8, "id": "1668e6bd", "metadata": {}, "outputs": [], @@ -241,7 +241,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "id": "ed5f0a43", "metadata": {}, "outputs": [], @@ -261,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "id": "a9df2aeb", "metadata": {}, "outputs": [], @@ -283,7 +283,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "id": "b138b123", "metadata": {}, "outputs": [], @@ -305,7 +305,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "id": "fe65df44", "metadata": {}, "outputs": [], @@ -324,7 +324,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "id": "b47a87cf", "metadata": {}, "outputs": [], @@ -347,7 +347,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "id": "348949be", "metadata": {}, "outputs": [], @@ -366,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "id": "06121901", "metadata": {}, "outputs": [], @@ -385,7 +385,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "id": "881ed9f8", "metadata": {}, "outputs": [], @@ -403,7 +403,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "id": "ab5d2fed", "metadata": {}, "outputs": [], @@ -421,7 +421,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 18, "id": "2fdfb936", "metadata": {}, "outputs": [], @@ -446,7 +446,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "id": "3104d191", "metadata": {}, "outputs": [], @@ -474,7 +474,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "id": "4fba7d1c", "metadata": {}, "outputs": [], @@ -502,7 +502,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 21, "id": "4be34c95", "metadata": {}, "outputs": [], @@ -525,7 +525,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 22, "id": "8efe7c4c", "metadata": {}, "outputs": [], @@ -543,7 +543,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "id": "79c17341", "metadata": {}, "outputs": [], @@ -574,7 +574,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "id": "838bcb4f", "metadata": {}, "outputs": [], @@ -593,7 +593,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "id": "90c45e7e", "metadata": {}, "outputs": [], @@ -617,7 +617,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "id": "e106be95", "metadata": {}, "outputs": [], @@ -635,7 +635,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 27, "id": "8101a510", "metadata": {}, "outputs": [], @@ -655,7 +655,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "id": "c046117b", "metadata": { "tags": [] @@ -697,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 29, "id": "edd8ff1c", "metadata": { "tags": [] @@ -717,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 30, "id": "67ef3e08", "metadata": {}, "outputs": [], @@ -735,7 +735,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "id": "471d58e9", "metadata": {}, "outputs": [], @@ -755,7 +755,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 32, "id": "4d4c3538", "metadata": {}, "outputs": [], @@ -778,7 +778,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 33, "id": "8b42e014", "metadata": {}, "outputs": [], @@ -796,7 +796,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 34, "id": "f48be152", "metadata": {}, "outputs": [], @@ -817,7 +817,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "id": "5716f967", "metadata": {}, "outputs": [], @@ -838,7 +838,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "id": "b37219f5", "metadata": {}, "outputs": [], @@ -880,7 +880,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 37, "id": "75b548a9", "metadata": {}, "outputs": [], @@ -890,7 +890,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 38, "id": "2bfa31ae", "metadata": { "tags": [] @@ -913,7 +913,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 39, "id": "6f5d5c1c", "metadata": {}, "outputs": [], @@ -932,7 +932,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 40, "id": "1445068b", "metadata": {}, "outputs": [], @@ -952,7 +952,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 41, "id": "4fc47ecd", "metadata": { "tags": [] @@ -974,7 +974,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 42, "id": "91ae9d4c", "metadata": {}, "outputs": [], @@ -993,7 +993,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 43, "id": "8bf595c1", "metadata": {}, "outputs": [], @@ -1016,7 +1016,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 44, "id": "22953b65", "metadata": {}, "outputs": [], @@ -1034,7 +1034,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 45, "id": "1c7cdf4d", "metadata": {}, "outputs": [], @@ -1052,7 +1052,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 46, "id": "a7a3aa42", "metadata": {}, "outputs": [], @@ -1071,7 +1071,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 47, "id": "c4286fb3", "metadata": {}, "outputs": [], @@ -1111,7 +1111,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 48, "id": "d8ee02f6", "metadata": {}, "outputs": [], @@ -1131,7 +1131,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 49, "id": "bfdb1de1", "metadata": {}, "outputs": [], @@ -1158,7 +1158,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 50, "id": "2e73df79", "metadata": {}, "outputs": [], @@ -1176,7 +1176,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 51, "id": "495ad429", "metadata": {}, "outputs": [], @@ -1206,7 +1206,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 52, "id": "c1224061", "metadata": {}, "outputs": [], @@ -1228,7 +1228,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 53, "id": "4296485a", "metadata": {}, "outputs": [], @@ -1247,7 +1247,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 54, "id": "e03fd803", "metadata": { "tags": [] @@ -1259,7 +1259,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 55, "id": "f6ee1840", "metadata": {}, "outputs": [], @@ -1282,7 +1282,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 56, "id": "d6c65d79", "metadata": {}, "outputs": [], @@ -1312,7 +1312,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 57, "id": "3171d592", "metadata": {}, "outputs": [], @@ -1335,7 +1335,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 58, "id": "3321e6a4", "metadata": {}, "outputs": [], @@ -1353,7 +1353,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 59, "id": "e4e55c71", "metadata": {}, "outputs": [], @@ -1372,7 +1372,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 60, "id": "f25dcb5e", "metadata": {}, "outputs": [], @@ -1391,7 +1391,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 61, "id": "990354a0", "metadata": {}, "outputs": [], @@ -1413,7 +1413,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 62, "id": "b9371452", "metadata": {}, "outputs": [], @@ -1441,7 +1441,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 63, "id": "8c3f45c2", "metadata": {}, "outputs": [], @@ -1464,7 +1464,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 64, "id": "641990a3", "metadata": {}, "outputs": [], @@ -1487,7 +1487,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 65, "id": "9322a49a", "metadata": {}, "outputs": [], @@ -1509,7 +1509,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 66, "id": "45a60c52", "metadata": {}, "outputs": [], @@ -1533,7 +1533,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 67, "id": "3e86102c", "metadata": { "tags": [] @@ -1553,7 +1553,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 68, "id": "e49d52f7", "metadata": {}, "outputs": [], @@ -1590,7 +1590,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 69, "id": "15108884", "metadata": {}, "outputs": [], @@ -1602,7 +1602,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 70, "id": "747a41be", "metadata": { "tags": [] @@ -1626,7 +1626,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 71, "id": "5a4682dc", "metadata": {}, "outputs": [], @@ -1647,7 +1647,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 72, "id": "36ee0f76", "metadata": {}, "outputs": [], @@ -1782,7 +1782,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 73, "id": "05752b6d", "metadata": { "tags": [] @@ -1807,7 +1807,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 74, "id": "a4365ac0", "metadata": {}, "outputs": [], @@ -1850,7 +1850,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 75, "id": "f38a61ff", "metadata": {}, "outputs": [], @@ -1860,7 +1860,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 76, "id": "d047e546", "metadata": {}, "outputs": [], @@ -1880,7 +1880,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 77, "id": "6b8932ee", "metadata": { "tags": [] @@ -1908,7 +1908,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 78, "id": "44c3f0d8", "metadata": { "tags": [] @@ -1932,7 +1932,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 79, "id": "3fcf85f4", "metadata": {}, "outputs": [], @@ -1950,7 +1950,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 80, "id": "d9e554e3", "metadata": {}, "outputs": [], @@ -1975,7 +1975,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 81, "id": "8c2ee21c", "metadata": { "tags": [] @@ -2003,7 +2003,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 82, "id": "b13384e3", "metadata": { "tags": [] @@ -2023,7 +2023,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 83, "id": "62c2177f", "metadata": {}, "outputs": [], @@ -2057,7 +2057,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 84, "id": "64e11f26", "metadata": { "tags": [] @@ -2081,7 +2081,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 85, "id": "fe2d93fa", "metadata": {}, "outputs": [], @@ -2109,7 +2109,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 86, "id": "22210a5c", "metadata": {}, "outputs": [], diff --git a/chapters/chap15.ipynb b/chapters/chap15.ipynb index 52fb9c8..f7dfa60 100644 --- a/chapters/chap15.ipynb +++ b/chapters/chap15.ipynb @@ -373,7 +373,7 @@ "id": "e6a18c76", "metadata": {}, "source": [ - "Now that we have `Time.from_seconds`, we can use it to write `add_time` as a method.\n", + "Now that we have `Time.int_to_time`, we can use it to write `add_time` as a method.\n", "Here's the function from the previous chapter." ] }, @@ -409,7 +409,7 @@ "\n", " def add_time(self, hours, minutes, seconds):\n", " duration = make_time(hours, minutes, seconds)\n", - " seconds = time_to_int(self) + time_to_int(duration)\n", + " seconds = Time.time_to_int(self) + Time.time_to_int(duration)\n", " return Time.int_to_time(seconds)" ] }, @@ -431,7 +431,7 @@ "outputs": [], "source": [ "end = start.add_time(1, 32, 0)\n", - "print_time(end)" + "end.print_time()" ] }, { @@ -836,7 +836,7 @@ "\n", " def is_after(self, other):\n", " assert self.is_valid(), 'self is not a valid Time'\n", - " assert other.is_valid(), 'self is not a valid Time'\n", + " assert other.is_valid(), 'other is not a valid Time'\n", " return self.time_to_int() > other.time_to_int()" ] }, @@ -924,7 +924,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "3115ea33", "metadata": { "tags": [] @@ -960,7 +960,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "133d7679", "metadata": {}, "outputs": [], @@ -992,7 +992,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "3c9f3777-4869-481e-9f4e-4223d6028913", "metadata": {}, "outputs": [], @@ -1012,7 +1012,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "fd4b2521-aa71-45da-97eb-ce62ce2714ad", "metadata": { "tags": [] @@ -1025,7 +1025,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "ee3f1294-cad1-406b-a574-045ad2b84294", "metadata": { "tags": [] @@ -1038,7 +1038,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "ac093f7b-83cf-4488-8842-5c71bcfa35ec", "metadata": { "tags": [] @@ -1050,7 +1050,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "7e7cb5e1-631f-4b1e-874f-eb16d4792625", "metadata": { "tags": [] diff --git a/chapters/chap16.ipynb b/chapters/chap16.ipynb index 57f3d41..eb84e1c 100644 --- a/chapters/chap16.ipynb +++ b/chapters/chap16.ipynb @@ -234,7 +234,7 @@ "id": "a7a635ee", "metadata": {}, "source": [ - "In the same way that the built in function `sort` modifies a list, and the `sorted` function creates a new list, now we have a `translate` method that modifies a `Point` and a `translated` method that creates a new one.\n", + "In the same way that the `sort` method modifies a list and the `sorted` function creates a new list, now we have a `translate` method that modifies a `Point` and a `translated` method that creates a new one.\n", "\n", "Here's an example:" ] diff --git a/chapters/chap18.ipynb b/chapters/chap18.ipynb index 41d5fc1..3027822 100644 --- a/chapters/chap18.ipynb +++ b/chapters/chap18.ipynb @@ -1661,7 +1661,7 @@ "id": "07be77f3", "metadata": {}, "source": [ - "In this example, the value of `kwargs` is printed, but otherwise is has no effect.\n", + "In this example, the value of `kwargs` is printed, but otherwise it has no effect.\n", "\n", "But the `**` operator can also be used in an argument list to unpack a dictionary.\n", "For example, here's a version of `mean` that packs any keyword arguments it gets and then unpacks them as keyword arguments for `sum`." From bca0892915f15937b2122046db3d5bb155a57188 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Mon, 12 Jan 2026 16:32:12 -0500 Subject: [PATCH 60/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579251 -> 579250 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 4be25fae6d89b5d67784f9163742d7ff4875de68..f5c786643b81d9a6019a6db62913690c0b0cc086 100644 GIT binary patch delta 40437 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 delta 40563 zcmY(qQ;;Ug5-r>|r)}Fdr)}GuwvDfCThq2}+qP}nefQZn{(H{!e`dVSn5d{dSm@Sd1 zh%hk=4(|V98fxK$!2rz{eqI?8d*GGX;!#BCzK!Q%6{=0vCJ!00?1N>NPr}y6CohDGMF8w_W{J22c$6;5XtFVQ zWr*Vm$XTtXUW|9`Y~K-G$;`qTFtHyZXrLyW??mUT?#Su}5c^Nbbt{BP+rqo(5!&v# z8uHvuDYt^P(725}jris@Xlv0H;ALpbYrWN|v$c>RW=CG2l?jR5&odoxU}m8=7BhYm zoBhZVp1(P=c>w#f!Fi{9F2$tdH^OdUt4OdxU4)lVp3CKx##(w4Isn3v!JJ;%YaGdg zxw}V2Uv|EC>iJjA?bG0>q}p`$?5DtA9`yr@m2;wU<+Q~RgXI<)MQzX;DQ>arxm5S; zVN%#cs3aypFw7}(CUszN5T>v(rBIwSIDQDG{jH}G7J&7>Qkx80F5yYS7G_|y-|_fG zs6pZS{TkevNKj6)YY>&laY~rV9YpGtpe4=)uEh0~Lb#-E;U+4w^^R#K$Fj+DuMW;s zmY~?i-N{)j1=rM6;AZgZW(C?l8SHNTpnsoJK%tE2(Yq>&$a{dt)cV*EI>h|ky*Y`b zPaLowvj9f9Xyf%7nC#L>^M|Oy664TEC8^FKZW=ZbXF_(mLfTs;3ZV?p8I6nN57F=} z7-4`)$`xzkSJ9!THwfa|7NP{Ks=WaIBh%qci0|d};;tBpj8-Wvt;Vp9E?wxC8UaU% zQp7x!=GPo5Aw5{tvR;T;CK}&7dDtz%sH)st3qV`ExyMBza8a;|6`OWAF>0p!?fntW zOWZ&RXeF7EQ5rb)6k&awnG=~s8W|_UWsg2uZ4dtuF%#b*>12JZsX*L`_XT<``q6+< z=mR%j30wcWldLVF*Q^y3`B6v~C68E6V>pR@j`dnvVj`%lxiogPIGQc|H3JEe8etMH zKVSt54Ttxl1et^HoX~APFf08FL1~Lg6`wu6j)Sg83e(wKzBRvC4YK92PF2{?VcqZ zwNp64CIP)A>9Du|w$mwUB8!>Q%->!)Nbk2rc{RPoTE0f?+@OUxiVjPV57*K(Gr;oj z1RGaaxESxG5~oBbQfocU3A&MAkk%5)b{HAa@WH(-?`5^Y=kYrRGFb~ypu)+ynS-B= zpY3b9BkoztF_(=1jeT2(q)cQQ)9eRj&4O2moI6EkpMZGRk$d1&A(<$2o4*~sm_bLQ zjJd4T`z9~jMJ^3eyx9uJ{$aAz0ubuigy`;MdGS;j200{2K_X{_$ z_#no3DZ5BHF_1~$Q9yGvKc8tFckhUf6mI$K4_RhVSwsl35xxQvp_!H6nj|zx(I9H} zt`+cMl_WTZnIFfx;J$~F%#0UEWmm~DpqgiClv7JAdl6+|OV*LhTrJr|I_2^zD-eNtjRXrq_sJG7#w>cC_*hal0fc}Tm0tU4-5g-d zS+|oq2RIoh8q@dDSuiR#ZT?(DZr5+86J<7Q7AJ4O6{F4D)@=h1w{u|zq1@qviN|g? z5bSWEg`<7485CY&agKLvGRms16@T|)sKVAP&t3I}RjG#r>kszN_E3?oGWrpm9EBy# z{_4*;KrgGCei%gE0CY=rZIJC3GVBt{fi&M7V=Eak;&o3m*%+P^!h~0urlHS~Vc-Ha z&cES;M4@&l|5&zm$Xq2i*4)`jPDT#0(mV5}4%~E=xg7UnL3kzW$9bO$ej%0DRuxg^ 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

rqCX*zxR=E-W{3N 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 Wm;o9fsioS^0434Y5y1P$^8WyuJy~r4

Iq(*s1$IV0gVl{WHIhYW-eC+9AD+e&$ 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 Ocuhk^Te(uvI^uuUYXVdN literal 0 HcmV?d00001 diff --git a/jupyturtle_pie.png b/jupyturtle_pie.png new file mode 100644 index 0000000000000000000000000000000000000000..472eb5cdc3023274ae985a1742b12a8550d3e9c6 GIT binary patch literal 13965 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 literal 0 HcmV?d00001 From 275074dd9a1a430c9c5db8a6b0048f55a3461b51 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 16:10:36 -0500 Subject: [PATCH 26/60] Updating the notebooks --- chapters/chap04.ipynb | 58 +++++++++---------------------------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/chapters/chap04.ipynb b/chapters/chap04.ipynb index d405a38..7117af6 100644 --- a/chapters/chap04.ipynb +++ b/chapters/chap04.ipynb @@ -1080,32 +1080,15 @@ }, { "cell_type": "markdown", - "id": "3a56643b", + "id": "991ab59d", "metadata": {}, "source": [ "### Exercise\n", "\n", - "Write an appropriately general set of functions that can draw shapes like this." - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "be86eb71", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "from IPython.display import SVG, display\n", - "display(SVG(url='https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_pie.svg'))" - ] - }, - { - "cell_type": "markdown", - "id": "feae252c", - "metadata": {}, - "source": [ + "Write an appropriately general set of functions that can draw shapes like this.\n", + "\n", + "![](https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_pie.png)\n", + "\n", "Hint: Write a function called `triangle` that draws one triangular segment, and then a function called `draw_pie` that uses `triangle`." ] }, @@ -1142,7 +1125,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f8cbf549", + "id": "c519ca39", "metadata": { "tags": [] }, @@ -1173,32 +1156,15 @@ }, { "cell_type": "markdown", - "id": "e35f613a", + "id": "9c78b76f", "metadata": {}, "source": [ "### Exercise\n", "\n", - "Write an appropriately general set of functions that can draw flowers like this." - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "id": "c8095531", - "metadata": { - "tags": [] - }, - "outputs": [], - "source": [ - "from IPython.display import SVG, display\n", - "display(SVG(url='https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_flower.svg'))" - ] - }, - { - "cell_type": "markdown", - "id": "7c665dd1", - "metadata": {}, - "source": [ + "Write an appropriately general set of functions that can draw flowers like this.\n", + "\n", + "![](https://github.com/AllenDowney/ThinkPython/raw/v3/jupyturtle_flower.png)\n", + "\n", "Hint: Use `arc` to write a function called `petal` that draws one flower petal." ] }, @@ -1240,7 +1206,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8e92df6f", + "id": "04193da5", "metadata": { "tags": [] }, From ae3b96c62a776b950884ea93c6535f287f57eef0 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 16:10:36 -0500 Subject: [PATCH 27/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579218 -> 579145 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index 707546de949b985bfc43ffd69ec20a427692a090..f044fc3d83dcd464d7f7547e879d9e73cbda03f0 100644 GIT binary patch delta 4141 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 From ee7a0ab9abccac7f8100dcfa5ce50b25e1d15188 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Fri, 8 Nov 2024 16:55:37 -0500 Subject: [PATCH 28/60] Updating the support files --- thinkpython.py | 125 ++++++++++++++++++++++++------------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/thinkpython.py b/thinkpython.py index 02ff181..3f08885 100644 --- a/thinkpython.py +++ b/thinkpython.py @@ -2,21 +2,6 @@ import io import re -from IPython.core.magic import register_cell_magic -from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring - - -def traceback(mode): - """Set the traceback mode. - - mode: string - """ - with contextlib.redirect_stdout(io.StringIO()): - get_ipython().run_cell(f'%xmode {mode}') - - -traceback('Minimal') - def extract_function_name(text): """Find a function definition and return its name. @@ -34,61 +19,75 @@ def extract_function_name(text): return None -@register_cell_magic -def add_method_to(args, cell): +# the functions that define cell magic commands are only defined +# if we're running in Jupyter. - # get the name of the function defined in this cell - func_name = extract_function_name(cell) - if func_name is None: - return f"This cell doesn't define any new functions." +try: + from IPython.core.magic import register_cell_magic + from IPython.core.magic_arguments import argument, magic_arguments, parse_argstring - # get the class we're adding it to - namespace = get_ipython().user_ns - class_name = args - cls = namespace.get(class_name, None) - if cls is None: - return f"Class '{class_name}' not found." + @register_cell_magic + def add_method_to(args, cell): - # save the old version of the function if it was already defined - old_func = namespace.get(func_name, None) - if old_func is not None: - del namespace[func_name] + # get the name of the function defined in this cell + func_name = extract_function_name(cell) + if func_name is None: + return f"This cell doesn't define any new functions." - # Execute the cell to define the function - get_ipython().run_cell(cell) + # get the class we're adding it to + namespace = get_ipython().user_ns + class_name = args + cls = namespace.get(class_name, None) + if cls is None: + return f"Class '{class_name}' not found." - # get the newly defined function - new_func = namespace.get(func_name, None) - if new_func is None: - return f"This cell didn't define {func_name}." + # save the old version of the function if it was already defined + old_func = namespace.get(func_name, None) + if old_func is not None: + del namespace[func_name] - # add the function to the class and remove it from the namespace - setattr(cls, func_name, new_func) - del namespace[func_name] - - # restore the old function to the namespace - if old_func is not None: - namespace[func_name] = old_func - - -@register_cell_magic -def expect_error(line, cell): - try: + # Execute the cell to define the function get_ipython().run_cell(cell) - except Exception as e: - get_ipython().run_cell('%tb') - + # get the newly defined function + new_func = namespace.get(func_name, None) + if new_func is None: + return f"This cell didn't define {func_name}." -@magic_arguments() -@argument('exception', help='Type of exception to catch') -@register_cell_magic -def expect(line, cell): - args = parse_argstring(expect, line) - exception = eval(args.exception) - try: - get_ipython().run_cell(cell) - except exception as e: - get_ipython().run_cell("%tb") - + # add the function to the class and remove it from the namespace + setattr(cls, func_name, new_func) + del namespace[func_name] + # restore the old function to the namespace + if old_func is not None: + namespace[func_name] = old_func + + @register_cell_magic + def expect_error(line, cell): + try: + get_ipython().run_cell(cell) + except Exception as e: + get_ipython().run_cell("%tb") + + @magic_arguments() + @argument("exception", help="Type of exception to catch") + @register_cell_magic + def expect(line, cell): + args = parse_argstring(expect, line) + exception = eval(args.exception) + try: + get_ipython().run_cell(cell) + except exception as e: + get_ipython().run_cell("%tb") + + def traceback(mode): + """Set the traceback mode. + + mode: string + """ + with contextlib.redirect_stdout(io.StringIO()): + get_ipython().run_cell(f"%xmode {mode}") + + traceback("Minimal") +except (ImportError, NameError): + print("Warning: IPython is not available, cell magic not defined.") From d3ce2f7958d048eb6f34b8382f9820e3f3791af9 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 3 Dec 2024 17:43:40 -0500 Subject: [PATCH 29/60] Updating the notebooks --- chapters/chap11.ipynb | 220 ++++++++++++++++++++---------------------- chapters/chap12.ipynb | 2 +- chapters/chap13.ipynb | 2 +- chapters/chap18.ipynb | 2 +- 4 files changed, 109 insertions(+), 117 deletions(-) diff --git a/chapters/chap11.ipynb b/chapters/chap11.ipynb index 3b8c7f7..e10980c 100644 --- a/chapters/chap11.ipynb +++ b/chapters/chap11.ipynb @@ -12,7 +12,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "id": "295ac6d7", "metadata": { "tags": [] @@ -70,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "id": "fb0bdca2", "metadata": {}, "outputs": [], @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "id": "5a6da881", "metadata": {}, "outputs": [], @@ -108,7 +108,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "id": "e2596ca7", "metadata": {}, "outputs": [], @@ -127,7 +127,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "id": "a0d350a6", "metadata": {}, "outputs": [], @@ -147,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "id": "c9100ee4", "metadata": {}, "outputs": [], @@ -167,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "id": "44bd3d83", "metadata": {}, "outputs": [], @@ -189,7 +189,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "id": "92e55b2c", "metadata": {}, "outputs": [], @@ -207,7 +207,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "id": "38ee5c2a", "metadata": {}, "outputs": [], @@ -225,7 +225,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "id": "2e0e311a", "metadata": {}, "outputs": [], @@ -243,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "id": "8bb7d715", "metadata": {}, "outputs": [], @@ -261,7 +261,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "id": "e653e00f", "metadata": {}, "outputs": [], @@ -279,7 +279,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "id": "8969188d", "metadata": {}, "outputs": [], @@ -297,7 +297,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "id": "65d7ebaa", "metadata": {}, "outputs": [], @@ -325,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "id": "b4970fe0", "metadata": { "tags": [] @@ -346,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "id": "772738cc", "metadata": { "tags": [] @@ -371,7 +371,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "37e67042", "metadata": {}, "outputs": [], @@ -391,7 +391,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "d809a490", "metadata": {}, "outputs": [], @@ -409,7 +409,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "dfc42a8b", "metadata": {}, "outputs": [], @@ -428,7 +428,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 21, "id": "2debf30c", "metadata": {}, "outputs": [], @@ -450,7 +450,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "1e94ea37", "metadata": {}, "outputs": [], @@ -469,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "99c96c7f", "metadata": {}, "outputs": [], @@ -488,7 +488,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "b67881ed", "metadata": {}, "outputs": [], @@ -507,7 +507,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "b4515e2b", "metadata": {}, "outputs": [], @@ -526,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "8e5b4a14", "metadata": { "tags": [] @@ -548,7 +548,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "2389d6de", "metadata": {}, "outputs": [], @@ -568,7 +568,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 28, "id": "5512edec", "metadata": {}, "outputs": [], @@ -589,7 +589,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "id": "651ab417", "metadata": {}, "outputs": [], @@ -613,7 +613,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 30, "id": "2c0b7d47", "metadata": {}, "outputs": [], @@ -649,7 +649,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "id": "fff80eaa", "metadata": {}, "outputs": [], @@ -667,7 +667,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "id": "4a0eb2a9", "metadata": {}, "outputs": [], @@ -678,7 +678,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "id": "d74ba1b6", "metadata": {}, "outputs": [], @@ -696,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "id": "dad3b3bb", "metadata": {}, "outputs": [], @@ -716,7 +716,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "id": "fbd90b0e", "metadata": {}, "outputs": [], @@ -734,7 +734,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "id": "5a101efb", "metadata": {}, "outputs": [], @@ -759,7 +759,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "id": "0a33e2d0", "metadata": {}, "outputs": [], @@ -779,7 +779,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "id": "336a08ca", "metadata": {}, "outputs": [], @@ -798,7 +798,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 39, "id": "991810bc", "metadata": { "tags": [] @@ -821,7 +821,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 40, "id": "f25ebee1", "metadata": {}, "outputs": [], @@ -840,7 +840,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 41, "id": "7ad64412", "metadata": {}, "outputs": [], @@ -867,7 +867,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 42, "id": "b2863701", "metadata": {}, "outputs": [], @@ -877,7 +877,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 43, "id": "cc1afa29", "metadata": {}, "outputs": [], @@ -906,7 +906,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 44, "id": "ad3e6f81", "metadata": {}, "outputs": [], @@ -926,7 +926,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 45, "id": "9ce313ce", "metadata": {}, "outputs": [], @@ -944,7 +944,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 46, "id": "321d9c30", "metadata": {}, "outputs": [], @@ -964,7 +964,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 47, "id": "7eb73d5d", "metadata": {}, "outputs": [], @@ -989,7 +989,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 48, "id": "9529baa8", "metadata": {}, "outputs": [], @@ -1008,7 +1008,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 49, "id": "dbde77b8", "metadata": {}, "outputs": [], @@ -1027,7 +1027,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 50, "id": "dbb7d0b3", "metadata": {}, "outputs": [], @@ -1047,7 +1047,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 51, "id": "49e3fd8e", "metadata": {}, "outputs": [], @@ -1067,7 +1067,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 52, "id": "9e4f3e51", "metadata": {}, "outputs": [], @@ -1085,7 +1085,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 53, "id": "c1dcb46d", "metadata": {}, "outputs": [], @@ -1108,7 +1108,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 54, "id": "aed20c28", "metadata": {}, "outputs": [], @@ -1126,7 +1126,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 55, "id": "4d9e73b3", "metadata": {}, "outputs": [], @@ -1146,7 +1146,7 @@ }, { "cell_type": "code", - "execution_count": 55, + "execution_count": 56, "id": "2077dfa9", "metadata": {}, "outputs": [], @@ -1171,7 +1171,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 57, "id": "b3d40516", "metadata": {}, "outputs": [], @@ -1193,7 +1193,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 58, "id": "8288c28f", "metadata": {}, "outputs": [], @@ -1212,7 +1212,7 @@ }, { "cell_type": "code", - "execution_count": 58, + "execution_count": 59, "id": "bbbade35", "metadata": {}, "outputs": [], @@ -1233,7 +1233,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 60, "id": "a4c31795", "metadata": {}, "outputs": [], @@ -1252,7 +1252,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 61, "id": "f3d3619a", "metadata": {}, "outputs": [], @@ -1273,7 +1273,7 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 62, "id": "f078c8a6", "metadata": {}, "outputs": [], @@ -1292,7 +1292,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 63, "id": "54030d8f", "metadata": {}, "outputs": [], @@ -1326,7 +1326,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 64, "id": "ef158f81", "metadata": {}, "outputs": [], @@ -1347,7 +1347,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 65, "id": "d3607b8d", "metadata": {}, "outputs": [], @@ -1376,7 +1376,7 @@ }, { "cell_type": "code", - "execution_count": 65, + "execution_count": 66, "id": "692d9cf8", "metadata": {}, "outputs": [], @@ -1407,7 +1407,7 @@ "Lists, dictionaries and tuples are **data structures**.\n", "In this chapter we are starting to see compound data structures, like lists of tuples, or dictionaries that contain tuples as keys and lists as values.\n", "Compound data structures are useful, but they are prone to errors caused when a data structure has the wrong type, size, or structure.\n", - "For example, if a function expects a list if integers and you give it a plain old integer\n", + "For example, if a function expects a list of integers and you give it a plain old integer\n", "(not in a list), it probably won't work.\n", "\n", "To help debug these kinds of errors, I wrote a module called `structshape` that provides a function, also called `structshape`, that takes any kind of data structure as an argument and returns a string that summarizes its structure.\n", @@ -1417,7 +1417,7 @@ }, { "cell_type": "code", - "execution_count": 66, + "execution_count": 67, "id": "e9f03e91", "metadata": { "tags": [] @@ -1437,7 +1437,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 68, "id": "90ab624a", "metadata": {}, "outputs": [], @@ -1455,7 +1455,7 @@ }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 69, "id": "6794330f", "metadata": {}, "outputs": [], @@ -1474,7 +1474,7 @@ }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 70, "id": "54cd185b", "metadata": {}, "outputs": [], @@ -1494,7 +1494,7 @@ }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 71, "id": "04028afd", "metadata": {}, "outputs": [], @@ -1513,7 +1513,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 72, "id": "b5d45c88", "metadata": {}, "outputs": [], @@ -1533,7 +1533,7 @@ }, { "cell_type": "code", - "execution_count": 72, + "execution_count": 73, "id": "15131907", "metadata": {}, "outputs": [], @@ -1587,7 +1587,7 @@ }, { "cell_type": "code", - "execution_count": 73, + "execution_count": 74, "id": "c65d68d2", "metadata": { "tags": [] @@ -1633,7 +1633,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 75, "id": "4416fe4a", "metadata": {}, "outputs": [], @@ -1655,7 +1655,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 76, "id": "e6eda0e4", "metadata": { "tags": [] @@ -1675,7 +1675,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 77, "id": "4fae1acc", "metadata": { "tags": [] @@ -1707,7 +1707,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 78, "id": "855c7ed2", "metadata": {}, "outputs": [], @@ -1727,7 +1727,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 79, "id": "3c921f68", "metadata": {}, "outputs": [], @@ -1746,7 +1746,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 80, "id": "b029b0da", "metadata": {}, "outputs": [], @@ -1785,7 +1785,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 81, "id": "1cc07036", "metadata": { "tags": [] @@ -1805,7 +1805,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 82, "id": "96560a0e", "metadata": {}, "outputs": [], @@ -1815,7 +1815,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 83, "id": "c026c6d1", "metadata": { "tags": [] @@ -1827,7 +1827,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 84, "id": "5814999d", "metadata": { "tags": [] @@ -1849,7 +1849,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 85, "id": "9464d140", "metadata": { "tags": [] @@ -1888,7 +1888,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 86, "id": "4309d0b5", "metadata": { "tags": [] @@ -1901,7 +1901,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 87, "id": "52228828", "metadata": {}, "outputs": [], @@ -1921,7 +1921,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 88, "id": "3bf2aa0d", "metadata": { "tags": [] @@ -1943,7 +1943,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 89, "id": "e4fbf5d9", "metadata": { "tags": [] @@ -1955,7 +1955,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 90, "id": "817ec689", "metadata": { "tags": [] @@ -2010,7 +2010,7 @@ }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 91, "id": "941719c1", "metadata": { "tags": [] @@ -2022,7 +2022,7 @@ }, { "cell_type": "code", - "execution_count": 91, + "execution_count": 92, "id": "d2ec641b", "metadata": { "tags": [] @@ -2044,7 +2044,7 @@ }, { "cell_type": "code", - "execution_count": 92, + "execution_count": 93, "id": "7ae29f73", "metadata": { "tags": [] @@ -2057,7 +2057,7 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 94, "id": "013819a5", "metadata": {}, "outputs": [], @@ -2078,7 +2078,7 @@ }, { "cell_type": "code", - "execution_count": 94, + "execution_count": 95, "id": "fbf9ede3", "metadata": { "tags": [] @@ -2102,7 +2102,7 @@ }, { "cell_type": "code", - "execution_count": 95, + "execution_count": 96, "id": "55435050", "metadata": { "tags": [] @@ -2126,7 +2126,7 @@ }, { "cell_type": "code", - "execution_count": 96, + "execution_count": 97, "id": "6a9320c2", "metadata": { "tags": [] @@ -2167,7 +2167,7 @@ }, { "cell_type": "code", - "execution_count": 97, + "execution_count": 98, "id": "3d5a75f8", "metadata": { "tags": [] @@ -2189,7 +2189,7 @@ }, { "cell_type": "code", - "execution_count": 98, + "execution_count": 99, "id": "a9816dde", "metadata": {}, "outputs": [], @@ -2199,7 +2199,7 @@ }, { "cell_type": "code", - "execution_count": 99, + "execution_count": 100, "id": "753a23c1", "metadata": { "tags": [] @@ -2232,7 +2232,7 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 101, "id": "57649075", "metadata": {}, "outputs": [], @@ -2294,7 +2294,7 @@ }, { "cell_type": "code", - "execution_count": 101, + "execution_count": 102, "id": "c19bf833", "metadata": {}, "outputs": [], @@ -2304,7 +2304,7 @@ }, { "cell_type": "code", - "execution_count": 102, + "execution_count": 103, "id": "2d9764d6", "metadata": {}, "outputs": [], @@ -2314,7 +2314,7 @@ }, { "cell_type": "code", - "execution_count": 103, + "execution_count": 104, "id": "5e4f5d8e", "metadata": {}, "outputs": [], @@ -2324,7 +2324,7 @@ }, { "cell_type": "code", - "execution_count": 104, + "execution_count": 105, "id": "27d311dd", "metadata": {}, "outputs": [], @@ -2334,7 +2334,7 @@ }, { "cell_type": "code", - "execution_count": 105, + "execution_count": 106, "id": "68c27c7e", "metadata": {}, "outputs": [], @@ -2342,14 +2342,6 @@ "# Solution goes here" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "a34c2014", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "markdown", "id": "a7f4edf8", diff --git a/chapters/chap12.ipynb b/chapters/chap12.ipynb index ba8963f..f3f7b19 100644 --- a/chapters/chap12.ipynb +++ b/chapters/chap12.ipynb @@ -43,7 +43,7 @@ "source": [ "# Text Analysis and Generation\n", "\n", - "At this point we have covered Python's core data structures -- lists, dictionaries, and tuples -- and and some algorithms that use them.\n", + "At this point we have covered Python's core data structures -- lists, dictionaries, and tuples -- and some algorithms that use them.\n", "In this chapter, we'll use them to explore text analysis and Markov generation:\n", "\n", "* Text analysis is a way to describe the statistical relationships between the words in a document, like the probability that one word is followed by another, and\n", diff --git a/chapters/chap13.ipynb b/chapters/chap13.ipynb index e12613f..b826989 100644 --- a/chapters/chap13.ipynb +++ b/chapters/chap13.ipynb @@ -343,7 +343,7 @@ "id": "f652aaac", "metadata": {}, "source": [ - "To write this data to a file, you can use the `write` method, which we saw in [Chapter 8](section_writing_files).\n", + "To write this data to a file, you can use the `write` method, which we saw in Chapter 8.\n", "The argument of `write` has to be a string, so if we want to put other values in a file, we have to convert them to strings.\n", "The easiest way to do that is with the built-in function `str`.\n", "\n", diff --git a/chapters/chap18.ipynb b/chapters/chap18.ipynb index 33a652f..2cc91a5 100644 --- a/chapters/chap18.ipynb +++ b/chapters/chap18.ipynb @@ -1889,7 +1889,7 @@ "metadata": {}, "source": [ "`run_unittest` does not take `TestExample` as an argument -- instead, it searches for classes that inherit from `TestCase`.\n", - "Then is searches for methods that begin with `test` and runs them.\n", + "Then it searches for methods that begin with `test` and runs them.\n", "This process is called **test discovery**.\n", "\n", "Here's what happens when we call `run_unittest`." From 9da2b5b41df689cfbbfc79e4a8a100060abbf4c4 Mon Sep 17 00:00:00 2001 From: Allen Downey Date: Tue, 3 Dec 2024 17:43:40 -0500 Subject: [PATCH 30/60] Updating the zip file --- ThinkPythonNotebooks.zip | Bin 579145 -> 579214 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ThinkPythonNotebooks.zip b/ThinkPythonNotebooks.zip index f044fc3d83dcd464d7f7547e879d9e73cbda03f0..cb57fd7002dd3c367b1b1f5639cce1669cb5dc46 100644 GIT binary patch delta 41999 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