/root/pythonlearn ======================================================== /root/pythonlearn Processing EN_us HTTP Server folder found HEAD is now at 2778f87 Update AB-copyright.mkd Already up-to-date. mobi not generated - please install kindlegen This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx No file tmp.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] [5] [6] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [5] [6] [7] [8] [9] [10] Excluding 'trinketfiles' comment. [11] [12] [13] [14] [15] [16] [17] [18] Chapter 2. [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] Chapter 3. [31] <../images/if.eps> [32] [33] <../images/if-else.eps> <../images/elif.eps> [34] <../images/nested.eps> [35] [36] [37] [38] Underfull \hbox (badness 1661) in paragraph at lines 2661--2663 []\T1/lmr/m/n/10 A con-di-tional state-ment with a se-ries of al-ter-na-tive [39] [40] [41] [42] Chapter 4. [43] [44] [45] [46] [47] Overfull \hbox (1.60124pt too wide) in paragraph at lines 3232--3237 []\T1/lmr/m/n/10 This pro-gram con-tains two func-tion def-i-ni-tions: \T1/lmtt /m/n/10 print_lyrics \T1/lmr/m/n/10 and \T1/lmtt/m/n/10 repeat_lyrics\T1/lmr/m/ n/10 . [48] [49] [50] [51] [52] Underfull \vbox (badness 1067) has occurred while \output is active [53] [54] [55] [56] Chapter 5. [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] Chapter 6. <../images/string.eps> [67] [68] [69] [70] [71] Underfull \hbox (badness 1783) in paragraph at lines 4672--4674 []\T1/lmr/m/n/10 Instead of the func-tion syn-tax \T1/lmtt/m/n/10 upper(word)\T 1/lmr/m/n/10 , it uses the method syn-tax [72] [73] [74] [75] [76] Underfull \hbox (badness 1430) in paragraph at lines 5050--5051 []\T1/lmr/bx/n/10 Exercise 6: Read the doc-u-men-ta-tion of the string meth-ods at Underfull \hbox (badness 10000) in paragraph at lines 5050--5051 [][][]$\T1/lmr/bx/n/10 https : / / docs . python . org / library / stdtypes . h tml # string-[]methods$[][][][] You [77] [78] Chapter 7. <../images/arch.eps> [79] <../images/handle.eps> [80] [81] Excluding 'trinketfiles' comment. [82] Excluding 'trinketfiles' comment. [83] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [84] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [85] [86] Excluding 'trinketfiles' comment. [87] [88] [89] [90] Chapter 8. [91] [92] [93] [94] [95] [96] [97] Excluding 'trinketfiles' comment. [98] <../images/list1.eps> [99] [100] [101] [102] [103] [104] Overfull \hbox (1.905pt too wide) in paragraph at lines 6978--6986 \T1/lmr/bx/n/10 Exercise 4: Down-load a copy of the file [][][]www.py4e.com/cod e3/romeo.txt[][][][]. [105] [106] Chapter 9. [107] [108] [109] [110] Excluding 'trinketfiles' comment. [111] [112] [113] Excluding 'trinketfiles' comment. Underfull \hbox (badness 1496) in paragraph at lines 7647--7650 []\T1/lmr/m/n/10 Instead of print-ing and check-ing the en-tire [114] [115] [116] Chapter 10. [117] [118] [119] [120] [121] [122] Excluding 'trinketfiles' comment. [123] [124] [125] [126] Chapter 11. Excluding 'trinketfiles' comment. [127] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [128] Excluding 'trinketfiles' comment. [129] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [130] Excluding 'trinketfiles' comment. [131] [132] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [133] Excluding 'trinketfiles' comment. [134] Excluding 'trinketfiles' comment. [135] [136] [137] [138] [139] [140] Chapter 12. [141] <../images/socket.eps> [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] Chapter 13. <../images/xml-tree.eps> [155] [156] [157] [158] [159] [160] <../images/soa.eps> [161] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10719--10720 [][][][]$\T1/lmr/m/n/10 http : / / maps . googleapis . com / maps / api / geoco de / json ? address = Ann + Arbor % 2C + MI$[][][][] [162] [163] Overfull \hbox (2.08533pt too wide) in paragraph at lines 10805--10805 []\T1/lmtt/m/n/9 Retrieving http://py4e-data.dr-chuck.net/json?address=Ann+Arbo r%2C+MI&key=42[] [164] [165] [166] Excluding 'trinketfiles' comment. [167] Underfull \hbox (badness 1990) in paragraph at lines 11037--11043 \T1/lmr/m/n/10 the re-quest in the HTTP re-sponse head-ers. One header in par-t ic-u-lar, [168] Excluding 'trinketfiles' comment. [169] [170] Chapter 14. [171] [172] <../images/program.eps> [173] <../images/program-oo.eps> [174] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> [175] <../photos/cookie_cutter_flickr_Didriks.eps> [176] Underfull \hbox (badness 2027) in paragraph at lines 11531--11534 []\T1/lmr/m/n/10 Each Partyan-i-mal ob-ject/instance con-tains within it a vari -able \T1/lmtt/m/n/10 x \T1/lmr/m/n/10 and a [177] [178] [179] [180] [181] [182] [183] [184] Chapter 15. <../images/relational.eps> [185] [186] <../images/cursor.eps> [187] <../images/tracks.eps> [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] Underfull \vbox (badness 4353) has occurred while \output is active [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] Chapter 16. <../images/google-map.eps> [209] [210] <../images/pagerank.eps> [211] [212] [213] <../images/wordcloud.eps> [214] [215] [216] [217] <../images/mailorg.eps> (./tmp.appendix.tex [218] [219] [220] Appendix A. [221] [222] [223] [224] Appendix B. [225]) No file tmp.ind. Package createspace Info: spine is about 37.20795pt wide Package createspace Info: book cost is 6.02USD (3.56USD for pro plan) [226] (./tmp.aux) Package rerunfilecheck Warning: File `tmp.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information) Output written on tmp.dvi (232 pages, 913512 bytes). Transcript written on tmp.log. This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx (./tmp.aux) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./tmp.out) (./tmp.out) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] (./tmp.toc [5] [6] [7] [8] [9] [10]) [11] [12] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [5] [6] [7] [8] [9] [10] Excluding 'trinketfiles' comment. [11] [12] [13] [14] [15] [16] [17] [18] Chapter 2. [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] Chapter 3. [31] <../images/if.eps> [32] [33] <../images/if-else.eps> <../images/elif.eps> [34] <../images/nested.eps> [35] [36] [37] [38] Underfull \hbox (badness 1661) in paragraph at lines 2661--2663 []\T1/lmr/m/n/10 A con-di-tional state-ment with a se-ries of al-ter-na-tive [39] [40] [41] [42] Chapter 4. [43] [44] [45] [46] [47] Overfull \hbox (1.60124pt too wide) in paragraph at lines 3232--3237 []\T1/lmr/m/n/10 This pro-gram con-tains two func-tion def-i-ni-tions: \T1/lmtt /m/n/10 print_lyrics \T1/lmr/m/n/10 and \T1/lmtt/m/n/10 repeat_lyrics\T1/lmr/m/ n/10 . [48] [49] [50] [51] [52] Underfull \vbox (badness 1067) has occurred while \output is active [53] [54] [55] [56] Chapter 5. [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] Chapter 6. <../images/string.eps> [67] [68] [69] [70] [71] Underfull \hbox (badness 1783) in paragraph at lines 4672--4674 []\T1/lmr/m/n/10 Instead of the func-tion syn-tax \T1/lmtt/m/n/10 upper(word)\T 1/lmr/m/n/10 , it uses the method syn-tax [72] [73] [74] [75] [76] Underfull \hbox (badness 1430) in paragraph at lines 5050--5051 []\T1/lmr/bx/n/10 Exercise 6: Read the doc-u-men-ta-tion of the string meth-ods at Underfull \hbox (badness 10000) in paragraph at lines 5050--5051 [][][]$\T1/lmr/bx/n/10 https : / / docs . python . org / library / stdtypes . h tml # string-[]methods$[][][][] You [77] [78] Chapter 7. <../images/arch.eps> [79] <../images/handle.eps> [80] [81] Excluding 'trinketfiles' comment. [82] Excluding 'trinketfiles' comment. [83] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [84] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [85] [86] Excluding 'trinketfiles' comment. [87] [88] [89] [90] Chapter 8. [91] [92] [93] [94] [95] [96] [97] Excluding 'trinketfiles' comment. [98] <../images/list1.eps> [99] [100] [101] [102] [103] [104] Overfull \hbox (1.905pt too wide) in paragraph at lines 6978--6986 \T1/lmr/bx/n/10 Exercise 4: Down-load a copy of the file [][][]www.py4e.com/cod e3/romeo.txt[][][][]. [105] [106] Chapter 9. [107] [108] [109] [110] Excluding 'trinketfiles' comment. [111] [112] [113] Excluding 'trinketfiles' comment. Underfull \hbox (badness 1496) in paragraph at lines 7647--7650 []\T1/lmr/m/n/10 Instead of print-ing and check-ing the en-tire [114] [115] [116] Chapter 10. [117] [118] [119] [120] [121] [122] Excluding 'trinketfiles' comment. [123] [124] [125] [126] Chapter 11. Excluding 'trinketfiles' comment. [127] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [128] Excluding 'trinketfiles' comment. [129] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [130] Excluding 'trinketfiles' comment. [131] [132] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [133] Excluding 'trinketfiles' comment. [134] Excluding 'trinketfiles' comment. [135] [136] [137] [138] [139] [140] Chapter 12. [141] <../images/socket.eps> [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] Chapter 13. <../images/xml-tree.eps> [155] [156] [157] [158] [159] [160] <../images/soa.eps> [161] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10719--10720 [][][][]$\T1/lmr/m/n/10 http : / / maps . googleapis . com / maps / api / geoco de / json ? address = Ann + Arbor % 2C + MI$[][][][] [162] [163] Overfull \hbox (2.08533pt too wide) in paragraph at lines 10805--10805 []\T1/lmtt/m/n/9 Retrieving http://py4e-data.dr-chuck.net/json?address=Ann+Arbo r%2C+MI&key=42[] [164] [165] [166] Excluding 'trinketfiles' comment. [167] Underfull \hbox (badness 1990) in paragraph at lines 11037--11043 \T1/lmr/m/n/10 the re-quest in the HTTP re-sponse head-ers. One header in par-t ic-u-lar, [168] Excluding 'trinketfiles' comment. [169] [170] Chapter 14. [171] [172] <../images/program.eps> [173] <../images/program-oo.eps> [174] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> [175] <../photos/cookie_cutter_flickr_Didriks.eps> [176] Underfull \hbox (badness 2027) in paragraph at lines 11531--11534 []\T1/lmr/m/n/10 Each Partyan-i-mal ob-ject/instance con-tains within it a vari -able \T1/lmtt/m/n/10 x \T1/lmr/m/n/10 and a [177] [178] [179] [180] [181] [182] [183] [184] Chapter 15. <../images/relational.eps> [185] [186] <../images/cursor.eps> [187] <../images/tracks.eps> [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] Underfull \vbox (badness 4353) has occurred while \output is active [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] Chapter 16. <../images/google-map.eps> [209] [210] <../images/pagerank.eps> [211] [212] [213] <../images/wordcloud.eps> [214] [215] [216] [217] <../images/mailorg.eps> (./tmp.appendix.tex [218] [219] [220] Appendix A. [221] [222] [223] [224] Appendix B. [225]) (./tmp.ind [226] [227] [228] [229] [230] [231] [232] [233]) Package createspace Info: spine is about 38.51349pt wide Package createspace Info: book cost is 6.18USD (3.65USD for pro plan) (./tmp.aux) ) (see the transcript file for additional information) Output written on tmp.dvi (245 pages, 1285712 bytes). Transcript written on tmp.log. Output on x.pdf ======================================================== /root/pythonlearn Processing EN_us_broke Error folder not found /var/www/html/pythonlearn/EN_us_broke ======================================================== /root/pythonlearn Processing ES_es HTTP Server folder found HEAD is now at ac35571 Merge pull request #8 from danielmerino/danielmerino-patch-revision-chapter4 Already up-to-date. mobi not generated - please install kindlegen This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx No file tmp.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] [5] [6] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 2 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [2] <../images/arch.eps> [3] <../images/arch2.eps> Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 4 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 6 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [6] [7] Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 8 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [8] [9] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 10 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [10] [11] Excluding 'trinketfiles' comment. Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 12 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [12] [13] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 14 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [14] [15] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 16 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [16] Underfull \hbox (badness 1552) in paragraph at lines 1121--1124 \T1/lmr/m/n/10 el lenguaje que es di-rec-ta-mente eje-cu-tado por la unidad cen -tral de [17] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 18 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [18] Chapter 2. [19] [20] Overfull \hbox (50.94978pt too wide) in paragraph at lines 1419--1425 \T1/lmr/m/n/10 nom-bres con mlti-ples pal-abras, como en \T1/lmtt/m/n/10 mi_no mbre \T1/lmr/m/n/10 o \T1/lmtt/m/n/10 velocidad_de_golondrina_sin_carga\T1/lmr/ m/n/10 . [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] Chapter 3. [33] <../images/if.eps> [34] [35] <../images/if-else.eps> <../images/elif.eps> [36] <../images/nested.eps> [37] [38] [39] [40] [41] [42] [43] [44] Chapter 4. [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] Chapter 5. [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 6. <../images/string.eps> [69] [70] [71] ! Undefined control sequence. l.5038 \indice {concatenacion} ? ! Emergency stop. l.5038 \indice {concatenacion} Output written on tmp.dvi (77 pages, 308000 bytes). Transcript written on tmp.log. This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx (./tmp.aux) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./tmp.out) (./tmp.out) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] (./tmp.toc) [5] [6] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 2 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [2] <../images/arch.eps> [3] <../images/arch2.eps> Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 4 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 6 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [6] [7] Overfull \hbox (14.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 8 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCRI BIR PROGRAMAS? [8] [9] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 10 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [10] [11] Excluding 'trinketfiles' comment. Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 12 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [12] [13] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 14 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [14] [15] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 16 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [16] Underfull \hbox (badness 1552) in paragraph at lines 1121--1124 \T1/lmr/m/n/10 el lenguaje que es di-rec-ta-mente eje-cu-tado por la unidad cen -tral de [17] Overfull \hbox (19.342pt too wide) has occurred while \output is active \T1/lmr/m/n/10 18 \T1/lmr/m/sl/10 CHAPTER 1. POR QU DEBERAS APRENDER A ESCR IBIR PROGRAMAS? [18] Chapter 2. [19] [20] Overfull \hbox (50.94978pt too wide) in paragraph at lines 1419--1425 \T1/lmr/m/n/10 nom-bres con mlti-ples pal-abras, como en \T1/lmtt/m/n/10 mi_no mbre \T1/lmr/m/n/10 o \T1/lmtt/m/n/10 velocidad_de_golondrina_sin_carga\T1/lmr/ m/n/10 . [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] Chapter 3. [33] <../images/if.eps> [34] [35] <../images/if-else.eps> <../images/elif.eps> [36] <../images/nested.eps> [37] [38] [39] [40] [41] [42] [43] [44] Chapter 4. [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] Chapter 5. [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 6. <../images/string.eps> [69] [70] [71] ! Undefined control sequence. l.5038 \indice {concatenacion} ? ! Emergency stop. l.5038 \indice {concatenacion} Output written on tmp.dvi (77 pages, 323452 bytes). Transcript written on tmp.log. Output on x.pdf ======================================================== /root/pythonlearn Processing ES_es-ftardio Error folder not found /var/www/html/pythonlearn/ES_es-ftardio ======================================================== /root/pythonlearn Processing IT_it HTTP Server folder found HEAD is now at e016319 fix spaces Already up-to-date. mobi not generated - please install kindlegen This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) (/usr/share/texlive/texmf-dist/tex/latex/breakurl/breakurl.sty) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 103. (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty (/usr/share/texlive/texmf-dist/tex/generic/babel-italian/italian.ldf (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) Writing index file tmp.idx No file tmp.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) Underfull \hbox (badness 3557) in paragraph at lines 24--27 []\T1/lmr/m/n/10 Quest'opera ri-la-scia-ta sot-to li-cen-za Crea-ti-ve Com-mo n Attribution-Non [2] [3]) [4] [5] [6] Capitolo 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [6] [7] [8] [9] [10] Excluding 'trinketfiles' comment. [11] [12] [13] [14] [15] [16] [17] [18] Capitolo 2. [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] Capitolo 3. [31] <../images/if.eps> [32] [33] <../images/if-else.eps> <../images/elif.eps> [34] <../images/nested.eps> [35] [36] [37] [38] [39] Underfull \hbox (badness 1527) in paragraph at lines 2565--2568 []\T1/lmr/m/n/10 Un'istruzione con-di-zio-na-le che ap-pa-re in uno dei [40] [41] [42] Capitolo 4. [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] Underfull \hbox (badness 10000) in paragraph at lines 3473--3475 Underfull \hbox (badness 10000) in paragraph at lines 3475--3477 Underfull \hbox (badness 10000) in paragraph at lines 3477--3480 Underfull \hbox (badness 10000) in paragraph at lines 3480--3482 Underfull \hbox (badness 10000) in paragraph at lines 3505--3507 Underfull \hbox (badness 10000) in paragraph at lines 3507--3509 Underfull \hbox (badness 10000) in paragraph at lines 3509--3511 Underfull \hbox (badness 10000) in paragraph at lines 3511--3513 [54] [55] [56] Capitolo 5. [57] [58] [59] [60] [61] [62] [63] [64] Capitolo 6. <../images/string.eps> [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] Capitolo 7. <../images/arch.eps> [77] <../images/handle.eps> [78] Underfull \hbox (badness 10000) in paragraph at lines 5001--5009 \T1/lmtt/m/n/10 Details: http: //source.sakaiproject.org/viewsvn/? view = rev & rev [79] Excluding 'trinketfiles' comment. [80] Excluding 'trinketfiles' comment. [81] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [82] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [83] [84] Excluding 'trinketfiles' comment. [85] [86] [87] [88] Capitolo 8. [89] [90] [91] [92] [93] [94] [95] Excluding 'trinketfiles' comment. [96] <../images/list1.eps> [97] [98] [99] [100] [101] Overfull \hbox (22.36037pt too wide) in paragraph at lines 6745--6745 [] \T1/lmtt/m/n/9 Details: http://source.sakaiproject.org/viewsvn/?view =rev&rev=39772[] [102] [103] [104] [105] [106] Capitolo 9. [107] [108] [109] [110] Excluding 'trinketfiles' comment. Overfull \hbox (4.96173pt too wide) in paragraph at lines 7268--7272 \T1/lmr/m/n/10 hash di-sor-di-na-ti (il fi-le \T1/lmtt/m/n/10 romeo.txt \T1/lmr /m/n/10 di-spo-ni-bi-le su [][][]www.py4e.com/code3/romeo.txt[][][][]). [111] [112] [113] Excluding 'trinketfiles' comment. [114] [115] [116] Capitolo 10. [117] [118] [119] [120] [121] [122] Excluding 'trinketfiles' comment. [123] [124] [125] [126] [127] [128] Capitolo 11. Excluding 'trinketfiles' comment. [129] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [130] Excluding 'trinketfiles' comment. Overfull \hbox (12.6762pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 11.2. ESTRAZIONE DEI DATI UTILIZZANDO LE ESPRESSIONI REGOLARI \T1/lmr/m/n/10 131 [131] Excluding 'trinketfiles' comment. Underfull \hbox (badness 4378) in paragraph at lines 8734--8740 []\T1/lmr/m/n/10 L'espressione re-go-la-re ha tro-va-to due cor-ri-spon-den-ze (csev@umich.edu e Excluding 'trinketfiles' comment. [132] Excluding 'trinketfiles' comment. Overfull \hbox (12.6762pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 11.2. ESTRAZIONE DEI DATI UTILIZZANDO LE ESPRESSIONI REGOLARI \T1/lmr/m/n/10 133 [133] [134] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [135] Excluding 'trinketfiles' comment. [136] Excluding 'trinketfiles' comment. [137] [138] [139] [140] [141] [142] Capitolo 12. [143] <../images/socket.eps> [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] Capitolo 13. <../images/xml-tree.eps> [157] [158] [159] [160] Underfull \vbox (badness 1028) has occurred while \output is active [161] <../images/soa.eps> [162] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10538--10539 [][][][]\T1/lmr/m/n/10 http://maps.googleapis.com/maps/api/geocode/json?address =Ann+Arbor%2C+MI[][][][] [163] [164] [165] [166] Excluding 'trinketfiles' comment. [167] Excluding 'trinketfiles' comment. [168] [169] Underfull \hbox (badness 1005) in paragraph at lines 10985--10994 \T1/lmr/bx/n/10 Esercizio 1: \T1/lmr/m/n/10 Mo-di-fi-ca uno de-gli script [][][ ]www.py4e.com/code3/geojson.py[][][][] o [170] Capitolo 14. Underfull \vbox (badness 1210) has occurred while \output is active [171] [172] <../images/program.eps> [173] <../images/program-oo.eps> [174] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> [175] [176] Overfull \hbox (3.80821pt too wide) in paragraph at lines 11348--11348 [][][][][][][]\T1/lmr/m/n/8 Cookie im-ma-gi-ne co-py-right CC-BY https://www.fl ickr.com/photos/dinnerseries/23570475099| <../photos/cookie_cutter_flickr_Didriks.eps> [177] [178] [179] [180] [181] [182] [183] [184] Capitolo 15. <../images/relational.eps> [185] [186] <../images/cursor.eps> [187] <../images/tracks.eps> [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] Underfull \vbox (badness 4353) has occurred while \output is active [198] [199] [200] [201] [202] [203] [204] [205] Underfull \vbox (badness 4156) has occurred while \output is active [206] [207] [208] Capitolo 16. <../images/google-map.eps> [209] [210] Overfull \hbox (31.00923pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 16.1. COSTRUIRE UNA GOOGLE MAP PARTENDO DA DATI GEOCODIFICATI \T1/lmr/m/n/10 211 [211] Overfull \hbox (11.51372pt too wide) in paragraph at lines 13370--13372 []\T1/lmr/m/n/10 Puoi sca-ri-ca-re ed estrar-re que-sta ap-pli-ca-zio-ne da: [] [][]www.py4e.com/code3/pagerank.zip[][][][] <../images/pagerank.eps> [212] [213] <../images/wordcloud.eps> [214] [215] [216] [217] [218] <../images/mailorg.eps> (./tmp.appendix.tex [219] [220] Appendice A. [221] [222] [223] [224] Appendice B. Underfull \hbox (badness 3612) in paragraph at lines 199--202 \T1/lmr/m/n/10 Attribution-NonCommercial-ShareAlike 3.0. Que-sta li-cen-za di -spo-ni-bi-le [225]) No file tmp.ind. Package createspace Info: spine is about 37.20795pt wide Package createspace Info: book cost is 6.02USD (3.56USD for pro plan) [226] (./tmp.aux) Package rerunfilecheck Warning: File `tmp.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information) Output written on tmp.dvi (232 pages, 1235720 bytes). Transcript written on tmp.log. This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) (/usr/share/texlive/texmf-dist/tex/latex/breakurl/breakurl.sty) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 103. (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty (/usr/share/texlive/texmf-dist/tex/generic/babel-italian/italian.ldf (/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def))) (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) Writing index file tmp.idx (./tmp.aux LaTeX Warning: Label `dettagli-sul-copyright' multiply defined. ) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./tmp.out) (./tmp.out) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) Underfull \hbox (badness 3557) in paragraph at lines 24--27 []\T1/lmr/m/n/10 Quest'opera ri-la-scia-ta sot-to li-cen-za Crea-ti-ve Com-mo n Attribution-Non [2] [3]) [4] (./tmp.toc [5] [6] [7] [8] [9] [10]) [11] [12] Capitolo 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [6] [7] [8] [9] [10] Excluding 'trinketfiles' comment. [11] [12] [13] [14] [15] [16] [17] [18] Capitolo 2. [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] Capitolo 3. [31] <../images/if.eps> [32] [33] <../images/if-else.eps> <../images/elif.eps> [34] <../images/nested.eps> [35] [36] [37] [38] [39] Underfull \hbox (badness 1527) in paragraph at lines 2565--2568 []\T1/lmr/m/n/10 Un'istruzione con-di-zio-na-le che ap-pa-re in uno dei [40] [41] [42] Capitolo 4. [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] Underfull \hbox (badness 10000) in paragraph at lines 3473--3475 Underfull \hbox (badness 10000) in paragraph at lines 3475--3477 Underfull \hbox (badness 10000) in paragraph at lines 3477--3480 Underfull \hbox (badness 10000) in paragraph at lines 3480--3482 Underfull \hbox (badness 10000) in paragraph at lines 3505--3507 Underfull \hbox (badness 10000) in paragraph at lines 3507--3509 Underfull \hbox (badness 10000) in paragraph at lines 3509--3511 Underfull \hbox (badness 10000) in paragraph at lines 3511--3513 [54] [55] [56] Capitolo 5. [57] [58] [59] [60] [61] [62] [63] [64] Capitolo 6. <../images/string.eps> [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] Capitolo 7. <../images/arch.eps> [77] <../images/handle.eps> [78] Underfull \hbox (badness 10000) in paragraph at lines 5001--5009 \T1/lmtt/m/n/10 Details: http: //source.sakaiproject.org/viewsvn/? view = rev & rev [79] Excluding 'trinketfiles' comment. [80] Excluding 'trinketfiles' comment. [81] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [82] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [83] [84] Excluding 'trinketfiles' comment. [85] [86] [87] [88] Capitolo 8. [89] [90] [91] [92] [93] [94] [95] Excluding 'trinketfiles' comment. [96] <../images/list1.eps> [97] [98] [99] [100] [101] Overfull \hbox (22.36037pt too wide) in paragraph at lines 6745--6745 [] \T1/lmtt/m/n/9 Details: http://source.sakaiproject.org/viewsvn/?view =rev&rev=39772[] [102] [103] [104] [105] [106] Capitolo 9. [107] [108] [109] [110] Excluding 'trinketfiles' comment. Overfull \hbox (4.96173pt too wide) in paragraph at lines 7268--7272 \T1/lmr/m/n/10 hash di-sor-di-na-ti (il fi-le \T1/lmtt/m/n/10 romeo.txt \T1/lmr /m/n/10 di-spo-ni-bi-le su [][][]www.py4e.com/code3/romeo.txt[][][][]). [111] [112] [113] Excluding 'trinketfiles' comment. [114] [115] [116] Capitolo 10. [117] [118] [119] [120] [121] [122] Excluding 'trinketfiles' comment. [123] [124] [125] [126] [127] [128] Capitolo 11. Excluding 'trinketfiles' comment. [129] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [130] Excluding 'trinketfiles' comment. Overfull \hbox (12.6762pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 11.2. ESTRAZIONE DEI DATI UTILIZZANDO LE ESPRESSIONI REGOLARI \T1/lmr/m/n/10 131 [131] Excluding 'trinketfiles' comment. Underfull \hbox (badness 4378) in paragraph at lines 8734--8740 []\T1/lmr/m/n/10 L'espressione re-go-la-re ha tro-va-to due cor-ri-spon-den-ze (csev@umich.edu e Excluding 'trinketfiles' comment. [132] Excluding 'trinketfiles' comment. Overfull \hbox (12.6762pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 11.2. ESTRAZIONE DEI DATI UTILIZZANDO LE ESPRESSIONI REGOLARI \T1/lmr/m/n/10 133 [133] [134] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [135] Excluding 'trinketfiles' comment. [136] Excluding 'trinketfiles' comment. [137] [138] [139] [140] [141] [142] Capitolo 12. [143] <../images/socket.eps> [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155] [156] Capitolo 13. <../images/xml-tree.eps> [157] [158] [159] [160] Underfull \vbox (badness 1028) has occurred while \output is active [161] <../images/soa.eps> [162] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10538--10539 [][][][]\T1/lmr/m/n/10 http://maps.googleapis.com/maps/api/geocode/json?address =Ann+Arbor%2C+MI[][][][] [163] [164] [165] [166] Excluding 'trinketfiles' comment. [167] Excluding 'trinketfiles' comment. [168] [169] Underfull \hbox (badness 1005) in paragraph at lines 10985--10994 \T1/lmr/bx/n/10 Esercizio 1: \T1/lmr/m/n/10 Mo-di-fi-ca uno de-gli script [][][ ]www.py4e.com/code3/geojson.py[][][][] o [170] Capitolo 14. Underfull \vbox (badness 1210) has occurred while \output is active [171] [172] <../images/program.eps> [173] <../images/program-oo.eps> [174] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> [175] [176] Overfull \hbox (3.80821pt too wide) in paragraph at lines 11348--11348 [][][][][][][]\T1/lmr/m/n/8 Cookie im-ma-gi-ne co-py-right CC-BY https://www.fl ickr.com/photos/dinnerseries/23570475099| <../photos/cookie_cutter_flickr_Didriks.eps> [177] [178] [179] [180] [181] [182] [183] [184] Capitolo 15. <../images/relational.eps> [185] [186] <../images/cursor.eps> [187] <../images/tracks.eps> [188] [189] [190] [191] [192] [193] [194] [195] [196] [197] Underfull \vbox (badness 4353) has occurred while \output is active [198] [199] [200] [201] [202] [203] [204] [205] Underfull \vbox (badness 4156) has occurred while \output is active [206] [207] [208] Capitolo 16. <../images/google-map.eps> [209] [210] Overfull \hbox (31.00923pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 16.1. COSTRUIRE UNA GOOGLE MAP PARTENDO DA DATI GEOCODIFICATI \T1/lmr/m/n/10 211 [211] Overfull \hbox (11.51372pt too wide) in paragraph at lines 13370--13372 []\T1/lmr/m/n/10 Puoi sca-ri-ca-re ed estrar-re que-sta ap-pli-ca-zio-ne da: [] [][]www.py4e.com/code3/pagerank.zip[][][][] <../images/pagerank.eps> [212] [213] <../images/wordcloud.eps> [214] [215] [216] [217] [218] <../images/mailorg.eps> (./tmp.appendix.tex [219] [220] Appendice A. [221] [222] [223] [224] Appendice B. Underfull \hbox (badness 3612) in paragraph at lines 199--202 \T1/lmr/m/n/10 Attribution-NonCommercial-ShareAlike 3.0. Que-sta li-cen-za di -spo-ni-bi-le [225]) (./tmp.ind [226] [227] [228] [229] Underfull \hbox (badness 10000) in paragraph at lines 322--323 []\T1/lmr/m/n/10 inizializzazione (pri-ma del-l'ag-gior-na- [230] [231] [232] [233]) Package createspace Info: spine is about 38.51349pt wide Package createspace Info: book cost is 6.18USD (3.65USD for pro plan) (./tmp.aux) LaTeX Warning: There were multiply-defined labels. ) (see the transcript file for additional information) Output written on tmp.dvi (245 pages, 1610004 bytes). Transcript written on tmp.log. Output on x.pdf ======================================================== /root/pythonlearn Processing PT_br HTTP Server folder found HEAD is now at 9fe15de Merge pull request #111 from Galaxhar/patch-8 Already up-to-date. mobi not generated - please install kindlegen This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx No file tmp.aux. (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] [5] [6] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [6] [7] [8] [9] [10] [11] Excluding 'trinketfiles' comment. [12] [13] [14] Underfull \vbox (badness 3568) has occurred while \output is active [15] Underfull \hbox (badness 1635) in paragraph at lines 1096--1100 []\T1/lmr/m/n/10 Unidade cen-tral de pro-ces-sa-mento, con-sid-er-ada o [16] [17] [18] Chapter 2. [19] [20] Underfull \hbox (badness 1275) in paragraph at lines 1388--1394 \T1/lmr/m/n/10 quente-mente us-ado em nomes com mlti-plas palavras, como \T1/l mtt/m/n/10 meu_nome \T1/lmr/m/n/10 or [21] [22] [23] [24] [25] [26] Underfull \hbox (badness 2495) in paragraph at lines 1874--1874 [][][][][][][]\T1/lmr/m/n/8 Veja https://en.wikipedia.org/wiki/Mnemonic para um a de-scrio maior da palavra [27] Underfull \hbox (badness 1024) in paragraph at lines 1920--1924 \T1/lmr/m/n/10 palavras nos da-dos, pizza e fa-tia so nomes de var-iveis no- mnemnicos. [28] [29] [30] [31] [32] Chapter 3. [33] <../images/if.eps> [34] [35] <../images/if-else.eps> <../images/elif.eps> [36] <../images/nested.eps> [37] [38] [39] [40] [41] Underfull \hbox (badness 1253) in paragraph at lines 2763--2766 []\T1/lmr/m/n/10 Quando con-stru-mos uma ex-presso [42] [43] [44] Chapter 4. [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] Underfull \hbox (badness 1668) in paragraph at lines 3712--3714 []\T1/lmr/m/n/10 Pertence a uma se-qun-cia de nmeros que pare-cem ser Underfull \hbox (badness 10000) in paragraph at lines 3729--3731 Underfull \hbox (badness 10000) in paragraph at lines 3731--3733 Underfull \hbox (badness 10000) in paragraph at lines 3733--3736 [56] Underfull \hbox (badness 10000) in paragraph at lines 3736--3738 Underfull \hbox (badness 10000) in paragraph at lines 3762--3764 Underfull \hbox (badness 10000) in paragraph at lines 3764--3766 Underfull \hbox (badness 10000) in paragraph at lines 3766--3768 Underfull \hbox (badness 10000) in paragraph at lines 3768--3770 [57] [58] Chapter 5. [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 6. <../images/string.eps> [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] Underfull \hbox (badness 1681) in paragraph at lines 5219--5220 []\T1/lmr/bx/n/10 Exerccios 6: Leia a doc-u-men-tao dos mto-dos da string e m Underfull \hbox (badness 10000) in paragraph at lines 5219--5220 [][][]$\T1/lmr/bx/n/10 https : / / docs . python . org / library / stdtypes . h tml # string-[]methods$[][][][] Voc [79] [80] Chapter 7. <../images/arch.eps> [81] <../images/handle.eps> [82] [83] Excluding 'trinketfiles' comment. [84] Excluding 'trinketfiles' comment. [85] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [86] Excluding 'trinketfiles' comment. [87] Excluding 'trinketfiles' comment. [88] Excluding 'trinketfiles' comment. [89] [90] [91] [92] Chapter 8. [93] [94] [95] [96] [97] [98] [99] Excluding 'trinketfiles' comment. [100] <../images/list1.eps> [101] [102] [103] Overfull \hbox (781.70882pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 Antes de usar mtodos de listas e operadores, voc deve ler a documentao com cuidado e depois testar elas em um modo interativo. Os mtodos e os operadores que as listas compartilham com outras sequncia (como strings) so documentadas em:[] Overfull \hbox (304.48474pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 [docs.python.org/library/stdtypes.html#common-sequence-operati ons](https://docs.python.org/library/stdtypes.html#common-sequence-operations)[ ] Overfull \hbox (77.68518pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 Os mtodos e operadores que so apenas aplicadas em sequncias mutveis so documentadas em:[] Overfull \hbox (266.68481pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 [docs.python.org/library/stdtypes.html#mutable-sequence-types] (https://docs.python.org/library/stdtypes.html#mutable-sequence-types)[] [104] [105] [106] [107] [108] [109] [110] Chapter 9. [111] Overfull \hbox (52.89516pt too wide) in paragraph at lines 7412--7414 []\T1/lmr/bx/n/10 Exerccio 1: Faa o down-load de uma cpia do ar-quivo [][][ ]\T1/lmr/m/n/10 www.py4e.com/code3/words.txt[][][][] [112] [113] [114] Excluding 'trinketfiles' comment. Overfull \hbox (2.31575pt too wide) in paragraph at lines 7612--7615 \T1/lmr/m/n/10 aleatria. (o ar-quivo \T1/lmr/m/it/10 romeo.txt \T1/lmr/m/n/10 est disponvel em [][][]www.py4e.com/code3/romeo.txt[][][][]) [115] [116] [117] Excluding 'trinketfiles' comment. [118] Underfull \hbox (badness 4569) in paragraph at lines 7879--7880 []\T1/lmr/m/n/10 Analisar uma sada for- [119] [120] [121] [122] Chapter 10. [123] [124] [125] [126] [127] [128] Excluding 'trinketfiles' comment. [129] [130] [131] [132] [133] [134] Chapter 11. Excluding 'trinketfiles' comment. [135] Excluding 'trinketfiles' comment. Underfull \hbox (badness 6125) in paragraph at lines 8826--8826 []\T1/lmr/bx/n/14.4 Correspondncia de car-ac-teres em ex- Excluding 'trinketfiles' comment. [136] Excluding 'trinketfiles' comment. [137] Excluding 'trinketfiles' comment. Overfull \hbox (11.71548pt too wide) in paragraph at lines 8987--8993 []\T1/lmr/m/n/10 A ex-presso reg-u-lar cor-re-spon-de-ria duas vezes (csev@umi ch.edu and cwen@iupui.edu), Excluding 'trinketfiles' comment. [138] Excluding 'trinketfiles' comment. [139] [140] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [141] Excluding 'trinketfiles' comment. [142] Excluding 'trinketfiles' comment. [143] [144] [145] [146] [147] [148] Chapter 12. [149] <../images/socket.eps> [150] [151] [152] Underfull \hbox (badness 1221) in paragraph at lines 9924--9930 []\T1/lmr/m/n/10 podemos re-tar-dar nos-sas su-ces-si-vas chamadas de \T1/lmtt/ m/n/10 recv() \T1/lmr/m/n/10 de-sco-men-tando a [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] Chapter 13. <../images/xml-tree.eps> [165] [166] [167] [168] [169] [170] <../images/soa.eps> [171] Underfull \hbox (badness 1132) in paragraph at lines 10963--10963 []\T1/lmr/bx/n/14.4 Aplicao 1: Web ser-vice de geocdigo [172] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10991--10992 [][][][]$\T1/lmr/m/n/10 http : / / maps . googleapis . com / maps / api / geoco de / json ? address = Ann + Arbor % 2C + MI$[][][][] [173] [174] [175] [176] Excluding 'trinketfiles' comment. [177] Excluding 'trinketfiles' comment. [178] [179] [180] Chapter 14. [181] [182] <../images/program.eps> [183] <../images/program-oo.eps> [184] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> Underfull \vbox (badness 10000) has occurred while \output is active [185] [186] <../photos/cookie_cutter_flickr_Didriks.eps> [187] [188] [189] [190] [191] [192] Underfull \hbox (badness 1515) in paragraph at lines 12152--12155 []\T1/lmr/m/n/10 Um mtodo op-cional es-pe-cial-mente nomeado (\T1/lmtt/m/n/10 __del__\T1/lmr/m/n/10 ) que [193] [194] Chapter 15. [195] <../images/relational.eps> [196] <../images/cursor.eps> [197] [198] <../images/tracks.eps> [199] [200] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 201 [201] [202] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 203 [203] [204] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 205 [205] [206] [207] [208] Underfull \vbox (badness 4353) has occurred while \output is active [209] [210] [211] [212] [213] [214] [215] Underfull \vbox (badness 10000) has occurred while \output is active [216] [217] [218] [219] [220] Chapter 16. <../images/google-map.eps> [221] [222] Overfull \hbox (78.23106pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 16.1. CONSTRUINDO UM MAPA DO GOOGLE A PARTIR DE DADOS GEOCODIF ICADOS \T1/lmr/m/n/10 223 [223] <../images/pagerank.eps> [224] [225] [226] <../images/wordcloud.eps> Underfull \hbox (badness 1412) in paragraph at lines 13982--13990 \T1/lmr/m/n/10 chamado [www.gmane.org] (http://www.gmane.org). Este servio m uito [227] [228] [229] [230] <../images/mailorg.eps> (./tmp.appendix.tex [231] [232] Appendix A. [233] [234] [235] [236] Appendix B. [237]) No file tmp.ind. Package createspace Info: spine is about 39.16626pt wide Package createspace Info: book cost is 6.26USD (3.70USD for pro plan) [238] (./tmp.aux) Package rerunfilecheck Warning: File `tmp.out' has changed. (rerunfilecheck) Rerun to get outlines right (rerunfilecheck) or use package `bookmark'. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information) Output written on tmp.dvi (244 pages, 954380 bytes). Transcript written on tmp.log. This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu) (/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu))) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.dfu)))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvips.def) (/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg))) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver (default): hdvips. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hdvips.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pdfmark.def (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 101. Writing index file tmp.idx (./tmp.aux) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) (/usr/share/texmf/tex/latex/lm/t1lmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: dvips (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./tmp.out) (./tmp.out) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texmf/tex/latex/lm/t1lmtt.fd) (/usr/share/texmf/tex/latex/lm/ts1lmr.fd) [2] [3]) [4] (./tmp.toc [5] [6] [7] [8] [9] [10]) [11] [12] Chapter 1. <../images/pda.eps> [1] <../images/pda2.eps> [2] <../images/arch.eps> [3] <../images/arch2.eps> [4] [5] (/usr/share/texmf/tex/latex/lm/ts1lmtt.fd) [6] [7] [8] [9] [10] [11] Excluding 'trinketfiles' comment. [12] [13] [14] Underfull \vbox (badness 3568) has occurred while \output is active [15] Underfull \hbox (badness 1635) in paragraph at lines 1096--1100 []\T1/lmr/m/n/10 Unidade cen-tral de pro-ces-sa-mento, con-sid-er-ada o [16] [17] [18] Chapter 2. [19] [20] Underfull \hbox (badness 1275) in paragraph at lines 1388--1394 \T1/lmr/m/n/10 quente-mente us-ado em nomes com mlti-plas palavras, como \T1/l mtt/m/n/10 meu_nome \T1/lmr/m/n/10 or [21] [22] [23] [24] [25] [26] Underfull \hbox (badness 2495) in paragraph at lines 1874--1874 [][][][][][][]\T1/lmr/m/n/8 Veja https://en.wikipedia.org/wiki/Mnemonic para um a de-scrio maior da palavra [27] Underfull \hbox (badness 1024) in paragraph at lines 1920--1924 \T1/lmr/m/n/10 palavras nos da-dos, pizza e fa-tia so nomes de var-iveis no- mnemnicos. [28] [29] [30] [31] [32] Chapter 3. [33] <../images/if.eps> [34] [35] <../images/if-else.eps> <../images/elif.eps> [36] <../images/nested.eps> [37] [38] [39] [40] [41] Underfull \hbox (badness 1253) in paragraph at lines 2763--2766 []\T1/lmr/m/n/10 Quando con-stru-mos uma ex-presso [42] [43] [44] Chapter 4. [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] Underfull \hbox (badness 1668) in paragraph at lines 3712--3714 []\T1/lmr/m/n/10 Pertence a uma se-qun-cia de nmeros que pare-cem ser Underfull \hbox (badness 10000) in paragraph at lines 3729--3731 Underfull \hbox (badness 10000) in paragraph at lines 3731--3733 Underfull \hbox (badness 10000) in paragraph at lines 3733--3736 [56] Underfull \hbox (badness 10000) in paragraph at lines 3736--3738 Underfull \hbox (badness 10000) in paragraph at lines 3762--3764 Underfull \hbox (badness 10000) in paragraph at lines 3764--3766 Underfull \hbox (badness 10000) in paragraph at lines 3766--3768 Underfull \hbox (badness 10000) in paragraph at lines 3768--3770 [57] [58] Chapter 5. [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 6. <../images/string.eps> [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] Underfull \hbox (badness 1681) in paragraph at lines 5219--5220 []\T1/lmr/bx/n/10 Exerccios 6: Leia a doc-u-men-tao dos mto-dos da string e m Underfull \hbox (badness 10000) in paragraph at lines 5219--5220 [][][]$\T1/lmr/bx/n/10 https : / / docs . python . org / library / stdtypes . h tml # string-[]methods$[][][][] Voc [79] [80] Chapter 7. <../images/arch.eps> [81] <../images/handle.eps> [82] [83] Excluding 'trinketfiles' comment. [84] Excluding 'trinketfiles' comment. [85] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [86] Excluding 'trinketfiles' comment. [87] Excluding 'trinketfiles' comment. [88] Excluding 'trinketfiles' comment. [89] [90] [91] [92] Chapter 8. [93] [94] [95] [96] [97] [98] [99] Excluding 'trinketfiles' comment. [100] <../images/list1.eps> [101] [102] [103] Overfull \hbox (781.70882pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 Antes de usar mtodos de listas e operadores, voc deve ler a documentao com cuidado e depois testar elas em um modo interativo. Os mtodos e os operadores que as listas compartilham com outras sequncia (como strings) so documentadas em:[] Overfull \hbox (304.48474pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 [docs.python.org/library/stdtypes.html#common-sequence-operati ons](https://docs.python.org/library/stdtypes.html#common-sequence-operations)[ ] Overfull \hbox (77.68518pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 Os mtodos e operadores que so apenas aplicadas em sequncias mutveis so documentadas em:[] Overfull \hbox (266.68481pt too wide) in paragraph at lines 6921--6921 []\T1/lmtt/m/n/9 [docs.python.org/library/stdtypes.html#mutable-sequence-types] (https://docs.python.org/library/stdtypes.html#mutable-sequence-types)[] [104] [105] [106] [107] [108] [109] [110] Chapter 9. [111] Overfull \hbox (52.89516pt too wide) in paragraph at lines 7412--7414 []\T1/lmr/bx/n/10 Exerccio 1: Faa o down-load de uma cpia do ar-quivo [][][ ]\T1/lmr/m/n/10 www.py4e.com/code3/words.txt[][][][] [112] [113] [114] Excluding 'trinketfiles' comment. Overfull \hbox (2.31575pt too wide) in paragraph at lines 7612--7615 \T1/lmr/m/n/10 aleatria. (o ar-quivo \T1/lmr/m/it/10 romeo.txt \T1/lmr/m/n/10 est disponvel em [][][]www.py4e.com/code3/romeo.txt[][][][]) [115] [116] [117] Excluding 'trinketfiles' comment. [118] Underfull \hbox (badness 4569) in paragraph at lines 7879--7880 []\T1/lmr/m/n/10 Analisar uma sada for- [119] [120] [121] [122] Chapter 10. [123] [124] [125] [126] [127] [128] Excluding 'trinketfiles' comment. [129] [130] [131] [132] [133] [134] Chapter 11. Excluding 'trinketfiles' comment. [135] Excluding 'trinketfiles' comment. Underfull \hbox (badness 6125) in paragraph at lines 8826--8826 []\T1/lmr/bx/n/14.4 Correspondncia de car-ac-teres em ex- Excluding 'trinketfiles' comment. [136] Excluding 'trinketfiles' comment. [137] Excluding 'trinketfiles' comment. Overfull \hbox (11.71548pt too wide) in paragraph at lines 8987--8993 []\T1/lmr/m/n/10 A ex-presso reg-u-lar cor-re-spon-de-ria duas vezes (csev@umi ch.edu and cwen@iupui.edu), Excluding 'trinketfiles' comment. [138] Excluding 'trinketfiles' comment. [139] [140] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [141] Excluding 'trinketfiles' comment. [142] Excluding 'trinketfiles' comment. [143] [144] [145] [146] [147] [148] Chapter 12. [149] <../images/socket.eps> [150] [151] [152] Underfull \hbox (badness 1221) in paragraph at lines 9924--9930 []\T1/lmr/m/n/10 podemos re-tar-dar nos-sas su-ces-si-vas chamadas de \T1/lmtt/ m/n/10 recv() \T1/lmr/m/n/10 de-sco-men-tando a [153] [154] [155] [156] [157] [158] [159] [160] [161] [162] [163] [164] Chapter 13. <../images/xml-tree.eps> [165] [166] [167] [168] [169] [170] <../images/soa.eps> [171] Underfull \hbox (badness 1132) in paragraph at lines 10963--10963 []\T1/lmr/bx/n/14.4 Aplicao 1: Web ser-vice de geocdigo [172] Overfull \hbox (12.01276pt too wide) in paragraph at lines 10991--10992 [][][][]$\T1/lmr/m/n/10 http : / / maps . googleapis . com / maps / api / geoco de / json ? address = Ann + Arbor % 2C + MI$[][][][] [173] [174] [175] [176] Excluding 'trinketfiles' comment. [177] Excluding 'trinketfiles' comment. [178] [179] [180] Chapter 14. [181] [182] <../images/program.eps> [183] <../images/program-oo.eps> [184] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> Underfull \vbox (badness 10000) has occurred while \output is active [185] [186] <../photos/cookie_cutter_flickr_Didriks.eps> [187] [188] [189] [190] [191] [192] Underfull \hbox (badness 1515) in paragraph at lines 12152--12155 []\T1/lmr/m/n/10 Um mtodo op-cional es-pe-cial-mente nomeado (\T1/lmtt/m/n/10 __del__\T1/lmr/m/n/10 ) que [193] [194] Chapter 15. [195] <../images/relational.eps> [196] <../images/cursor.eps> [197] [198] <../images/tracks.eps> [199] [200] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 201 [201] [202] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 203 [203] [204] Overfull \hbox (10.38487pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 15.6. RASTREANDO CONTAS NO TWITTER USANDO BANCO DE DADOS \T1/l mr/m/n/10 205 [205] [206] [207] [208] Underfull \vbox (badness 4353) has occurred while \output is active [209] [210] [211] [212] [213] [214] [215] Underfull \vbox (badness 10000) has occurred while \output is active [216] [217] [218] [219] [220] Chapter 16. <../images/google-map.eps> [221] [222] Overfull \hbox (78.23106pt too wide) has occurred while \output is active \T1/lmr/m/sl/10 16.1. CONSTRUINDO UM MAPA DO GOOGLE A PARTIR DE DADOS GEOCODIF ICADOS \T1/lmr/m/n/10 223 [223] <../images/pagerank.eps> [224] [225] [226] <../images/wordcloud.eps> Underfull \hbox (badness 1412) in paragraph at lines 13982--13990 \T1/lmr/m/n/10 chamado [www.gmane.org] (http://www.gmane.org). Este servio m uito [227] [228] [229] [230] <../images/mailorg.eps> (./tmp.appendix.tex [231] [232] Appendix A. [233] [234] [235] [236] Appendix B. [237]) (./tmp.ind [238] [239] [240] [241] [242] [243] [244] [245] [246]) Package createspace Info: added one page for calculations to make the page coun t even Package createspace Info: spine is about 40.4718pt wide Package createspace Info: book cost is 6.46USD (3.82USD for pro plan) (./tmp.aux) ) (see the transcript file for additional information) Output written on tmp.dvi (258 pages, 1331012 bytes). Transcript written on tmp.log. Output on x.pdf ======================================================== /root/pythonlearn Processing ZH_cn HTTP Server folder found HEAD is now at 2255c8e 3.2 逻辑运算符 Already up-to-date. mobi not generated - please install kindlegen This is XeTeX, Version 3.14159265-2.6-0.99992 (TeX Live 2015/Debian) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/xelatex/mathspec/mathspec.sty (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex) (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def)) (/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmr.fd)) (/usr/share/texlive/texmf-dist/tex/xelatex/xunicode/xunicode.sty (/usr/share/texmf/tex/latex/tipa/t3enc.def (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmss.fd)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/xelatex/xetex-def/xetex.def (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty))))) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))) (/usr/share/texlive/texmf-dist/tex/latex/xltxtra/xltxtra.sty (/usr/share/texlive/texmf-dist/tex/latex/realscripts/realscripts.sty) (/usr/share/texlive/texmf-dist/tex/latex/metalogo/metalogo.sty)) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-xetex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver: hxetex. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hxetex.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 102. (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/se-ascii-print.def) Writing index file tmp.idx No file tmp.aux. (/usr/share/texmf/tex/latex/tipa/t3cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: xetex (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) Package hyperref Warning: Rerun to get /PageLabels entry. (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmtt.fd) [2] LaTeX Font Warning: Font shape `EU1/NotoSerifCJKSC(0)/m/it' undefined (Font) using `EU1/NotoSerifCJKSC(0)/m/n' instead on input line 44. LaTeX Font Warning: Font shape `EU1/NotoSerifCJKSC(0)/m/sl' undefined (Font) using `EU1/NotoSerifCJKSC(0)/m/n' instead on input line 102 . [3]) [4] [5] [6] Chapter 1. Underfull \hbox (badness 10000) in paragraph at lines 138--139 \EU1/NotoSerifCJKSC(0)/m/sl/10 编程是一项极具创造性和有益的活动。编程的原因很多,大到为谋生去解决一个困难的数据分析 Underfull \hbox (badness 10000) in paragraph at lines 138--139 \EU1/NotoSerifCJKSC(0)/m/sl/10 问题,小到因为帮助别人解决一个问题而获得快乐。本书假定\EU1/NotoSerifCJKSC(0 )/bx/n/10 每个人\EU1/NotoSerifCJKSC(0)/m/sl/10 都需要知道怎样编程,一旦 Underfull \hbox (badness 10000) in paragraph at lines 140--142 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们的日常生活中计算机无处不在,大到笔记本电脑,小到手机。这些计算机可视为帮助我们打 Underfull \hbox (badness 10000) in paragraph at lines 140--142 \EU1/NotoSerifCJKSC(0)/m/sl/10 理很多事情的“私人助理”。 在本质上,如今计算机硬件的构建,就是在不断地问我们一个问 <../images/pda.eps> Underfull \hbox (badness 10000) in paragraph at lines 149--151 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序员在硬件之上添加了操作系统和应用程序,我们手中拿到的成品是一个很有用的个人数字助 Underfull \hbox (badness 10000) in paragraph at lines 152--153 []\EU1/NotoSerifCJKSC(0)/m/sl/10 计算机运行速度很快并拥有大量的内存,如果我们学会了与计算机沟通的语言,告诉计算机我们 Underfull \hbox (badness 10000) in paragraph at lines 152--153 \EU1/NotoSerifCJKSC(0)/m/sl/10 想要它“接下来做什么”,那么它就会对我们有非常大的帮助。我们能让计算机根据我们的意愿 Underfull \hbox (badness 10000) in paragraph at lines 152--153 \EU1/NotoSerifCJKSC(0)/m/sl/10 完成一些重复性工作。有趣的是,计算机能够胜任并且做得很好的工作通常是那些让我们人类感 Underfull \hbox (badness 10000) in paragraph at lines 154--155 []\EU1/NotoSerifCJKSC(0)/m/sl/10 例如,阅读本章的前三段,找出出现频率最高的词是哪一个,以及这个词总共出现了多少次。尽 Underfull \hbox (badness 10000) in paragraph at lines 154--155 \EU1/NotoSerifCJKSC(0)/m/sl/10 管你能在短时间内阅读和理解这些文字,但要对它们进行统计就很痛苦了,因为这类问题不是人 Underfull \hbox (badness 10000) in paragraph at lines 154--155 \EU1/NotoSerifCJKSC(0)/m/sl/10 的大脑擅长解决的。计算机恰好相反,它很难像人一样阅读和理解一段文字,但是对文字进行统 Underfull \hbox (badness 10000) in paragraph at lines 166--167 []\EU1/NotoSerifCJKSC(0)/m/sl/10 事实上,计算机擅长做人类不擅长做的事,这就是为什么你需要熟练掌握一门“与计算机对话的 Underfull \hbox (badness 10000) in paragraph at lines 166--167 \EU1/NotoSerifCJKSC(0)/m/sl/10 语言”。一旦学会这门新语言,你就可以将枯燥的工作指派给你的搭档(计算机)了。留出更多 [1] Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 这本书不是为专业程序员准备的,专业编程是份非常有前途的工作,可算是物质与精神双丰收。 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 为他人创造有用的、简洁的与智能的程序是一项创新性很强的活动。你的计算机或PDA通常安装 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 了来自许多不同程序员开发的各种软件,每一款软件都想要吸引你的注意力和兴趣。它们尽其所 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 能来满足你的需求,在使用过程中让你获得优质的用户体验。在某些情况下,当你选择了一个软 <../images/pda2.eps> Underfull \hbox (badness 10000) in paragraph at lines 180--181 []\EU1/NotoSerifCJKSC(0)/m/sl/10 本书的写作初衷不是为了赚钱或者取悦最终用户,而是让我们能更好地处理生活中的数据与信 Underfull \hbox (badness 10000) in paragraph at lines 180--181 \EU1/NotoSerifCJKSC(0)/m/sl/10 息。开始学编程,你既是程序员,也是你所写程序的最终用户。当你获得了程序员的技能,如果 Underfull \hbox (badness 10000) in paragraph at lines 186--187 \EU1/NotoSerifCJKSC(0)/m/sl/10 学习这种向计算机发指令来开发软件的语言之前,我们需要了解一下计算机的构成。如果拆开你 <../images/arch.eps> Underfull \hbox (badness 10000) in paragraph at lines 198--202 \EU1/NotoSerifCJKSC(0)/m/sl/10 的组件。如果计算机处理速度达到3.0 GHz,这就意味着CPU每秒会提问30亿次“下一步 [2] Underfull \hbox (badness 8189) in paragraph at lines 202--205 []\EU1/NotoSerifCJKSC(0)/bx/n/10 主存储器\EU1/NotoSerifCJKSC(0)/m/sl/10 (Main Memor y)用来存储CPU即刻需要的信息。主存储器的速度几乎与CPU Underfull \hbox (badness 10000) in paragraph at lines 205--208 []\EU1/NotoSerifCJKSC(0)/bx/n/10 辅助存储器\EU1/NotoSerifCJKSC(0)/m/sl/10 (Secondary Memory)也是用来存储信息的,但是它比主存储器速度慢很 Underfull \hbox (badness 10000) in paragraph at lines 205--208 \EU1/NotoSerifCJKSC(0)/m/sl/10 多。辅助存储器的优点是,它可以在计算机不带电情况下存储信息。常见辅助存储器包括 Underfull \hbox (badness 10000) in paragraph at lines 211--212 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如今大多数计算机之间还建立了\EU1/NotoSerifCJKSC(0)/bx/n/10 网 络连接\EU1/NotoSerifCJKSC(0)/m/sl/10 ,通过网络获取信息。我们可以将网络看成信息 Underfull \hbox (badness 10000) in paragraph at lines 211--212 \EU1/NotoSerifCJKSC(0)/m/sl/10 存储与检索速度很慢的一个空间,而且不总是那么稳定。从某种意义上讲,网络是速度很 Underfull \hbox (badness 10000) in paragraph at lines 214--215 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这些组件的工作原理细节最好还是交给计算机厂商吧。这里只是为了掌握一些术语,在编程时方 Underfull \hbox (badness 10000) in paragraph at lines 216--217 []\EU1/NotoSerifCJKSC(0)/m/sl/10 作为一名程序员,你的工作就是利用并协调这些资源来解决问题和分析数据。作为程序员,你主 Underfull \hbox (badness 10000) in paragraph at lines 216--217 \EU1/NotoSerifCJKSC(0)/m/sl/10 要与CPU打交道,告诉它下一步做什么。有时,你要告诉CPU调用主存储器、辅助存储器、网络 <../images/arch2.eps> Underfull \hbox (badness 10000) in paragraph at lines 224--225 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你需要成为回答CPU“下一步做什么”的人。但把你压缩到5毫米高,塞入计算机,让你每秒发 Underfull \hbox (badness 10000) in paragraph at lines 224--225 \EU1/NotoSerifCJKSC(0)/m/sl/10 出3亿次命令,想必这样会很不舒服。所以,你必须提前写好你的指令。我们把这些存储下来的指 Underfull \hbox (badness 10000) in paragraph at lines 228--229 \EU1/NotoSerifCJKSC(0)/m/sl/10 在本书其他章节中,我们尝试把你培养成长为一名理解编程艺术并具备一定编程能力的人。最 Underfull \hbox (badness 10000) in paragraph at lines 228--229 \EU1/NotoSerifCJKSC(0)/m/sl/10 后,你会成为一个\EU1/NotoSerifCJKSC(0)/bx/n/10 程序员\EU1/N otoSerifCJKSC(0)/m/sl/10 ,也许不是专业的。但至少你掌握了如何看待数据(信息)分析问题, Underfull \hbox (badness 10000) in paragraph at lines 239--240 []\EU1/NotoSerifCJKSC(0)/m/sl/10 其次,学会讲故事。在写故事的过程中,通过文字和句式的组合,向读者传达思想。编故 Underfull \hbox (badness 10000) in paragraph at lines 239--240 \EU1/NotoSerifCJKSC(0)/m/sl/10 事的艺术与能力通过写作与反馈得以提高。在编程中,程序即故事,待解决的问题即传达 [3] Underfull \hbox (badness 10000) in paragraph at lines 242--243 []\EU1/NotoSerifCJKSC(0)/m/sl/10 当掌握一种编程语言(如Python)之后,你会发现学习其他编程语言,如JavaScript或 者C++, Underfull \hbox (badness 10000) in paragraph at lines 242--243 \EU1/NotoSerifCJKSC(0)/m/sl/10 就会容易许多。虽然新的编程语言拥有很多不同的词汇和语法,但你已经学会解决问题的技能, Underfull \hbox (badness 10000) in paragraph at lines 244--245 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python的词汇和句式上手很快,但要能写出一些连贯的程序来解决一个全新的问题,尚需时日磨 Underfull \hbox (badness 10000) in paragraph at lines 244--245 \EU1/NotoSerifCJKSC(0)/m/sl/10 练。讲授编程就像讲授写作一样。先对程序进行阅读和解释,然后编写简单的程序,接着逐步编 Underfull \hbox (badness 10000) in paragraph at lines 244--245 \EU1/NotoSerifCJKSC(0)/m/sl/10 写更复杂的程序。当达到一定水平,你就形成了自己的编程风格,自然而然地去应对问题,通过 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 与人类语言不同的是,Python的词汇数量实际上相当少。我们称这些“词汇”为“保留字”,它 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 们是Python中具有特殊意义的词汇。对于Python来说,程序中出现的这些词汇,它们有且仅有 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 一个含义。等下你在编程时,你自己定义的词汇称为\EU1/NotoSerifCJKSC(0)/bx /n/10 变量\EU1/NotoSerifCJKSC(0)/m/sl/10 。变量命名非常自由,但有一点,你不 Underfull \hbox (badness 10000) in paragraph at lines 254--255 []\EU1/NotoSerifCJKSC(0)/m/sl/10 从某种意义上讲,我们训练一只狗时会使用一些特殊的词汇,比如“坐下”、“停下”和“拿 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/m/sl/10 来”。跟狗说话时不用这些保留字的话,它们就会傻傻地看着你,直到你对它说出保留字。举 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/m/sl/10 例来说,“我希望更多的人通过散步来促进健康。”,而大多数狗听到的可能是,“吧啦吧啦\EU1/No toSerifCJKSC(0)/bx/n/10 散 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/bx/n/10 步\EU1/NotoSerifCJKSC(0)/m/sl/10 吧啦吧啦。”这是因为在狗的语言中 “散步”是保留字。很多人可能觉得人类和猫之间的语言 Underfull \hbox (badness 10000) in paragraph at lines 272--273 []\EU1/NotoSerifCJKSC(0)/m/sl/10 后续章节会介绍这些保留字及它们的适用场合。现在,我们只关注怎么与Python\EU1/Not oSerifCJKSC(0)/bx/n/10 对话\EU1/NotoSerifCJKSC(0)/m/sl/10 (就像人跟 Underfull \hbox (badness 10000) in paragraph at lines 285--286 \EU1/NotoSerifCJKSC(0)/m/sl/10 我们已经掌握了Python的一个词汇与一个简单语句,接下来需要了解如何与Python对话,测试 [4] Underfull \hbox (badness 10000) in paragraph at lines 287--289 []\EU1/NotoSerifCJKSC(0)/m/sl/10 与Python对话之前,必须先在计算机上安装Python软件,学会如何启动Python。本章 包含许多 Underfull \hbox (badness 10000) in paragraph at lines 287--289 \EU1/NotoSerifCJKSC(0)/m/sl/10 细节,建议查看 [][]www.py4e.com[][],网站上有Python在Mac和Wind ows系统上配置和启动的详 Underfull \hbox (badness 10000) in paragraph at lines 287--289 \EU1/NotoSerifCJKSC(0)/m/sl/10 细说明和视频演示。当打开终端或者命令行窗口,输入python,Python解释器会以交互模式启 Underfull \hbox (badness 10000) in paragraph at lines 301--302 []\EU1/NotoSerifCJKSC(0)/m/sl/10 ‘>>>’提示符表示Python解释器在询问,“你希望我下一步做什么?”。Python已经准 备好与 Underfull \hbox (badness 10000) in paragraph at lines 303--304 []\EU1/NotoSerifCJKSC(0)/m/sl/10 举个例子,你对Python语言最简单的词汇或句子一无所知,想要使用宇航员的标准用语(喊 Underfull \hbox (badness 10000) in paragraph at lines 316--317 []\EU1/NotoSerifCJKSC(0)/m/sl/10 事情进展好像并不顺利。除非你反应迅速,否则这个星球的居民可能会拿长矛刺向你,向你吐口 Underfull \hbox (badness 10000) in paragraph at lines 346--347 []\EU1/NotoSerifCJKSC(0)/m/sl/10 上面的对话一直进展顺利,只到你在使用Python语言的时候犯了一个非常小的错误,Python 就 Underfull \hbox (badness 10000) in paragraph at lines 348--349 []\EU1/NotoSerifCJKSC(0)/m/sl/10 此时,你应该意识到,Python虽然非常复杂与强大,但在语法上非常挑剔,并\EU1/Noto SerifCJKSC(0)/bx/n/10 不\EU1/NotoSerifCJKSC(0)/m/sl/10 那么智能。对话 [5] Underfull \hbox (badness 10000) in paragraph at lines 350--351 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在某种意义上,当你使用别人写的程序时,Python就在你和其他程序员之间充当中间人。 Underfull \hbox (badness 10000) in paragraph at lines 350--351 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python是程序编写者将对话进行下去的一种方式。在阅读完短短几章之后,你将成为Python Underfull \hbox (badness 10000) in paragraph at lines 352--353 []\EU1/NotoSerifCJKSC(0)/m/sl/10 结束与Python解释器的第一次谈话之前,你可能要知道如何正确地与这个星球的居民说“再 Underfull \hbox (badness 2478) in paragraph at lines 369--371 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你会发现前两个错误提示是不同的。由于 \EU1/NotoSerifCJKSC(0)/bx/n /10 if \EU1/NotoSerifCJKSC(0)/m/sl/10 是保留字,Python看到保留字会认为我们想说些什 Underfull \hbox (badness 10000) in paragraph at lines 377--378 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python是一种\EU1/NotoSerifCJKSC(0)/bx/n/10 高级语言\EU1 /NotoSerifCJKSC(0)/m/sl/10 ,旨在较为方便地让人类进行读写,让计算进行读取与处理。其他高级语 Underfull \hbox (badness 10000) in paragraph at lines 377--378 \EU1/NotoSerifCJKSC(0)/m/sl/10 言包括:Java、C++、PHP、Ruby、Basic、Perl以及JavaScript等。CP U里的硬件并不能理解 Underfull \hbox (badness 10000) in paragraph at lines 379--380 []\EU1/NotoSerifCJKSC(0)/m/sl/10 CPU能理解的语言称之为\EU1/NotoSerifCJKSC(0)/bx/n/10 机器语 言\EU1/NotoSerifCJKSC(0)/m/sl/10 。机器语言非常简单,坦白讲,编写起来非常无聊。它全部由 Underfull \hbox (badness 10000) in paragraph at lines 389--390 []\EU1/NotoSerifCJKSC(0)/m/sl/10 虽然机器语言表面看起来很简单,只有0和1,但它的语法比Python复杂得多。所以,很少有程序 Underfull \hbox (badness 10000) in paragraph at lines 389--390 \EU1/NotoSerifCJKSC(0)/m/sl/10 员用机器语言编程。相反,借助各种翻译器,程序员可以编写像Python或JavaScript这样的 高级 Underfull \hbox (badness 10000) in paragraph at lines 391--392 []\EU1/NotoSerifCJKSC(0)/m/sl/10 因为机器语言依附于计算机硬件,所以不能在不同类型硬件之间移植。使用高级语言编写的程序 Underfull \hbox (badness 10000) in paragraph at lines 391--392 \EU1/NotoSerifCJKSC(0)/m/sl/10 可以在不同的计算机之间移植,通过在另一台计算机上使用不同的编译器,或者重新编译代码, Underfull \hbox (badness 10000) in paragraph at lines 395--396 []\EU1/NotoSerifCJKSC(0)/bx/n/10 解释器\EU1/NotoSerifCJKSC(0)/m/sl/10 读取程序员所写程序的源代 码,解析源代码并实时解释指令。Python是一种解释器。当交 Underfull \hbox (badness 10000) in paragraph at lines 395--396 \EU1/NotoSerifCJKSC(0)/m/sl/10 互式执行Python时,输入一行Python语句,Python就会立即处理它,并做好准备让我们输 入下 [6] Underfull \hbox (badness 10000) in paragraph at lines 397--398 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python语句中有一些地方会告诉Python,你想要Python记住等下会用到的一些数据。 这时就 Underfull \hbox (badness 10000) in paragraph at lines 397--398 \EU1/NotoSerifCJKSC(0)/m/sl/10 需要为数据挑选一个名称来记住它,这样之后就可以通过这个名称来获取对应的数据了。我们使 Underfull \hbox (badness 10000) in paragraph at lines 411--416 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在这个例子中,我们让Python记住数值6,并将6赋值给变量 \EU1/NotoSerifC JKSC(0)/bx/n/10 x\EU1/NotoSerifCJKSC(0)/m/sl/10 ,以便后续使用。为了确认 Underfull \hbox (badness 10000) in paragraph at lines 411--416 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python已经记住这个数值,使用 \EU1/NotoSerifCJKSC(0)/bx/n/10 print \EU1/NotoSerifCJKSC(0)/m/sl/10 命令打印它。接下来,我们让Python获取变量 \EU1/NotoSerifCJK SC(0)/bx/n/10 x \EU1/NotoSerifCJKSC(0)/m/sl/10 的 Underfull \hbox (badness 10000) in paragraph at lines 417--418 []\EU1/NotoSerifCJKSC(0)/m/sl/10 尽管我们一次只输入了一行命令,但Python将其视为一个语句序列,后面的语句可以获取前面语 Underfull \hbox (badness 10000) in paragraph at lines 417--418 \EU1/NotoSerifCJKSC(0)/m/sl/10 句的数据。四句组成的段落以一种有逻辑的和有意义的顺序编写,这就是我们写出的第一个简单 Underfull \hbox (badness 10000) in paragraph at lines 419--420 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如上所示,解释器的本质是进行交互式对话。而编译器需要将整个程序放在一个文件中,将高层 Underfull \hbox (badness 10000) in paragraph at lines 419--420 \EU1/NotoSerifCJKSC(0)/m/sl/10 次的源代码翻译成低层次的机器语言,然后编译器将生成的机器语言放到一个文件中以便后续执 Underfull \hbox (badness 10000) in paragraph at lines 421--422 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如果你使用Windows系统,这些可执行的机器语言程序通常带有“.exe”或“.dll”后缀 ,分别 Underfull \hbox (badness 10000) in paragraph at lines 421--422 \EU1/NotoSerifCJKSC(0)/m/sl/10 代表这是“可执行的”和“动态可加载库”。在Linux和Mac中没有这样的后缀来明确表示文件 Underfull \hbox (badness 10000) in paragraph at lines 436--437 []\EU1/NotoSerifCJKSC(0)/m/sl/10 机器语言的读写并不容易,好在借助\EU1/NotoSerifCJKSC(0)/bx/n/10 解释器\EU1/NotoSerifCJKSC(0)/m/sl/10 和\EU1/NotoSerifCJKSC(0)/bx/n/10 编译器\EU1/Noto SerifCJKSC(0)/m/sl/10 ,能够使用Python或C这样的高级语言编写 Underfull \hbox (badness 10000) in paragraph at lines 438--439 []\EU1/NotoSerifCJKSC(0)/m/sl/10 通过对解释器与编译器的讨论,你应该对Python解释器本身有了一些了解。你应该想问那它又是 Underfull \hbox (badness 10000) in paragraph at lines 440--441 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python的解释器是用C语言编写的。你可以访问http://www.python.org网 站,查看Python解 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 释器的源代码,如有你有意愿改造这些源代码也是可以的。Python本身就是一个程序,它被编 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 译成机器代码。当你(或计硬件供应商)在计算机上安装了Python,实际是上将一份编译好的 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python程序的机器代码拷贝到你的计算机系统。在Windows中,Python可执行的机器代码 很可 Underfull \hbox (badness 10000) in paragraph at lines 448--449 []\EU1/NotoSerifCJKSC(0)/m/sl/10 要成为一名Python程序员,你并不一定的需要知道上述这些。但在一开始,花一些时间解释这些 [7] Underfull \hbox (badness 10000) in paragraph at lines 452--453 \EU1/NotoSerifCJKSC(0)/m/sl/10 在Python解释器中输入命令是体验Python功能非常好的方式,但不建议采用这种方式来解决复 Underfull \hbox (badness 10000) in paragraph at lines 454--455 []\EU1/NotoSerifCJKSC(0)/m/sl/10 编程时,我们在文本编辑器里把Python指令写到一个文件里,这个文件称为\EU1/NotoS erifCJKSC(0)/bx/n/10 脚本\EU1/NotoSerifCJKSC(0)/m/sl/10 。一般而言, Underfull \hbox (badness 10000) in paragraph at lines 458--459 []\EU1/NotoSerifCJKSC(0)/m/sl/10 要执行脚本,你必须告诉Python解释器脚本文件的名称。在Unix或Windows命令窗口中 ,你可 Underfull \hbox (badness 10000) in paragraph at lines 470--472 []\EU1/NotoSerifCJKSC(0)/m/sl/10 “csev$”是操作系统提示符,“cat hello.py”是查看“hello.py”文件的 内容,其中包含了一 Underfull \hbox (badness 10000) in paragraph at lines 473--474 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们调用Python解释器,告诉它从“hello.py”文件中读取源代码,而不是用命令行交互 式一行 Underfull \hbox (badness 6758) in paragraph at lines 475--477 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你会发现,没有必要在Python程序文件末尾加上 \EU1/NotoSerifCJKSC(0 )/bx/n/10 quit()\EU1/NotoSerifCJKSC(0)/m/sl/10 。Python在读取源代码文件时,到达文 Underfull \hbox (badness 10000) in paragraph at lines 480--483 \EU1/NotoSerifCJKSC(0)/m/sl/10 是一个程序,不过只是一行代码的程序罢了,作用并不大。不过从最严格的定义上来说,它是一 Underfull \hbox (badness 10000) in paragraph at lines 484--485 []\EU1/NotoSerifCJKSC(0)/m/sl/10 思考一个可以被程序解决的问题,然后看一看解决这个问题的程序,这可能是理解程序的最简单 Underfull \hbox (badness 10000) in paragraph at lines 486--487 []\EU1/NotoSerifCJKSC(0)/m/sl/10 假设,你想对Facebook上的发帖进行社会计算方面的研究,并且你感兴趣的问题是一系列帖子 Underfull \hbox (badness 10000) in paragraph at lines 486--487 \EU1/NotoSerifCJKSC(0)/m/sl/10 中最常用的词汇是什么。你可以打印出这些发帖,然后通读文本,从中寻找最常见的词,但这需 Underfull \hbox (badness 10000) in paragraph at lines 486--487 \EU1/NotoSerifCJKSC(0)/m/sl/10 要很长时间而且很容易出错。你也可以通过编写Python程序来快速且准确地处理这个任务,这样 Underfull \hbox (badness 10000) in paragraph at lines 488--489 []\EU1/NotoSerifCJKSC(0)/m/sl/10 举例来说,阅读以下内容,这是关于一个小丑和一辆车的文本,找出出现次数最多的单词,并统 Underfull \hbox (badness 10000) in paragraph at lines 497--498 []\EU1/NotoSerifCJKSC(0)/m/sl/10 然后想象一下,你将要做的是对数百万行文本来完成这个统计任务会。坦率地说,学习Python, Underfull \hbox (badness 10000) in paragraph at lines 499--500 []\EU1/NotoSerifCJKSC(0)/m/sl/10 一个更好的消息是,我已经写了一个简单的程序来在文本文件中找到最常见的单词。我编写并测 [8] Excluding 'trinketfiles' comment. Underfull \hbox (badness 10000) in paragraph at lines 529--532 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你甚至不需要知道Python就可以使用这个程序。你需要通读到本书第10章来完全理解所用到的 Underfull \hbox (badness 10000) in paragraph at lines 529--532 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python编程技术。你现在是最终用户,只需使用这个程序,你就会惊叹于它的聪明,感叹如何 Underfull \hbox (badness 10000) in paragraph at lines 529--532 \EU1/NotoSerifCJKSC(0)/m/sl/10 让你摆脱繁重的人工查看。你只需输入代码,保存到 \EU1/NotoSerifCJKSC(0)/b x/n/10 words.py \EU1/NotoSerifCJKSC(0)/m/sl/10 文件并执行它,或者你也可以 Underfull \hbox (badness 10000) in paragraph at lines 535--536 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这个示例充分体现了Python以及这门语言在你(最终用户)与我(程序员)之间扮演的中间人 Underfull \hbox (badness 10000) in paragraph at lines 535--536 \EU1/NotoSerifCJKSC(0)/m/sl/10 角色。通过Python这门通用语言,我们可以交流有用的指令序列(即程序),这样任何人在电 Underfull \hbox (badness 10000) in paragraph at lines 535--536 \EU1/NotoSerifCJKSC(0)/m/sl/10 脑里面安装了Python的人都可以使用它。实际上,交流双方并不是\EU1/NotoSerifCJ KSC(0)/bx/n/10 跟Python\EU1/NotoSerifCJKSC(0)/m/sl/10 交流,而是\EU1/NotoSerifCJKSC(0 )/bx/n/10 通过 Underfull \hbox (badness 10000) in paragraph at lines 539--540 \EU1/NotoSerifCJKSC(0)/m/sl/10 在接下来的几章中,我们将会学习更多Python的词汇、句子结构,段落结构,和故事结构。我们 Underfull \hbox (badness 10000) in paragraph at lines 541--542 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序的构造包含一些低层次的概念模式。这些构造模式不仅仅针对Python程序,而是每一种编程 Underfull \hbox (badness 10000) in paragraph at lines 546--548 []\EU1/NotoSerifCJKSC(0)/m/sl/10 从 “外部世界”获取数据,可以是从文件中读取数据,或者从某种传感器,比如麦克风或 Underfull \hbox (badness 10000) in paragraph at lines 549--550 []\EU1/NotoSerifCJKSC(0)/m/sl/10 将程序的结果显示在屏幕上,或保存在一个文件,或写入一个设备,如扬声器来播放音乐 [9] Underfull \hbox (badness 10000) in paragraph at lines 560--561 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这听起来太简单了以至于大家不会相信,然而事实上并不那么简单。这就好比,走路很简单吧, Underfull \hbox (badness 10000) in paragraph at lines 560--561 \EU1/NotoSerifCJKSC(0)/m/sl/10 只要“把一只脚放在另一只脚前面”就好了。编程的“艺术”就是不断地编织、组合这些基本元 Underfull \hbox (badness 10000) in paragraph at lines 566--567 \EU1/NotoSerifCJKSC(0)/m/sl/10 从前面与Python的对话中可以看到,我们编写Python代码时必须非常精确,很小的偏差和错误 Underfull \hbox (badness 10000) in paragraph at lines 568--569 []\EU1/NotoSerifCJKSC(0)/m/sl/10 初学者通常认为,Python不能容忍犯错,给人留下刻薄、可恨与粗暴的印象。虽然Python看 Underfull \hbox (badness 10000) in paragraph at lines 568--569 \EU1/NotoSerifCJKSC(0)/m/sl/10 上去与每个人一样,但它知道每个人的个性并且对他们持有一种怨恨的态度。由于这种怨恨, Underfull \hbox (badness 10000) in paragraph at lines 596--597 []\EU1/NotoSerifCJKSC(0)/m/sl/10 与Python争论并没什么好处。它只是一个工具,没有情感,并且它很高兴随时准备为你服务。它 Underfull \hbox (badness 10000) in paragraph at lines 596--597 \EU1/NotoSerifCJKSC(0)/m/sl/10 的错误信息看起来很苛刻,但这只是Python在寻求帮助。Python看到了你输入的内容,它只是 Underfull \hbox (badness 10000) in paragraph at lines 598--601 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python更像一只狗,无条件爱你,只能理解很少的关键词,一直用它那甜美的表情(\EU1/l mtt/m/n/10 >>>\EU1/NotoSerifCJKSC(0)/m/sl/10 )看着 Underfull \hbox (badness 1360) in paragraph at lines 598--601 \EU1/NotoSerifCJKSC(0)/m/sl/10 你,等待你输入一些它能理解的东西。当Python说道:“SyntaxError: invalid syntax”(语 Underfull \hbox (badness 10000) in paragraph at lines 598--601 \EU1/NotoSerifCJKSC(0)/m/sl/10 法错误:无效语法),它只是在摇着尾巴说:“你似乎说了什么,但我不太明白,不过希望你继 Underfull \hbox (badness 10000) in paragraph at lines 607--608 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这是你遇到的第一种错误,很容易解决。语法错误意味着,你违反了Python的“语 Underfull \hbox (badness 10000) in paragraph at lines 607--608 \EU1/NotoSerifCJKSC(0)/m/sl/10 法”规则。Python会尽其所能地指出它不能理解的那一行和相应字符。语法错误唯一棘 Underfull \hbox (badness 10000) in paragraph at lines 607--608 \EU1/NotoSerifCJKSC(0)/m/sl/10 手的是,有时候程序中需要修改的错误可能位于Python\EU1/NotoSerifCJKSC(0 )/bx/n/10 指出\EU1/NotoSerifCJKSC(0)/m/sl/10 的困惑的位置之前。所以, [10] Underfull \hbox (badness 10000) in paragraph at lines 609--610 []\EU1/NotoSerifCJKSC(0)/m/sl/10 逻辑错误是在程序没有语法错误的前提下,语句顺序或语句关系存在错误。逻辑错误 Underfull \hbox (badness 10000) in paragraph at lines 609--610 \EU1/NotoSerifCJKSC(0)/m/sl/10 的一个形象例子是,“打开水瓶喝水,把它放到书包里,走到图书馆,然后再把水瓶盖 Underfull \hbox (badness 10000) in paragraph at lines 611--612 []\EU1/NotoSerifCJKSC(0)/m/sl/10 语义错误是程序的语法完美且逻辑正确,但就是有一个错误。也就是说,程序完全 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 正确,但它不能做到你\EU1/NotoSerifCJKSC(0)/bx/n/10 想要\EU1/ NotoSerifCJKSC(0)/m/sl/10 它做的事。一个简单的例子,如果你给人指路怎么去一家餐 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 馆,“…当你走到有加油站的十字路口时,向左转,继续走一英里,你的左手边有一栋红 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 色建筑,餐馆就在那儿。”过了很长时间,你的朋友打来电话,他们正在一个农场,在一 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 个谷仓附件转悠,并没有看到餐馆的标志。”然后,你问:“你们在加油站左转还是右转 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 了?”他们说:“完全是按你指示的方向走,我还写到纸上,在加油站左转,继续走一英 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 里”。然后,你说:“非常抱歉,虽然我的方向指示在语法上没错,但其中悲催地包含了 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 当阅读本书时,刚开始如果遇到某些概念不能很好理解时,不要担心。小时候学说话时,头几年 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 只能发出一些可爱的喃喃之音,这不是什么问题。花6个月的时间,从能说简单的词汇发展到能表 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 达简单的句子;再用5到6年的时间,从句子上升到段落;再过几年能依据自身兴趣,独立写出一 Underfull \hbox (badness 10000) in paragraph at lines 622--623 []\EU1/NotoSerifCJKSC(0)/m/sl/10 不过学习一门新语言需要花时间去吸收和理解,然后才能做到运用自如。因此可能会给你带来 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 一些疑惑,因为我们会定义很多小的片段,它们之后会拼接成一副全景。而为了尝试让你看到 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 全景,我们会一再提及一些片段。由于本书的编写是线性的,并且如果你参加一门课,其推进 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 方式是线性的话,你完全也可以以一种非线性的方式去学习。可以前后来回翻阅,蜻蜓点水式的 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 阅读,可以浏览一些有难度的内容,但并不一定要理解所有的细节,这样有助于更好的理解编程 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 之“道”。尽管你正在阅读的地方看起来可能有些费解,但通过回顾之前的内容,或者重做之前 Underfull \hbox (badness 10000) in paragraph at lines 624--625 []\EU1/NotoSerifCJKSC(0)/m/sl/10 通常在学习第一门编程语言时,会有一些值得欢呼雀跃的时刻。这就像你在用斧凿精心雕琢一块 Underfull \hbox (badness 10000) in paragraph at lines 626--627 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如果有些事看起来特别困难,通宵熬夜耗着是没有意义的。休息一下,打个盹,吃点零食,向某 Underfull \hbox (badness 10000) in paragraph at lines 626--627 \EU1/NotoSerifCJKSC(0)/m/sl/10 人(或许是你的狗)倾诉下你当下遇到的问题,然后,以全新的眼光回过头来再看这个问题。我 Underfull \hbox (badness 10000) in paragraph at lines 626--627 \EU1/NotoSerifCJKSC(0)/m/sl/10 保证,一旦你从本书中学会了编程的概念,回头看时,你会发现编程真的是非常简单、优雅的, Underfull \hbox (badness 10000) in paragraph at lines 635--637 []\EU1/NotoSerifCJKSC(0)/m/sl/10 所有计算机的心脏。我们编写的软件都由它来执行,也称为“CPU”或者“处理 [11] Underfull \hbox (badness 10000) in paragraph at lines 669--671 []\EU1/NotoSerifCJKSC(0)/m/sl/10 存储程序和数据,电源关闭后数据不会丢失。辅助存储器的速度通常比主存储器 [12] [13] [14] Chapter 2. Overfull \hbox (30.1727pt too wide) in paragraph at lines 753--756 \EU1/NotoSerifCJKSC(0)/bx/n/10 值 \EU1/NotoSerifCJKSC(0)/m/sl/10 是程序要处理的一个基本要素,如 一个字母或一个数字。目前为止,我们接触到的值有\EU1/lmtt/m/n/10 1\EU1/NotoSerifCJKSC(0)/m/sl/10 、\EU1/l mtt/m/n/10 2\EU1/NotoSerifCJKSC(0)/m/sl/10 和“Hello, Underfull \hbox (badness 10000) in paragraph at lines 757--759 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这些值属于不同的\EU1/NotoSerifCJKSC(0)/bx/n/10 类型\EU1/ NotoSerifCJKSC(0)/m/sl/10 :2是整数,“Hello, World!”是\EU1/NotoSerifCJKSC(0)/bx/n/10 字符串\EU1/NotoSerifCJKSC(0)/m/sl/10 (因包含一“串”字母而得 Underfull \hbox (badness 10000) in paragraph at lines 783--784 []\EU1/NotoSerifCJKSC(0)/m/sl/10 显而易见,字符串属于\EU1/lmtt/m/n/10 str\EU1/NotoSerifCJ KSC(0)/m/sl/10 类型,整数属于\EU1/lmtt/m/n/10 int\EU1/NotoSerifCJKSC(0)/m/sl/10 类型。需要注 意的是,带小数点的数字使用\EU1/NotoSerifCJKSC(0)/bx/n/10 浮 Underfull \hbox (badness 10000) in paragraph at lines 795--796 []\EU1/NotoSerifCJKSC(0)/m/sl/10 那么,像’17’和’3.2’这种属于哪种类型呢?看起来像数字,但它们和字符串一样被放在单引 Underfull \hbox (badness 10000) in paragraph at lines 810--811 []\EU1/NotoSerifCJKSC(0)/m/sl/10 输入较大的数字时,你可能会在每三个数字之间加一个逗号,例如,\EU1/lmtt/m/n/10 1,000,000\EU1/NotoSerifCJKSC(0)/m/sl/10 。在Python中 [15] Underfull \hbox (badness 10000) in paragraph at lines 819--820 []\EU1/NotoSerifCJKSC(0)/m/sl/10 不过,这根本不是我们想要的!Python把\EU1/lmtt/m/n/10 1,000,00 0\EU1/NotoSerifCJKSC(0)/m/sl/10 解释成了一个逗号分隔的整数序列,它把 Underfull \hbox (badness 10000) in paragraph at lines 823--824 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这是我们遇到的第一个语义错误例子:代码成功运行,没有任何错误信息,但是它并没有做“正 Underfull \hbox (badness 10000) in paragraph at lines 842--844 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这个例子列举了三个赋值语句。第一条语句将字符串赋值给变量\EU1/lmtt/m/n/10 m essage\EU1/NotoSerifCJKSC(0)/m/sl/10 ;第二条语句将整 Underfull \hbox (badness 10000) in paragraph at lines 875--876 []\EU1/NotoSerifCJKSC(0)/m/sl/10 变量名不限长度,可以同时包含字母和数字,但是不能以数字开头。使用大写字母也是合法的, Overfull \hbox (128.60187pt too wide) in paragraph at lines 877--878 []\EU1/NotoSerifCJKSC(0)/m/sl/10 下划线(\EU1/lmtt/m/n/10 _\EU1/NotoSerifCJKSC(0)/m /sl/10 )可以出现在变量名中。它经常用在含有多个词的变量名中,例如,\EU1/lmtt/m/n/10 my_name\EU1/NotoSerifCJKS C(0)/m/sl/10 和\EU1/lmtt/m/n/10 airspeed_of_unladen_swallow\EU1/NotoSerifCJKSC(0 )/m/sl/10 。 Underfull \hbox (badness 10000) in paragraph at lines 877--878 \EU1/NotoSerifCJKSC(0)/m/sl/10 变量名可以采用下划线开头,但我们一般会避免这样命名,除非是在编写供他人使用的Python库 [16] Underfull \hbox (badness 10000) in paragraph at lines 894--895 []\EU1/lmtt/m/n/10 76trombones\EU1/NotoSerifCJKSC(0)/m/sl/10 是不合法的变量名,因为它是以数字开头 的。\EU1/lmtt/m/n/10 more@\EU1/NotoSerifCJKSC(0)/m/sl/10 也是不合法的,因为它包含 Underfull \hbox (badness 10000) in paragraph at lines 896--897 []\EU1/NotoSerifCJKSC(0)/m/sl/10 原因在于,\EU1/lmtt/m/n/10 class\EU1/NotoSerifCJKSC (0)/m/sl/10 是Python的\EU1/NotoSerifCJKSC(0)/bx/n/10 关键字\EU1/NotoSerifCJKSC(0)/m/ sl/10 。Python解释器使用关键字来识别程序的结构,因此,关 Underfull \hbox (badness 10000) in paragraph at lines 914--915 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你可以在手边存留一份。如果解释器在一个变量名那里报错,而你又不知道为什么,那么检查一 Underfull \hbox (badness 10000) in paragraph at lines 925--926 []\EU1/NotoSerifCJKSC(0)/m/sl/10 一个脚本通常包含一连串的语句。如果超过一句的话,结果会随着程序的执行,一句一句地产 [17] Underfull \hbox (badness 1509) in paragraph at lines 1004--1006 \EU1/NotoSerifCJKSC(0)/bx/n/10 表达式 \EU1/NotoSerifCJKSC(0)/m/sl/10 是值、变量和运算符的组合。 值本身可以是一个表达式,变量亦如此。所以下面都是合法 Underfull \hbox (badness 10000) in paragraph at lines 1042--1043 \EU1/NotoSerifCJKSC(0)/m/sl/10 当一个表达式中出现多个运算符时,运算顺序由优先级规则来确定。对于数学运算符来说, [18] Underfull \hbox (badness 1783) in paragraph at lines 1048--1054 []\EU1/NotoSerifCJKSC(0)/bx/n/10 括号 \EU1/NotoSerifCJKSC(0)/m/sl/10 拥有最高运算优先级,可以 强制表达式按特定顺序运算。括号内的表达式最先进行运 Overfull \hbox (1.40756pt too wide) in paragraph at lines 1054--1057 []\EU1/NotoSerifCJKSC(0)/bx/n/10 幂运算\EU1/NotoSerifCJKSC(0)/m/sl/10 (次方、乘方)的优先级仅 次于括号,例如,\EU1/lmtt/m/n/10 2**1+1 \EU1/NotoSerifCJKSC(0)/m/sl/10 等于3,而不是4,\EU1/lm tt/m/n/10 3*1**3\EU1/NotoSerifCJKSC(0)/m/sl/10 等 Underfull \hbox (badness 10000) in paragraph at lines 1062--1063 []\EU1/NotoSerifCJKSC(0)/m/sl/10 相同优先级的运算符按从左到右的顺序依次运算。所以,\EU1/lmtt/m/n/10 5-3- 1\EU1/NotoSerifCJKSC(0)/m/sl/10 等于1,而不是3。先计 Underfull \hbox (badness 10000) in paragraph at lines 1071--1073 \EU1/NotoSerifCJKSC(0)/bx/n/10 模 \EU1/NotoSerifCJKSC(0)/m/sl/10 的运算对象是整数,得到的是第一 个整数除以第二个整数的余数。在Python中,模运算符用 Underfull \hbox (badness 10000) in paragraph at lines 1087--1088 []\EU1/NotoSerifCJKSC(0)/m/sl/10 模运算非常实用。举例来说,你可以检验一个数是否能被另一个数整除,如果\EU1/lmtt/m/ n/10 x%y\EU1/NotoSerifCJKSC(0)/m/sl/10 的结果是0,那 Underfull \hbox (badness 10000) in paragraph at lines 1091--1092 []\EU1/NotoSerifCJKSC(0)/m/sl/10 另外,模运算也可以提取一个数字最右边的数位。举例来说,\EU1/lmtt/m/n/10 x% 10\EU1/NotoSerifCJKSC(0)/m/sl/10 可以提取\EU1/lmtt/m/n/10 x\EU1/NotoSerifCJKSC(0)/m /sl/10 最右边的一位数字 [19] Underfull \hbox (badness 10000) in paragraph at lines 1121--1123 \EU1/NotoSerifCJKSC(0)/m/sl/10 有时候我们希望获取用户通过键盘输入的值。Python提供了一个内置函数叫\EU1/lmtt/m/ n/10 input\EU1/NotoSerifCJKSC(0)/m/sl/10 ,用来获取 Overfull \hbox (20.11595pt too wide) in paragraph at lines 1121--1123 \EU1/NotoSerifCJKSC(0)/m/sl/10 键盘输入[][][][][]。当调用这个函数时,程序会暂停运行,等待用户的输入。当用户按下\EU 1/lmtt/m/n/10 回车键\EU1/NotoSerifCJKSC(0)/m/sl/10 (\EU1/lmtt/m/n/10 Return\EU1/No toSerifCJKSC(0)/m/sl/10 或\EU1/lmtt/m/n/10 Enter\EU1/NotoSerifCJKSC(0)/m/sl/10 ) Overfull \hbox (4.64252pt too wide) in paragraph at lines 1135--1136 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在请求用户输入之前,最好打印一条提示语句,告诉用户需要输入些什么。你可以通过在\EU1/lm tt/m/n/10 input\EU1/NotoSerifCJKSC(0)/m/sl/10 中 Underfull \hbox (badness 10000) in paragraph at lines 1149--1151 []\EU1/NotoSerifCJKSC(0)/m/sl/10 提示语结尾的 \EU1/lmtt/m/n/10 \n \EU1/NotoSerifCJKSC (0)/m/sl/10 表示\EU1/NotoSerifCJKSC(0)/bx/n/10 换行符\EU1/NotoSerifCJKSC(0)/m/sl/10 ,它是一个用于截断当前行,并开始下一行的特殊字符。这样一 [20] Underfull \hbox (badness 10000) in paragraph at lines 1189--1190 \EU1/NotoSerifCJKSC(0)/m/sl/10 当程序变得越来越长并且越来越复杂时,阅读难度也随之增大。正式的程序代码很密集,经常会 Underfull \hbox (badness 10000) in paragraph at lines 1191--1192 []\EU1/NotoSerifCJKSC(0)/m/sl/10 为解决这个问题,在程序代码中加入自然语言说明,来解释这段代码的作用,这会是一个不错的 Underfull \hbox (badness 10000) in paragraph at lines 1210--1211 []\EU1/NotoSerifCJKSC(0)/m/sl/10 对代码不显著的特征进行注释是非常有用的。我们可以合理假设读者能够理解代码在\EU1/Noto SerifCJKSC(0)/bx/n/10 做什么\EU1/NotoSerifCJKSC(0)/m/sl/10 ,但 Underfull \hbox (badness 10000) in paragraph at lines 1228--1229 []\EU1/NotoSerifCJKSC(0)/m/sl/10 清晰易懂的变量名能够减少注释的使用,但是变量名如果太长,就会使复杂的表达式变得更加难 Underfull \hbox (badness 10000) in paragraph at lines 1236--1237 []\EU1/NotoSerifCJKSC(0)/m/sl/10 编程入门阶段,你在阅读别人的程序和编写自己的程序时,对变量的命名可能会感到困惑。例 [21] Underfull \hbox (badness 10000) in paragraph at lines 1265--1266 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python解释器看到这三个程序时,会觉得是\EU1/NotoSerifCJKSC(0)/b x/n/10 完全一样\EU1/NotoSerifCJKSC(0)/m/sl/10 的。但是对于人而言,阅读和理解它们却是 Underfull \hbox (badness 10000) in paragraph at lines 1265--1266 \EU1/NotoSerifCJKSC(0)/m/sl/10 非常不一样的。读者能够快速看懂的是第二个程序的\EU1/NotoSerifCJKSC(0)/bx /n/10 目的\EU1/NotoSerifCJKSC(0)/m/sl/10 ,这是因为该程序员选择了能够代表变 Underfull \hbox (badness 10000) in paragraph at lines 1267--1269 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这种变量命名法称为“助记变量命名法”。助记ˆ[对于“助记”的详细介绍,请参见 [][]$[] [][][] [] Underfull \hbox (badness 10000) in paragraph at lines 1267--1269 [] [] [][] [] [][][][][][][][][] [] [][][] [] [][][][] [] [][][][][][][][]$[][] \EU1/NotoSerifCJKSC(0)/m/sl/10 的意思就是帮助记忆。选择易于记忆的变量名,有助于我 Underfull \hbox (badness 10000) in paragraph at lines 1270--1271 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这看起来不错,使用助记变量命名法是一个好主意,但可能也会妨碍初学者解析并理解代码。这 Underfull \hbox (badness 10000) in paragraph at lines 1270--1271 \EU1/NotoSerifCJKSC(0)/m/sl/10 是由于初学者可能还没有记全Python的33个保留关键字,如果变量名中包含太多描述性的词语, Underfull \hbox (badness 10000) in paragraph at lines 1272--1273 []\EU1/NotoSerifCJKSC(0)/m/sl/10 下面两行简单的Python代码实现了循环。循环将在第5章介绍,这里尝试猜猜这两行代码的含 Underfull \hbox (badness 10000) in paragraph at lines 1281--1283 \EU1/NotoSerifCJKSC(0)/m/sl/10 解单词的基本含义吗?初学者很难分辨出代码中哪些部分\EU1/NotoSerifCJKSC(0)/ bx/n/10 必须\EU1/NotoSerifCJKSC(0)/m/sl/10 照抄示例中的,而哪些部分是可以 Underfull \hbox (badness 10000) in paragraph at lines 1293--1296 []\EU1/NotoSerifCJKSC(0)/m/sl/10 初学者可以较容易的从这段代码中判断哪些是Python定义的保留字,哪些是程序员选择的变量 Underfull \hbox (badness 10000) in paragraph at lines 1305--1308 \EU1/NotoSerifCJKSC(0)/m/sl/10 色来标记保留字,以让你能够更好的区分变量名与保留字。熟悉一段时间后,你就会很快地区分 [22] Underfull \hbox (badness 10000) in paragraph at lines 1384--1386 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序里面包含的信息,旨在帮助其他程序员(或任何查看源码的人)理解程序,而不会对 [23] Underfull \hbox (badness 10000) in paragraph at lines 1416--1418 []\EU1/NotoSerifCJKSC(0)/m/sl/10 表示一类值。目前,我们已经见到的类型有整数(\EU1/lmtt/m/n/10 int\EU1 /NotoSerifCJKSC(0)/m/sl/10 ),浮点数(\EU1/lmtt/m/n/10 float\EU1/NotoSerifCJKSC(0)/m /sl/10 ),和字符串 Underfull \hbox (badness 10000) in paragraph at lines 1446--1448 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们暂时不用担心我们计算的结果是否能正好精确到小数点后两位。如果你非常想的话,可以试 [24] Chapter 3. Underfull \hbox (badness 10000) in paragraph at lines 1525--1526 []\EU1/NotoSerifCJKSC(0)/m/sl/10 虽然你可能很熟悉这些运算符,但要注意这些Python符号并不等同于数学符号。一个常见的错误 Underfull \hbox (badness 10000) in paragraph at lines 1525--1526 \EU1/NotoSerifCJKSC(0)/m/sl/10 是用了单等号(\EU1/lmtt/m/n/10 =\EU1/NotoSerifCJKSC(0)/ m/sl/10 ),而没有用双等号(\EU1/lmtt/m/n/10 ==\EU1/NotoSerifCJKSC(0)/m/sl/10 )。请记住,\EU1/ lmtt/m/n/10 =\EU1/NotoSerifCJKSC(0)/m/sl/10 是赋值运算符,\EU1/lmtt/m/n/10 ==\EU1/Noto SerifCJKSC(0)/m/sl/10 是比较运算符。不 Underfull \hbox (badness 1383) in paragraph at lines 1533--1535 \EU1/NotoSerifCJKSC(0)/bx/n/10 逻辑运算符 \EU1/NotoSerifCJKSC(0)/m/sl/10 包括\EU1/lmtt /m/n/10 and\EU1/NotoSerifCJKSC(0)/m/sl/10 (与)、\EU1/lmtt/m/n/10 or\EU1/NotoSerif CJKSC(0)/m/sl/10 (或)与\EU1/lmtt/m/n/10 not\EU1/NotoSerifCJKSC(0)/m/sl/10 (非)三个。这 些运算符的语义与它们的英文含义 [25] Underfull \hbox (badness 10000) in paragraph at lines 1547--1548 []\EU1/NotoSerifCJKSC(0)/m/sl/10 严格讲,逻辑运算符的运算对象应该是布尔表达式,但在Python中并不是很严格。任何非零数字 Underfull \hbox (badness 10000) in paragraph at lines 1556--1557 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这种灵活性的存在是有用的,但也会产生一些微妙的困惑。除非你清楚自己在做什么,否则不要 <../images/if.eps> [26] <../images/if-else.eps> [27] <../images/elif.eps> [28] <../images/nested.eps> [29] [30] [31] [32] [33] [34] Chapter 4. [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] Chapter 5. [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] Chapter 6. <../images/string.eps> [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 7. <../images/arch.eps> [69] <../images/handle.eps> [70] [71] Excluding 'trinketfiles' comment. [72] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [73] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [74] Excluding 'trinketfiles' comment. [75] Excluding 'trinketfiles' comment. [76] Underfull \hbox (badness 1205) in paragraph at lines 4986--4993 \EU1/NotoSerifCJKSC(0)/m/sl/10 programmers to decide which of two equivalent so lutions to a problem is “more [77] [78] [79] [80] Chapter 8. Underfull \hbox (badness 1253) in paragraph at lines 5219--5222 []\EU1/NotoSerifCJKSC(0)/m/sl/10 ~$[]$ {.python} [10, 20, 30, 40][‘crunchy frog ’, ‘ram bladder’, ‘lark vomit’] ~$[]$ [81] [82] [83] [84] [85] [86] [87] Excluding 'trinketfiles' comment. <../images/list1.eps> [88] [89] [90] [91] [92] Overfull \hbox (8.18616pt too wide) in paragraph at lines 6238--6238 [] \EU1/lmtt/m/n/9 Details: http://source.sakaiproject.org/viewsvn/?vie w=rev&rev=39772[] [93] [94] [95] [96] Chapter 9. [97] [98] [99] [100] Excluding 'trinketfiles' comment. [101] [102] [103] Excluding 'trinketfiles' comment. [104] [105] [106] Chapter 10. [107] [108] [109] [110] [111] [112] Excluding 'trinketfiles' comment. [113] [114] [115] [116] [117] [118] Chapter 11. Excluding 'trinketfiles' comment. [119] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [120] Excluding 'trinketfiles' comment. [121] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [122] Excluding 'trinketfiles' comment. [123] Excluding 'trinketfiles' comment. [124] Excluding 'trinketfiles' comment. [125] Excluding 'trinketfiles' comment. [126] Excluding 'trinketfiles' comment. [127] [128] [129] [130] [131] [132] Chapter 12. [133] <../images/socket.eps> [134] [135] [136] Overfull \hbox (7.70644pt too wide) in paragraph at lines 9053--9058 []\EU1/NotoSerifCJKSC(0)/m/sl/10 We can slow down our successive \EU1/lmtt/m/n/ 10 recv() \EU1/NotoSerifCJKSC(0)/m/sl/10 calls by uncommenting the call to \EU1 /lmtt/m/n/10 time.sleep()\EU1/NotoSerifCJKSC(0)/m/sl/10 . [137] [138] [139] Overfull \hbox (28.29022pt too wide) in paragraph at lines 9287--9290 []\EU1/NotoSerifCJKSC(0)/m/sl/10 You can download and “install” BeautifulSoup o r you can simply place the \EU1/lmtt/m/n/10 BeautifulSoup.py [140] [141] [142] [143] [144] Chapter 13. <../images/xml-tree.eps> [145] [146] [147] [148] [149] <../images/soa.eps> [150] [151] [152] [153] Excluding 'trinketfiles' comment. [154] [155] Excluding 'trinketfiles' comment. [156] [157] [158] Chapter 14. [159] [160] <../images/program.eps> [161] <../images/program-oo.eps> [162] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> Underfull \vbox (badness 4608) has occurred while \output is active [163] <../photos/cookie_cutter_flickr_Didriks.eps> [164] [165] [166] [167] [168] [169] [170] Underfull \hbox (badness 1436) in paragraph at lines 11165--11169 []\EU1/NotoSerifCJKSC(0)/m/sl/10 A function that is contained within a class an d the objects that are con- [171] [172] Chapter 15. <../images/relational.eps> [173] [174] Underfull \hbox (badness 1237) in paragraph at lines 11303--11310 []\EU1/NotoSerifCJKSC(0)/m/sl/10 The \EU1/lmtt/m/n/10 connect \EU1/NotoSerifCJK SC(0)/m/sl/10 operation makes a “connection” to the database stored in the file <../images/cursor.eps> [175] <../images/tracks.eps> [176] [177] [178] [179] Underfull \hbox (badness 1194) in paragraph at lines 11655--11659 \EU1/NotoSerifCJKSC(0)/m/sl/10 retrieved the friends of this account, and how m any times this account has been [180] [181] [182] Underfull \hbox (badness 1635) in paragraph at lines 11869--11875 []\EU1/NotoSerifCJKSC(0)/m/sl/10 We can see that we have properly recorded that we have visited \EU1/lmtt/m/n/10 lhawthorn \EU1/NotoSerifCJKSC(0)/m/sl/10 and [183] [184] [185] Underfull \vbox (badness 3895) has occurred while \output is active [186] [187] [188] [189] [190] [191] [192] [193] Underfull \vbox (badness 1147) has occurred while \output is active [194] [195] [196] Chapter 16. <../images/google-map.eps> [197] [198] <../images/pagerank.eps> [199] [200] [201] <../images/wordcloud.eps> [202] [203] [204] [205] <../images/mailorg.eps> (./tmp.appendix.tex [206] Appendix A. [207] [208] Underfull \hbox (badness 1082) in paragraph at lines 155--180 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Lloyd Hugh Allen, Yvon Boulianne, Fred Bremmer , Jonah Cohen, Michael Conlon, Underfull \hbox (badness 1838) in paragraph at lines 155--180 \EU1/NotoSerifCJKSC(0)/m/sl/10 Chris Wrobel, Moshe Zadka, Christoph Zwerschke, James Mayer, Hayden McAfee, [209] [210] Appendix B. ) [211] No file tmp.ind. Package createspace Info: spine is about 34.59686pt wide Package createspace Info: book cost is 5.74USD (3.39USD for pro plan) [212] (./tmp.aux) LaTeX Font Warning: Some font shapes were not available, defaults substituted. LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. ) (see the transcript file for additional information) Output written on tmp.pdf (218 pages). Transcript written on tmp.log. This is XeTeX, Version 3.14159265-2.6-0.99992 (TeX Live 2015/Debian) (preloaded format=xelatex) restricted \write18 enabled. entering extended mode (./tmp.tex LaTeX2e <2016/02/01> Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls Document Class: book 2014/09/29 v1.4h Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (./createspace.sty (/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex (/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty) (/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty))) (/usr/share/texlive/texmf-dist/tex/latex/base/alltt.sty) (/usr/share/texmf/tex/latex/lm/lmodern.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/makeidx.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty) (/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty Package fixltx2e Warning: fixltx2e is not required with releases after 2015 (fixltx2e) All fixes are now in the LaTeX kernel. (fixltx2e) See the latexrelease package for details. ) (/usr/share/texlive/texmf-dist/tex/xelatex/mathspec/mathspec.sty (/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.sty (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3-code.tex) (/usr/share/texlive/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def)) (/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmr.fd)) (/usr/share/texlive/texmf-dist/tex/xelatex/xunicode/xunicode.sty (/usr/share/texmf/tex/latex/tipa/t3enc.def (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmss.fd)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg) (/usr/share/texlive/texmf-dist/tex/xelatex/xetex-def/xetex.def (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty))))) (/usr/share/texlive/texmf-dist/tex/latex/fontspec/fontspec.cfg)))) (/usr/share/texlive/texmf-dist/tex/latex/xltxtra/xltxtra.sty (/usr/share/texlive/texmf-dist/tex/latex/realscripts/realscripts.sty) (/usr/share/texlive/texmf-dist/tex/latex/metalogo/metalogo.sty)) (/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty (/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty (/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def))) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-xetex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix <2008/02/07> (tvz)) (/usr/share/texlive/texmf-dist/tex/latex/comment/comment.sty Excluding comment 'comment') Excluding comment 'trinketfiles' (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty)) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty) (/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def) (/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg) (/usr/share/texlive/texmf-dist/tex/latex/url/url.sty)) Package hyperref Message: Driver: hxetex. (/usr/share/texlive/texmf-dist/tex/latex/hyperref/hxetex.def (/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/stringenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty)) Package hyperref Warning: Option `bookmarks' has already been used, (hyperref) setting the option has no effect on input line 102. (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/se-ascii-print.def) Writing index file tmp.idx (./tmp.aux) (/usr/share/texmf/tex/latex/tipa/t3cmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd) *geometry* driver: auto-detecting *geometry* detected driver: xetex (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty)) (./tmp.out) (./tmp.out) (/usr/share/texmf/tex/latex/lm/ot1lmr.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg) (/usr/share/texmf/tex/latex/lm/omllmm.fd) (/usr/share/texmf/tex/latex/lm/omslmsy.fd) (/usr/share/texmf/tex/latex/lm/omxlmex.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msa.cfg) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-msb.cfg) [1] (./tmp.preface.tex (/usr/share/texlive/texmf-dist/tex/latex/euenc/eu1lmtt.fd) [2] LaTeX Font Warning: Font shape `EU1/NotoSerifCJKSC(0)/m/it' undefined (Font) using `EU1/NotoSerifCJKSC(0)/m/n' instead on input line 44. LaTeX Font Warning: Font shape `EU1/NotoSerifCJKSC(0)/m/sl' undefined (Font) using `EU1/NotoSerifCJKSC(0)/m/n' instead on input line 102 . [3]) [4] (./tmp.toc [5] [6] [7] Overfull \hbox (0.56178pt too wide) detected at line 117 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 100[][] Overfull \hbox (0.56178pt too wide) detected at line 118 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 101[][] Overfull \hbox (0.56178pt too wide) detected at line 119 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 102[][] Overfull \hbox (0.56178pt too wide) detected at line 120 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 104[][] Overfull \hbox (0.56178pt too wide) detected at line 121 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 105[][] Overfull \hbox (0.56178pt too wide) detected at line 122 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 105[][] Overfull \hbox (0.56178pt too wide) detected at line 124 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 107[][] Overfull \hbox (0.56178pt too wide) detected at line 125 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 108[][] [8] Overfull \hbox (0.56178pt too wide) detected at line 126 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 110[][] Overfull \hbox (0.56178pt too wide) detected at line 127 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 111[][] Overfull \hbox (0.56178pt too wide) detected at line 128 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 112[][] Overfull \hbox (0.56178pt too wide) detected at line 129 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 112[][] Overfull \hbox (0.56178pt too wide) detected at line 130 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 114[][] Overfull \hbox (0.56178pt too wide) detected at line 131 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 114[][] Overfull \hbox (0.56178pt too wide) detected at line 132 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 115[][] Overfull \hbox (1.5261pt too wide) detected at line 133 \EU1/NotoSerifCJKSC(0)/m/sl/10 10.10 Overfull \hbox (0.56178pt too wide) detected at line 133 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 116[][] Overfull \hbox (1.5261pt too wide) detected at line 134 \EU1/NotoSerifCJKSC(0)/m/sl/10 10.11 Overfull \hbox (0.56178pt too wide) detected at line 134 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 116[][] Overfull \hbox (0.56178pt too wide) detected at line 136 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 120[][] Overfull \hbox (0.56178pt too wide) detected at line 137 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 121[][] Overfull \hbox (0.56178pt too wide) detected at line 138 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 124[][] Overfull \hbox (0.56178pt too wide) detected at line 139 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 127[][] Overfull \hbox (0.56178pt too wide) detected at line 140 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 128[][] Overfull \hbox (0.56178pt too wide) detected at line 141 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 129[][] Overfull \hbox (0.56178pt too wide) detected at line 142 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 129[][] Overfull \hbox (0.56178pt too wide) detected at line 143 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 130[][] Overfull \hbox (0.56178pt too wide) detected at line 144 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 130[][] Overfull \hbox (0.56178pt too wide) detected at line 146 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 133[][] Overfull \hbox (0.56178pt too wide) detected at line 147 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 134[][] Overfull \hbox (0.56178pt too wide) detected at line 148 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 135[][] Overfull \hbox (0.56178pt too wide) detected at line 149 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 137[][] Overfull \hbox (0.56178pt too wide) detected at line 150 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 138[][] Overfull \hbox (0.56178pt too wide) detected at line 151 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 139[][] Overfull \hbox (0.56178pt too wide) detected at line 152 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 140[][] Overfull \hbox (0.56178pt too wide) detected at line 153 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 142[][] Overfull \hbox (0.56178pt too wide) detected at line 154 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 143[][] Overfull \hbox (1.5261pt too wide) detected at line 155 \EU1/NotoSerifCJKSC(0)/m/sl/10 12.10 Overfull \hbox (0.56178pt too wide) detected at line 155 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 144[][] Overfull \hbox (0.56178pt too wide) detected at line 157 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 145[][] [9] Overfull \hbox (0.56178pt too wide) detected at line 158 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 145[][] Overfull \hbox (0.56178pt too wide) detected at line 159 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 147[][] Overfull \hbox (0.56178pt too wide) detected at line 160 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 147[][] Overfull \hbox (0.56178pt too wide) detected at line 161 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 148[][] Overfull \hbox (0.56178pt too wide) detected at line 162 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 149[][] Overfull \hbox (0.56178pt too wide) detected at line 163 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 150[][] Overfull \hbox (0.56178pt too wide) detected at line 164 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 153[][] Overfull \hbox (0.56178pt too wide) detected at line 165 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 157[][] Overfull \hbox (1.5261pt too wide) detected at line 166 \EU1/NotoSerifCJKSC(0)/m/sl/10 13.10 Overfull \hbox (0.56178pt too wide) detected at line 166 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 158[][] Overfull \hbox (0.56178pt too wide) detected at line 168 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 159[][] Overfull \hbox (0.56178pt too wide) detected at line 169 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 159[][] Overfull \hbox (0.56178pt too wide) detected at line 170 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 160[][] Overfull \hbox (0.56178pt too wide) detected at line 171 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 161[][] Overfull \hbox (0.56178pt too wide) detected at line 172 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 163[][] Overfull \hbox (0.56178pt too wide) detected at line 173 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 164[][] Overfull \hbox (0.56178pt too wide) detected at line 174 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 166[][] Overfull \hbox (0.56178pt too wide) detected at line 175 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 167[][] Overfull \hbox (0.56178pt too wide) detected at line 176 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 168[][] Overfull \hbox (1.5261pt too wide) detected at line 177 \EU1/NotoSerifCJKSC(0)/m/sl/10 14.10 Overfull \hbox (0.56178pt too wide) detected at line 177 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 169[][] Overfull \hbox (1.5261pt too wide) detected at line 178 \EU1/NotoSerifCJKSC(0)/m/sl/10 14.11 Overfull \hbox (0.56178pt too wide) detected at line 178 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 170[][] Overfull \hbox (1.5261pt too wide) detected at line 179 \EU1/NotoSerifCJKSC(0)/m/sl/10 14.12 Overfull \hbox (0.56178pt too wide) detected at line 179 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 171[][] Overfull \hbox (0.56178pt too wide) detected at line 181 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 173[][] Overfull \hbox (0.56178pt too wide) detected at line 182 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 173[][] Overfull \hbox (0.56178pt too wide) detected at line 183 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 174[][] Overfull \hbox (0.56178pt too wide) detected at line 184 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 174[][] Overfull \hbox (0.56178pt too wide) detected at line 185 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 177[][] Overfull \hbox (0.56178pt too wide) detected at line 186 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 179[][] Overfull \hbox (0.56178pt too wide) detected at line 187 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 184[][] Overfull \hbox (0.56178pt too wide) detected at line 188 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 185[][] Overfull \hbox (0.56178pt too wide) detected at line 189 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 188[][] Overfull \hbox (0.56178pt too wide) detected at line 190 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 189[][] Overfull \hbox (0.56178pt too wide) detected at line 191 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 190[][] [10] Overfull \hbox (0.56178pt too wide) detected at line 192 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 191[][] Overfull \hbox (1.5261pt too wide) detected at line 193 \EU1/NotoSerifCJKSC(0)/m/sl/10 15.10 Overfull \hbox (0.56178pt too wide) detected at line 193 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 191[][] Overfull \hbox (1.5261pt too wide) detected at line 194 \EU1/NotoSerifCJKSC(0)/m/sl/10 15.11 Overfull \hbox (0.56178pt too wide) detected at line 194 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 194[][] Overfull \hbox (1.5261pt too wide) detected at line 195 \EU1/NotoSerifCJKSC(0)/m/sl/10 15.12 Overfull \hbox (0.56178pt too wide) detected at line 195 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 194[][] Overfull \hbox (1.5261pt too wide) detected at line 196 \EU1/NotoSerifCJKSC(0)/m/sl/10 15.13 Overfull \hbox (0.56178pt too wide) detected at line 196 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 195[][] Overfull \hbox (0.56178pt too wide) detected at line 198 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 197[][] Overfull \hbox (0.56178pt too wide) detected at line 199 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 199[][] Overfull \hbox (0.56178pt too wide) detected at line 200 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 202[][] Overfull \hbox (0.56178pt too wide) detected at line 202 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 207[][] Overfull \hbox (0.56178pt too wide) detected at line 203 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 207[][] Overfull \hbox (0.56178pt too wide) detected at line 204 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 207[][] Overfull \hbox (0.56178pt too wide) detected at line 205 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 207[][] Overfull \hbox (0.56178pt too wide) detected at line 206 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 208[][] Overfull \hbox (0.56178pt too wide) detected at line 207 [][][]\EU1/NotoSerifCJKSC(0)/m/sl/10 209[][] ) [11] [12] Chapter 1. Underfull \hbox (badness 10000) in paragraph at lines 138--139 \EU1/NotoSerifCJKSC(0)/m/sl/10 编程是一项极具创造性和有益的活动。编程的原因很多,大到为谋生去解决一个困难的数据分析 Underfull \hbox (badness 10000) in paragraph at lines 138--139 \EU1/NotoSerifCJKSC(0)/m/sl/10 问题,小到因为帮助别人解决一个问题而获得快乐。本书假定\EU1/NotoSerifCJKSC(0 )/bx/n/10 每个人\EU1/NotoSerifCJKSC(0)/m/sl/10 都需要知道怎样编程,一旦 Underfull \hbox (badness 10000) in paragraph at lines 140--142 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们的日常生活中计算机无处不在,大到笔记本电脑,小到手机。这些计算机可视为帮助我们打 Underfull \hbox (badness 10000) in paragraph at lines 140--142 \EU1/NotoSerifCJKSC(0)/m/sl/10 理很多事情的“私人助理”。 在本质上,如今计算机硬件的构建,就是在不断地问我们一个问 <../images/pda.eps> Underfull \hbox (badness 10000) in paragraph at lines 149--151 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序员在硬件之上添加了操作系统和应用程序,我们手中拿到的成品是一个很有用的个人数字助 Underfull \hbox (badness 10000) in paragraph at lines 152--153 []\EU1/NotoSerifCJKSC(0)/m/sl/10 计算机运行速度很快并拥有大量的内存,如果我们学会了与计算机沟通的语言,告诉计算机我们 Underfull \hbox (badness 10000) in paragraph at lines 152--153 \EU1/NotoSerifCJKSC(0)/m/sl/10 想要它“接下来做什么”,那么它就会对我们有非常大的帮助。我们能让计算机根据我们的意愿 Underfull \hbox (badness 10000) in paragraph at lines 152--153 \EU1/NotoSerifCJKSC(0)/m/sl/10 完成一些重复性工作。有趣的是,计算机能够胜任并且做得很好的工作通常是那些让我们人类感 Underfull \hbox (badness 10000) in paragraph at lines 154--155 []\EU1/NotoSerifCJKSC(0)/m/sl/10 例如,阅读本章的前三段,找出出现频率最高的词是哪一个,以及这个词总共出现了多少次。尽 Underfull \hbox (badness 10000) in paragraph at lines 154--155 \EU1/NotoSerifCJKSC(0)/m/sl/10 管你能在短时间内阅读和理解这些文字,但要对它们进行统计就很痛苦了,因为这类问题不是人 Underfull \hbox (badness 10000) in paragraph at lines 154--155 \EU1/NotoSerifCJKSC(0)/m/sl/10 的大脑擅长解决的。计算机恰好相反,它很难像人一样阅读和理解一段文字,但是对文字进行统 Underfull \hbox (badness 10000) in paragraph at lines 166--167 []\EU1/NotoSerifCJKSC(0)/m/sl/10 事实上,计算机擅长做人类不擅长做的事,这就是为什么你需要熟练掌握一门“与计算机对话的 Underfull \hbox (badness 10000) in paragraph at lines 166--167 \EU1/NotoSerifCJKSC(0)/m/sl/10 语言”。一旦学会这门新语言,你就可以将枯燥的工作指派给你的搭档(计算机)了。留出更多 [1] Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 这本书不是为专业程序员准备的,专业编程是份非常有前途的工作,可算是物质与精神双丰收。 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 为他人创造有用的、简洁的与智能的程序是一项创新性很强的活动。你的计算机或PDA通常安装 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 了来自许多不同程序员开发的各种软件,每一款软件都想要吸引你的注意力和兴趣。它们尽其所 Underfull \hbox (badness 10000) in paragraph at lines 170--171 \EU1/NotoSerifCJKSC(0)/m/sl/10 能来满足你的需求,在使用过程中让你获得优质的用户体验。在某些情况下,当你选择了一个软 <../images/pda2.eps> Underfull \hbox (badness 10000) in paragraph at lines 180--181 []\EU1/NotoSerifCJKSC(0)/m/sl/10 本书的写作初衷不是为了赚钱或者取悦最终用户,而是让我们能更好地处理生活中的数据与信 Underfull \hbox (badness 10000) in paragraph at lines 180--181 \EU1/NotoSerifCJKSC(0)/m/sl/10 息。开始学编程,你既是程序员,也是你所写程序的最终用户。当你获得了程序员的技能,如果 Underfull \hbox (badness 10000) in paragraph at lines 186--187 \EU1/NotoSerifCJKSC(0)/m/sl/10 学习这种向计算机发指令来开发软件的语言之前,我们需要了解一下计算机的构成。如果拆开你 <../images/arch.eps> Underfull \hbox (badness 10000) in paragraph at lines 198--202 \EU1/NotoSerifCJKSC(0)/m/sl/10 的组件。如果计算机处理速度达到3.0 GHz,这就意味着CPU每秒会提问30亿次“下一步 [2] Underfull \hbox (badness 8189) in paragraph at lines 202--205 []\EU1/NotoSerifCJKSC(0)/bx/n/10 主存储器\EU1/NotoSerifCJKSC(0)/m/sl/10 (Main Memor y)用来存储CPU即刻需要的信息。主存储器的速度几乎与CPU Underfull \hbox (badness 10000) in paragraph at lines 205--208 []\EU1/NotoSerifCJKSC(0)/bx/n/10 辅助存储器\EU1/NotoSerifCJKSC(0)/m/sl/10 (Secondary Memory)也是用来存储信息的,但是它比主存储器速度慢很 Underfull \hbox (badness 10000) in paragraph at lines 205--208 \EU1/NotoSerifCJKSC(0)/m/sl/10 多。辅助存储器的优点是,它可以在计算机不带电情况下存储信息。常见辅助存储器包括 Underfull \hbox (badness 10000) in paragraph at lines 211--212 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如今大多数计算机之间还建立了\EU1/NotoSerifCJKSC(0)/bx/n/10 网 络连接\EU1/NotoSerifCJKSC(0)/m/sl/10 ,通过网络获取信息。我们可以将网络看成信息 Underfull \hbox (badness 10000) in paragraph at lines 211--212 \EU1/NotoSerifCJKSC(0)/m/sl/10 存储与检索速度很慢的一个空间,而且不总是那么稳定。从某种意义上讲,网络是速度很 Underfull \hbox (badness 10000) in paragraph at lines 214--215 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这些组件的工作原理细节最好还是交给计算机厂商吧。这里只是为了掌握一些术语,在编程时方 Underfull \hbox (badness 10000) in paragraph at lines 216--217 []\EU1/NotoSerifCJKSC(0)/m/sl/10 作为一名程序员,你的工作就是利用并协调这些资源来解决问题和分析数据。作为程序员,你主 Underfull \hbox (badness 10000) in paragraph at lines 216--217 \EU1/NotoSerifCJKSC(0)/m/sl/10 要与CPU打交道,告诉它下一步做什么。有时,你要告诉CPU调用主存储器、辅助存储器、网络 <../images/arch2.eps> Underfull \hbox (badness 10000) in paragraph at lines 224--225 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你需要成为回答CPU“下一步做什么”的人。但把你压缩到5毫米高,塞入计算机,让你每秒发 Underfull \hbox (badness 10000) in paragraph at lines 224--225 \EU1/NotoSerifCJKSC(0)/m/sl/10 出3亿次命令,想必这样会很不舒服。所以,你必须提前写好你的指令。我们把这些存储下来的指 Underfull \hbox (badness 10000) in paragraph at lines 228--229 \EU1/NotoSerifCJKSC(0)/m/sl/10 在本书其他章节中,我们尝试把你培养成长为一名理解编程艺术并具备一定编程能力的人。最 Underfull \hbox (badness 10000) in paragraph at lines 228--229 \EU1/NotoSerifCJKSC(0)/m/sl/10 后,你会成为一个\EU1/NotoSerifCJKSC(0)/bx/n/10 程序员\EU1/N otoSerifCJKSC(0)/m/sl/10 ,也许不是专业的。但至少你掌握了如何看待数据(信息)分析问题, Underfull \hbox (badness 10000) in paragraph at lines 239--240 []\EU1/NotoSerifCJKSC(0)/m/sl/10 其次,学会讲故事。在写故事的过程中,通过文字和句式的组合,向读者传达思想。编故 Underfull \hbox (badness 10000) in paragraph at lines 239--240 \EU1/NotoSerifCJKSC(0)/m/sl/10 事的艺术与能力通过写作与反馈得以提高。在编程中,程序即故事,待解决的问题即传达 [3] Underfull \hbox (badness 10000) in paragraph at lines 242--243 []\EU1/NotoSerifCJKSC(0)/m/sl/10 当掌握一种编程语言(如Python)之后,你会发现学习其他编程语言,如JavaScript或 者C++, Underfull \hbox (badness 10000) in paragraph at lines 242--243 \EU1/NotoSerifCJKSC(0)/m/sl/10 就会容易许多。虽然新的编程语言拥有很多不同的词汇和语法,但你已经学会解决问题的技能, Underfull \hbox (badness 10000) in paragraph at lines 244--245 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python的词汇和句式上手很快,但要能写出一些连贯的程序来解决一个全新的问题,尚需时日磨 Underfull \hbox (badness 10000) in paragraph at lines 244--245 \EU1/NotoSerifCJKSC(0)/m/sl/10 练。讲授编程就像讲授写作一样。先对程序进行阅读和解释,然后编写简单的程序,接着逐步编 Underfull \hbox (badness 10000) in paragraph at lines 244--245 \EU1/NotoSerifCJKSC(0)/m/sl/10 写更复杂的程序。当达到一定水平,你就形成了自己的编程风格,自然而然地去应对问题,通过 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 与人类语言不同的是,Python的词汇数量实际上相当少。我们称这些“词汇”为“保留字”,它 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 们是Python中具有特殊意义的词汇。对于Python来说,程序中出现的这些词汇,它们有且仅有 Underfull \hbox (badness 10000) in paragraph at lines 252--253 \EU1/NotoSerifCJKSC(0)/m/sl/10 一个含义。等下你在编程时,你自己定义的词汇称为\EU1/NotoSerifCJKSC(0)/bx /n/10 变量\EU1/NotoSerifCJKSC(0)/m/sl/10 。变量命名非常自由,但有一点,你不 Underfull \hbox (badness 10000) in paragraph at lines 254--255 []\EU1/NotoSerifCJKSC(0)/m/sl/10 从某种意义上讲,我们训练一只狗时会使用一些特殊的词汇,比如“坐下”、“停下”和“拿 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/m/sl/10 来”。跟狗说话时不用这些保留字的话,它们就会傻傻地看着你,直到你对它说出保留字。举 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/m/sl/10 例来说,“我希望更多的人通过散步来促进健康。”,而大多数狗听到的可能是,“吧啦吧啦\EU1/No toSerifCJKSC(0)/bx/n/10 散 Underfull \hbox (badness 10000) in paragraph at lines 254--255 \EU1/NotoSerifCJKSC(0)/bx/n/10 步\EU1/NotoSerifCJKSC(0)/m/sl/10 吧啦吧啦。”这是因为在狗的语言中 “散步”是保留字。很多人可能觉得人类和猫之间的语言 Underfull \hbox (badness 10000) in paragraph at lines 272--273 []\EU1/NotoSerifCJKSC(0)/m/sl/10 后续章节会介绍这些保留字及它们的适用场合。现在,我们只关注怎么与Python\EU1/Not oSerifCJKSC(0)/bx/n/10 对话\EU1/NotoSerifCJKSC(0)/m/sl/10 (就像人跟 Underfull \hbox (badness 10000) in paragraph at lines 285--286 \EU1/NotoSerifCJKSC(0)/m/sl/10 我们已经掌握了Python的一个词汇与一个简单语句,接下来需要了解如何与Python对话,测试 [4] Underfull \hbox (badness 10000) in paragraph at lines 287--289 []\EU1/NotoSerifCJKSC(0)/m/sl/10 与Python对话之前,必须先在计算机上安装Python软件,学会如何启动Python。本章 包含许多 Underfull \hbox (badness 10000) in paragraph at lines 287--289 \EU1/NotoSerifCJKSC(0)/m/sl/10 细节,建议查看 [][]www.py4e.com[][],网站上有Python在Mac和Wind ows系统上配置和启动的详 Underfull \hbox (badness 10000) in paragraph at lines 287--289 \EU1/NotoSerifCJKSC(0)/m/sl/10 细说明和视频演示。当打开终端或者命令行窗口,输入python,Python解释器会以交互模式启 Underfull \hbox (badness 10000) in paragraph at lines 301--302 []\EU1/NotoSerifCJKSC(0)/m/sl/10 ‘>>>’提示符表示Python解释器在询问,“你希望我下一步做什么?”。Python已经准 备好与 Underfull \hbox (badness 10000) in paragraph at lines 303--304 []\EU1/NotoSerifCJKSC(0)/m/sl/10 举个例子,你对Python语言最简单的词汇或句子一无所知,想要使用宇航员的标准用语(喊 Underfull \hbox (badness 10000) in paragraph at lines 316--317 []\EU1/NotoSerifCJKSC(0)/m/sl/10 事情进展好像并不顺利。除非你反应迅速,否则这个星球的居民可能会拿长矛刺向你,向你吐口 Underfull \hbox (badness 10000) in paragraph at lines 346--347 []\EU1/NotoSerifCJKSC(0)/m/sl/10 上面的对话一直进展顺利,只到你在使用Python语言的时候犯了一个非常小的错误,Python 就 Underfull \hbox (badness 10000) in paragraph at lines 348--349 []\EU1/NotoSerifCJKSC(0)/m/sl/10 此时,你应该意识到,Python虽然非常复杂与强大,但在语法上非常挑剔,并\EU1/Noto SerifCJKSC(0)/bx/n/10 不\EU1/NotoSerifCJKSC(0)/m/sl/10 那么智能。对话 [5] Underfull \hbox (badness 10000) in paragraph at lines 350--351 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在某种意义上,当你使用别人写的程序时,Python就在你和其他程序员之间充当中间人。 Underfull \hbox (badness 10000) in paragraph at lines 350--351 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python是程序编写者将对话进行下去的一种方式。在阅读完短短几章之后,你将成为Python Underfull \hbox (badness 10000) in paragraph at lines 352--353 []\EU1/NotoSerifCJKSC(0)/m/sl/10 结束与Python解释器的第一次谈话之前,你可能要知道如何正确地与这个星球的居民说“再 Underfull \hbox (badness 2478) in paragraph at lines 369--371 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你会发现前两个错误提示是不同的。由于 \EU1/NotoSerifCJKSC(0)/bx/n /10 if \EU1/NotoSerifCJKSC(0)/m/sl/10 是保留字,Python看到保留字会认为我们想说些什 Underfull \hbox (badness 10000) in paragraph at lines 377--378 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python是一种\EU1/NotoSerifCJKSC(0)/bx/n/10 高级语言\EU1 /NotoSerifCJKSC(0)/m/sl/10 ,旨在较为方便地让人类进行读写,让计算进行读取与处理。其他高级语 Underfull \hbox (badness 10000) in paragraph at lines 377--378 \EU1/NotoSerifCJKSC(0)/m/sl/10 言包括:Java、C++、PHP、Ruby、Basic、Perl以及JavaScript等。CP U里的硬件并不能理解 Underfull \hbox (badness 10000) in paragraph at lines 379--380 []\EU1/NotoSerifCJKSC(0)/m/sl/10 CPU能理解的语言称之为\EU1/NotoSerifCJKSC(0)/bx/n/10 机器语 言\EU1/NotoSerifCJKSC(0)/m/sl/10 。机器语言非常简单,坦白讲,编写起来非常无聊。它全部由 Underfull \hbox (badness 10000) in paragraph at lines 389--390 []\EU1/NotoSerifCJKSC(0)/m/sl/10 虽然机器语言表面看起来很简单,只有0和1,但它的语法比Python复杂得多。所以,很少有程序 Underfull \hbox (badness 10000) in paragraph at lines 389--390 \EU1/NotoSerifCJKSC(0)/m/sl/10 员用机器语言编程。相反,借助各种翻译器,程序员可以编写像Python或JavaScript这样的 高级 Underfull \hbox (badness 10000) in paragraph at lines 391--392 []\EU1/NotoSerifCJKSC(0)/m/sl/10 因为机器语言依附于计算机硬件,所以不能在不同类型硬件之间移植。使用高级语言编写的程序 Underfull \hbox (badness 10000) in paragraph at lines 391--392 \EU1/NotoSerifCJKSC(0)/m/sl/10 可以在不同的计算机之间移植,通过在另一台计算机上使用不同的编译器,或者重新编译代码, Underfull \hbox (badness 10000) in paragraph at lines 395--396 []\EU1/NotoSerifCJKSC(0)/bx/n/10 解释器\EU1/NotoSerifCJKSC(0)/m/sl/10 读取程序员所写程序的源代 码,解析源代码并实时解释指令。Python是一种解释器。当交 Underfull \hbox (badness 10000) in paragraph at lines 395--396 \EU1/NotoSerifCJKSC(0)/m/sl/10 互式执行Python时,输入一行Python语句,Python就会立即处理它,并做好准备让我们输 入下 [6] Underfull \hbox (badness 10000) in paragraph at lines 397--398 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python语句中有一些地方会告诉Python,你想要Python记住等下会用到的一些数据。 这时就 Underfull \hbox (badness 10000) in paragraph at lines 397--398 \EU1/NotoSerifCJKSC(0)/m/sl/10 需要为数据挑选一个名称来记住它,这样之后就可以通过这个名称来获取对应的数据了。我们使 Underfull \hbox (badness 10000) in paragraph at lines 411--416 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在这个例子中,我们让Python记住数值6,并将6赋值给变量 \EU1/NotoSerifC JKSC(0)/bx/n/10 x\EU1/NotoSerifCJKSC(0)/m/sl/10 ,以便后续使用。为了确认 Underfull \hbox (badness 10000) in paragraph at lines 411--416 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python已经记住这个数值,使用 \EU1/NotoSerifCJKSC(0)/bx/n/10 print \EU1/NotoSerifCJKSC(0)/m/sl/10 命令打印它。接下来,我们让Python获取变量 \EU1/NotoSerifCJK SC(0)/bx/n/10 x \EU1/NotoSerifCJKSC(0)/m/sl/10 的 Underfull \hbox (badness 10000) in paragraph at lines 417--418 []\EU1/NotoSerifCJKSC(0)/m/sl/10 尽管我们一次只输入了一行命令,但Python将其视为一个语句序列,后面的语句可以获取前面语 Underfull \hbox (badness 10000) in paragraph at lines 417--418 \EU1/NotoSerifCJKSC(0)/m/sl/10 句的数据。四句组成的段落以一种有逻辑的和有意义的顺序编写,这就是我们写出的第一个简单 Underfull \hbox (badness 10000) in paragraph at lines 419--420 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如上所示,解释器的本质是进行交互式对话。而编译器需要将整个程序放在一个文件中,将高层 Underfull \hbox (badness 10000) in paragraph at lines 419--420 \EU1/NotoSerifCJKSC(0)/m/sl/10 次的源代码翻译成低层次的机器语言,然后编译器将生成的机器语言放到一个文件中以便后续执 Underfull \hbox (badness 10000) in paragraph at lines 421--422 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如果你使用Windows系统,这些可执行的机器语言程序通常带有“.exe”或“.dll”后缀 ,分别 Underfull \hbox (badness 10000) in paragraph at lines 421--422 \EU1/NotoSerifCJKSC(0)/m/sl/10 代表这是“可执行的”和“动态可加载库”。在Linux和Mac中没有这样的后缀来明确表示文件 Underfull \hbox (badness 10000) in paragraph at lines 436--437 []\EU1/NotoSerifCJKSC(0)/m/sl/10 机器语言的读写并不容易,好在借助\EU1/NotoSerifCJKSC(0)/bx/n/10 解释器\EU1/NotoSerifCJKSC(0)/m/sl/10 和\EU1/NotoSerifCJKSC(0)/bx/n/10 编译器\EU1/Noto SerifCJKSC(0)/m/sl/10 ,能够使用Python或C这样的高级语言编写 Underfull \hbox (badness 10000) in paragraph at lines 438--439 []\EU1/NotoSerifCJKSC(0)/m/sl/10 通过对解释器与编译器的讨论,你应该对Python解释器本身有了一些了解。你应该想问那它又是 Underfull \hbox (badness 10000) in paragraph at lines 440--441 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python的解释器是用C语言编写的。你可以访问http://www.python.org网 站,查看Python解 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 释器的源代码,如有你有意愿改造这些源代码也是可以的。Python本身就是一个程序,它被编 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 译成机器代码。当你(或计硬件供应商)在计算机上安装了Python,实际是上将一份编译好的 Underfull \hbox (badness 10000) in paragraph at lines 440--441 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python程序的机器代码拷贝到你的计算机系统。在Windows中,Python可执行的机器代码 很可 Underfull \hbox (badness 10000) in paragraph at lines 448--449 []\EU1/NotoSerifCJKSC(0)/m/sl/10 要成为一名Python程序员,你并不一定的需要知道上述这些。但在一开始,花一些时间解释这些 [7] Underfull \hbox (badness 10000) in paragraph at lines 452--453 \EU1/NotoSerifCJKSC(0)/m/sl/10 在Python解释器中输入命令是体验Python功能非常好的方式,但不建议采用这种方式来解决复 Underfull \hbox (badness 10000) in paragraph at lines 454--455 []\EU1/NotoSerifCJKSC(0)/m/sl/10 编程时,我们在文本编辑器里把Python指令写到一个文件里,这个文件称为\EU1/NotoS erifCJKSC(0)/bx/n/10 脚本\EU1/NotoSerifCJKSC(0)/m/sl/10 。一般而言, Underfull \hbox (badness 10000) in paragraph at lines 458--459 []\EU1/NotoSerifCJKSC(0)/m/sl/10 要执行脚本,你必须告诉Python解释器脚本文件的名称。在Unix或Windows命令窗口中 ,你可 Underfull \hbox (badness 10000) in paragraph at lines 470--472 []\EU1/NotoSerifCJKSC(0)/m/sl/10 “csev$”是操作系统提示符,“cat hello.py”是查看“hello.py”文件的 内容,其中包含了一 Underfull \hbox (badness 10000) in paragraph at lines 473--474 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们调用Python解释器,告诉它从“hello.py”文件中读取源代码,而不是用命令行交互 式一行 Underfull \hbox (badness 6758) in paragraph at lines 475--477 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你会发现,没有必要在Python程序文件末尾加上 \EU1/NotoSerifCJKSC(0 )/bx/n/10 quit()\EU1/NotoSerifCJKSC(0)/m/sl/10 。Python在读取源代码文件时,到达文 Underfull \hbox (badness 10000) in paragraph at lines 480--483 \EU1/NotoSerifCJKSC(0)/m/sl/10 是一个程序,不过只是一行代码的程序罢了,作用并不大。不过从最严格的定义上来说,它是一 Underfull \hbox (badness 10000) in paragraph at lines 484--485 []\EU1/NotoSerifCJKSC(0)/m/sl/10 思考一个可以被程序解决的问题,然后看一看解决这个问题的程序,这可能是理解程序的最简单 Underfull \hbox (badness 10000) in paragraph at lines 486--487 []\EU1/NotoSerifCJKSC(0)/m/sl/10 假设,你想对Facebook上的发帖进行社会计算方面的研究,并且你感兴趣的问题是一系列帖子 Underfull \hbox (badness 10000) in paragraph at lines 486--487 \EU1/NotoSerifCJKSC(0)/m/sl/10 中最常用的词汇是什么。你可以打印出这些发帖,然后通读文本,从中寻找最常见的词,但这需 Underfull \hbox (badness 10000) in paragraph at lines 486--487 \EU1/NotoSerifCJKSC(0)/m/sl/10 要很长时间而且很容易出错。你也可以通过编写Python程序来快速且准确地处理这个任务,这样 Underfull \hbox (badness 10000) in paragraph at lines 488--489 []\EU1/NotoSerifCJKSC(0)/m/sl/10 举例来说,阅读以下内容,这是关于一个小丑和一辆车的文本,找出出现次数最多的单词,并统 Underfull \hbox (badness 10000) in paragraph at lines 497--498 []\EU1/NotoSerifCJKSC(0)/m/sl/10 然后想象一下,你将要做的是对数百万行文本来完成这个统计任务会。坦率地说,学习Python, Underfull \hbox (badness 10000) in paragraph at lines 499--500 []\EU1/NotoSerifCJKSC(0)/m/sl/10 一个更好的消息是,我已经写了一个简单的程序来在文本文件中找到最常见的单词。我编写并测 [8] Excluding 'trinketfiles' comment. Underfull \hbox (badness 10000) in paragraph at lines 529--532 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你甚至不需要知道Python就可以使用这个程序。你需要通读到本书第10章来完全理解所用到的 Underfull \hbox (badness 10000) in paragraph at lines 529--532 \EU1/NotoSerifCJKSC(0)/m/sl/10 Python编程技术。你现在是最终用户,只需使用这个程序,你就会惊叹于它的聪明,感叹如何 Underfull \hbox (badness 10000) in paragraph at lines 529--532 \EU1/NotoSerifCJKSC(0)/m/sl/10 让你摆脱繁重的人工查看。你只需输入代码,保存到 \EU1/NotoSerifCJKSC(0)/b x/n/10 words.py \EU1/NotoSerifCJKSC(0)/m/sl/10 文件并执行它,或者你也可以 Underfull \hbox (badness 10000) in paragraph at lines 535--536 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这个示例充分体现了Python以及这门语言在你(最终用户)与我(程序员)之间扮演的中间人 Underfull \hbox (badness 10000) in paragraph at lines 535--536 \EU1/NotoSerifCJKSC(0)/m/sl/10 角色。通过Python这门通用语言,我们可以交流有用的指令序列(即程序),这样任何人在电 Underfull \hbox (badness 10000) in paragraph at lines 535--536 \EU1/NotoSerifCJKSC(0)/m/sl/10 脑里面安装了Python的人都可以使用它。实际上,交流双方并不是\EU1/NotoSerifCJ KSC(0)/bx/n/10 跟Python\EU1/NotoSerifCJKSC(0)/m/sl/10 交流,而是\EU1/NotoSerifCJKSC(0 )/bx/n/10 通过 Underfull \hbox (badness 10000) in paragraph at lines 539--540 \EU1/NotoSerifCJKSC(0)/m/sl/10 在接下来的几章中,我们将会学习更多Python的词汇、句子结构,段落结构,和故事结构。我们 Underfull \hbox (badness 10000) in paragraph at lines 541--542 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序的构造包含一些低层次的概念模式。这些构造模式不仅仅针对Python程序,而是每一种编程 Underfull \hbox (badness 10000) in paragraph at lines 546--548 []\EU1/NotoSerifCJKSC(0)/m/sl/10 从 “外部世界”获取数据,可以是从文件中读取数据,或者从某种传感器,比如麦克风或 Underfull \hbox (badness 10000) in paragraph at lines 549--550 []\EU1/NotoSerifCJKSC(0)/m/sl/10 将程序的结果显示在屏幕上,或保存在一个文件,或写入一个设备,如扬声器来播放音乐 [9] Underfull \hbox (badness 10000) in paragraph at lines 560--561 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这听起来太简单了以至于大家不会相信,然而事实上并不那么简单。这就好比,走路很简单吧, Underfull \hbox (badness 10000) in paragraph at lines 560--561 \EU1/NotoSerifCJKSC(0)/m/sl/10 只要“把一只脚放在另一只脚前面”就好了。编程的“艺术”就是不断地编织、组合这些基本元 Underfull \hbox (badness 10000) in paragraph at lines 566--567 \EU1/NotoSerifCJKSC(0)/m/sl/10 从前面与Python的对话中可以看到,我们编写Python代码时必须非常精确,很小的偏差和错误 Underfull \hbox (badness 10000) in paragraph at lines 568--569 []\EU1/NotoSerifCJKSC(0)/m/sl/10 初学者通常认为,Python不能容忍犯错,给人留下刻薄、可恨与粗暴的印象。虽然Python看 Underfull \hbox (badness 10000) in paragraph at lines 568--569 \EU1/NotoSerifCJKSC(0)/m/sl/10 上去与每个人一样,但它知道每个人的个性并且对他们持有一种怨恨的态度。由于这种怨恨, Underfull \hbox (badness 10000) in paragraph at lines 596--597 []\EU1/NotoSerifCJKSC(0)/m/sl/10 与Python争论并没什么好处。它只是一个工具,没有情感,并且它很高兴随时准备为你服务。它 Underfull \hbox (badness 10000) in paragraph at lines 596--597 \EU1/NotoSerifCJKSC(0)/m/sl/10 的错误信息看起来很苛刻,但这只是Python在寻求帮助。Python看到了你输入的内容,它只是 Underfull \hbox (badness 10000) in paragraph at lines 598--601 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python更像一只狗,无条件爱你,只能理解很少的关键词,一直用它那甜美的表情(\EU1/l mtt/m/n/10 >>>\EU1/NotoSerifCJKSC(0)/m/sl/10 )看着 Underfull \hbox (badness 1360) in paragraph at lines 598--601 \EU1/NotoSerifCJKSC(0)/m/sl/10 你,等待你输入一些它能理解的东西。当Python说道:“SyntaxError: invalid syntax”(语 Underfull \hbox (badness 10000) in paragraph at lines 598--601 \EU1/NotoSerifCJKSC(0)/m/sl/10 法错误:无效语法),它只是在摇着尾巴说:“你似乎说了什么,但我不太明白,不过希望你继 Underfull \hbox (badness 10000) in paragraph at lines 607--608 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这是你遇到的第一种错误,很容易解决。语法错误意味着,你违反了Python的“语 Underfull \hbox (badness 10000) in paragraph at lines 607--608 \EU1/NotoSerifCJKSC(0)/m/sl/10 法”规则。Python会尽其所能地指出它不能理解的那一行和相应字符。语法错误唯一棘 Underfull \hbox (badness 10000) in paragraph at lines 607--608 \EU1/NotoSerifCJKSC(0)/m/sl/10 手的是,有时候程序中需要修改的错误可能位于Python\EU1/NotoSerifCJKSC(0 )/bx/n/10 指出\EU1/NotoSerifCJKSC(0)/m/sl/10 的困惑的位置之前。所以, [10] Underfull \hbox (badness 10000) in paragraph at lines 609--610 []\EU1/NotoSerifCJKSC(0)/m/sl/10 逻辑错误是在程序没有语法错误的前提下,语句顺序或语句关系存在错误。逻辑错误 Underfull \hbox (badness 10000) in paragraph at lines 609--610 \EU1/NotoSerifCJKSC(0)/m/sl/10 的一个形象例子是,“打开水瓶喝水,把它放到书包里,走到图书馆,然后再把水瓶盖 Underfull \hbox (badness 10000) in paragraph at lines 611--612 []\EU1/NotoSerifCJKSC(0)/m/sl/10 语义错误是程序的语法完美且逻辑正确,但就是有一个错误。也就是说,程序完全 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 正确,但它不能做到你\EU1/NotoSerifCJKSC(0)/bx/n/10 想要\EU1/ NotoSerifCJKSC(0)/m/sl/10 它做的事。一个简单的例子,如果你给人指路怎么去一家餐 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 馆,“…当你走到有加油站的十字路口时,向左转,继续走一英里,你的左手边有一栋红 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 色建筑,餐馆就在那儿。”过了很长时间,你的朋友打来电话,他们正在一个农场,在一 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 个谷仓附件转悠,并没有看到餐馆的标志。”然后,你问:“你们在加油站左转还是右转 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 了?”他们说:“完全是按你指示的方向走,我还写到纸上,在加油站左转,继续走一英 Underfull \hbox (badness 10000) in paragraph at lines 611--612 \EU1/NotoSerifCJKSC(0)/m/sl/10 里”。然后,你说:“非常抱歉,虽然我的方向指示在语法上没错,但其中悲催地包含了 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 当阅读本书时,刚开始如果遇到某些概念不能很好理解时,不要担心。小时候学说话时,头几年 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 只能发出一些可爱的喃喃之音,这不是什么问题。花6个月的时间,从能说简单的词汇发展到能表 Underfull \hbox (badness 10000) in paragraph at lines 618--619 \EU1/NotoSerifCJKSC(0)/m/sl/10 达简单的句子;再用5到6年的时间,从句子上升到段落;再过几年能依据自身兴趣,独立写出一 Underfull \hbox (badness 10000) in paragraph at lines 622--623 []\EU1/NotoSerifCJKSC(0)/m/sl/10 不过学习一门新语言需要花时间去吸收和理解,然后才能做到运用自如。因此可能会给你带来 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 一些疑惑,因为我们会定义很多小的片段,它们之后会拼接成一副全景。而为了尝试让你看到 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 全景,我们会一再提及一些片段。由于本书的编写是线性的,并且如果你参加一门课,其推进 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 方式是线性的话,你完全也可以以一种非线性的方式去学习。可以前后来回翻阅,蜻蜓点水式的 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 阅读,可以浏览一些有难度的内容,但并不一定要理解所有的细节,这样有助于更好的理解编程 Underfull \hbox (badness 10000) in paragraph at lines 622--623 \EU1/NotoSerifCJKSC(0)/m/sl/10 之“道”。尽管你正在阅读的地方看起来可能有些费解,但通过回顾之前的内容,或者重做之前 Underfull \hbox (badness 10000) in paragraph at lines 624--625 []\EU1/NotoSerifCJKSC(0)/m/sl/10 通常在学习第一门编程语言时,会有一些值得欢呼雀跃的时刻。这就像你在用斧凿精心雕琢一块 Underfull \hbox (badness 10000) in paragraph at lines 626--627 []\EU1/NotoSerifCJKSC(0)/m/sl/10 如果有些事看起来特别困难,通宵熬夜耗着是没有意义的。休息一下,打个盹,吃点零食,向某 Underfull \hbox (badness 10000) in paragraph at lines 626--627 \EU1/NotoSerifCJKSC(0)/m/sl/10 人(或许是你的狗)倾诉下你当下遇到的问题,然后,以全新的眼光回过头来再看这个问题。我 Underfull \hbox (badness 10000) in paragraph at lines 626--627 \EU1/NotoSerifCJKSC(0)/m/sl/10 保证,一旦你从本书中学会了编程的概念,回头看时,你会发现编程真的是非常简单、优雅的, Underfull \hbox (badness 10000) in paragraph at lines 635--637 []\EU1/NotoSerifCJKSC(0)/m/sl/10 所有计算机的心脏。我们编写的软件都由它来执行,也称为“CPU”或者“处理 [11] Underfull \hbox (badness 10000) in paragraph at lines 669--671 []\EU1/NotoSerifCJKSC(0)/m/sl/10 存储程序和数据,电源关闭后数据不会丢失。辅助存储器的速度通常比主存储器 [12] [13] [14] Chapter 2. Overfull \hbox (30.1727pt too wide) in paragraph at lines 753--756 \EU1/NotoSerifCJKSC(0)/bx/n/10 值 \EU1/NotoSerifCJKSC(0)/m/sl/10 是程序要处理的一个基本要素,如 一个字母或一个数字。目前为止,我们接触到的值有\EU1/lmtt/m/n/10 1\EU1/NotoSerifCJKSC(0)/m/sl/10 、\EU1/l mtt/m/n/10 2\EU1/NotoSerifCJKSC(0)/m/sl/10 和“Hello, Underfull \hbox (badness 10000) in paragraph at lines 757--759 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这些值属于不同的\EU1/NotoSerifCJKSC(0)/bx/n/10 类型\EU1/ NotoSerifCJKSC(0)/m/sl/10 :2是整数,“Hello, World!”是\EU1/NotoSerifCJKSC(0)/bx/n/10 字符串\EU1/NotoSerifCJKSC(0)/m/sl/10 (因包含一“串”字母而得 Underfull \hbox (badness 10000) in paragraph at lines 783--784 []\EU1/NotoSerifCJKSC(0)/m/sl/10 显而易见,字符串属于\EU1/lmtt/m/n/10 str\EU1/NotoSerifCJ KSC(0)/m/sl/10 类型,整数属于\EU1/lmtt/m/n/10 int\EU1/NotoSerifCJKSC(0)/m/sl/10 类型。需要注 意的是,带小数点的数字使用\EU1/NotoSerifCJKSC(0)/bx/n/10 浮 Underfull \hbox (badness 10000) in paragraph at lines 795--796 []\EU1/NotoSerifCJKSC(0)/m/sl/10 那么,像’17’和’3.2’这种属于哪种类型呢?看起来像数字,但它们和字符串一样被放在单引 Underfull \hbox (badness 10000) in paragraph at lines 810--811 []\EU1/NotoSerifCJKSC(0)/m/sl/10 输入较大的数字时,你可能会在每三个数字之间加一个逗号,例如,\EU1/lmtt/m/n/10 1,000,000\EU1/NotoSerifCJKSC(0)/m/sl/10 。在Python中 [15] Underfull \hbox (badness 10000) in paragraph at lines 819--820 []\EU1/NotoSerifCJKSC(0)/m/sl/10 不过,这根本不是我们想要的!Python把\EU1/lmtt/m/n/10 1,000,00 0\EU1/NotoSerifCJKSC(0)/m/sl/10 解释成了一个逗号分隔的整数序列,它把 Underfull \hbox (badness 10000) in paragraph at lines 823--824 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这是我们遇到的第一个语义错误例子:代码成功运行,没有任何错误信息,但是它并没有做“正 Underfull \hbox (badness 10000) in paragraph at lines 842--844 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这个例子列举了三个赋值语句。第一条语句将字符串赋值给变量\EU1/lmtt/m/n/10 m essage\EU1/NotoSerifCJKSC(0)/m/sl/10 ;第二条语句将整 Underfull \hbox (badness 10000) in paragraph at lines 875--876 []\EU1/NotoSerifCJKSC(0)/m/sl/10 变量名不限长度,可以同时包含字母和数字,但是不能以数字开头。使用大写字母也是合法的, Overfull \hbox (128.60187pt too wide) in paragraph at lines 877--878 []\EU1/NotoSerifCJKSC(0)/m/sl/10 下划线(\EU1/lmtt/m/n/10 _\EU1/NotoSerifCJKSC(0)/m /sl/10 )可以出现在变量名中。它经常用在含有多个词的变量名中,例如,\EU1/lmtt/m/n/10 my_name\EU1/NotoSerifCJKS C(0)/m/sl/10 和\EU1/lmtt/m/n/10 airspeed_of_unladen_swallow\EU1/NotoSerifCJKSC(0 )/m/sl/10 。 Underfull \hbox (badness 10000) in paragraph at lines 877--878 \EU1/NotoSerifCJKSC(0)/m/sl/10 变量名可以采用下划线开头,但我们一般会避免这样命名,除非是在编写供他人使用的Python库 [16] Underfull \hbox (badness 10000) in paragraph at lines 894--895 []\EU1/lmtt/m/n/10 76trombones\EU1/NotoSerifCJKSC(0)/m/sl/10 是不合法的变量名,因为它是以数字开头 的。\EU1/lmtt/m/n/10 more@\EU1/NotoSerifCJKSC(0)/m/sl/10 也是不合法的,因为它包含 Underfull \hbox (badness 10000) in paragraph at lines 896--897 []\EU1/NotoSerifCJKSC(0)/m/sl/10 原因在于,\EU1/lmtt/m/n/10 class\EU1/NotoSerifCJKSC (0)/m/sl/10 是Python的\EU1/NotoSerifCJKSC(0)/bx/n/10 关键字\EU1/NotoSerifCJKSC(0)/m/ sl/10 。Python解释器使用关键字来识别程序的结构,因此,关 Underfull \hbox (badness 10000) in paragraph at lines 914--915 []\EU1/NotoSerifCJKSC(0)/m/sl/10 你可以在手边存留一份。如果解释器在一个变量名那里报错,而你又不知道为什么,那么检查一 Underfull \hbox (badness 10000) in paragraph at lines 925--926 []\EU1/NotoSerifCJKSC(0)/m/sl/10 一个脚本通常包含一连串的语句。如果超过一句的话,结果会随着程序的执行,一句一句地产 [17] Underfull \hbox (badness 1509) in paragraph at lines 1004--1006 \EU1/NotoSerifCJKSC(0)/bx/n/10 表达式 \EU1/NotoSerifCJKSC(0)/m/sl/10 是值、变量和运算符的组合。 值本身可以是一个表达式,变量亦如此。所以下面都是合法 Underfull \hbox (badness 10000) in paragraph at lines 1042--1043 \EU1/NotoSerifCJKSC(0)/m/sl/10 当一个表达式中出现多个运算符时,运算顺序由优先级规则来确定。对于数学运算符来说, [18] Underfull \hbox (badness 1783) in paragraph at lines 1048--1054 []\EU1/NotoSerifCJKSC(0)/bx/n/10 括号 \EU1/NotoSerifCJKSC(0)/m/sl/10 拥有最高运算优先级,可以 强制表达式按特定顺序运算。括号内的表达式最先进行运 Overfull \hbox (1.40756pt too wide) in paragraph at lines 1054--1057 []\EU1/NotoSerifCJKSC(0)/bx/n/10 幂运算\EU1/NotoSerifCJKSC(0)/m/sl/10 (次方、乘方)的优先级仅 次于括号,例如,\EU1/lmtt/m/n/10 2**1+1 \EU1/NotoSerifCJKSC(0)/m/sl/10 等于3,而不是4,\EU1/lm tt/m/n/10 3*1**3\EU1/NotoSerifCJKSC(0)/m/sl/10 等 Underfull \hbox (badness 10000) in paragraph at lines 1062--1063 []\EU1/NotoSerifCJKSC(0)/m/sl/10 相同优先级的运算符按从左到右的顺序依次运算。所以,\EU1/lmtt/m/n/10 5-3- 1\EU1/NotoSerifCJKSC(0)/m/sl/10 等于1,而不是3。先计 Underfull \hbox (badness 10000) in paragraph at lines 1071--1073 \EU1/NotoSerifCJKSC(0)/bx/n/10 模 \EU1/NotoSerifCJKSC(0)/m/sl/10 的运算对象是整数,得到的是第一 个整数除以第二个整数的余数。在Python中,模运算符用 Underfull \hbox (badness 10000) in paragraph at lines 1087--1088 []\EU1/NotoSerifCJKSC(0)/m/sl/10 模运算非常实用。举例来说,你可以检验一个数是否能被另一个数整除,如果\EU1/lmtt/m/ n/10 x%y\EU1/NotoSerifCJKSC(0)/m/sl/10 的结果是0,那 Underfull \hbox (badness 10000) in paragraph at lines 1091--1092 []\EU1/NotoSerifCJKSC(0)/m/sl/10 另外,模运算也可以提取一个数字最右边的数位。举例来说,\EU1/lmtt/m/n/10 x% 10\EU1/NotoSerifCJKSC(0)/m/sl/10 可以提取\EU1/lmtt/m/n/10 x\EU1/NotoSerifCJKSC(0)/m /sl/10 最右边的一位数字 [19] Underfull \hbox (badness 10000) in paragraph at lines 1121--1123 \EU1/NotoSerifCJKSC(0)/m/sl/10 有时候我们希望获取用户通过键盘输入的值。Python提供了一个内置函数叫\EU1/lmtt/m/ n/10 input\EU1/NotoSerifCJKSC(0)/m/sl/10 ,用来获取 Overfull \hbox (20.11595pt too wide) in paragraph at lines 1121--1123 \EU1/NotoSerifCJKSC(0)/m/sl/10 键盘输入[][][][][]。当调用这个函数时,程序会暂停运行,等待用户的输入。当用户按下\EU 1/lmtt/m/n/10 回车键\EU1/NotoSerifCJKSC(0)/m/sl/10 (\EU1/lmtt/m/n/10 Return\EU1/No toSerifCJKSC(0)/m/sl/10 或\EU1/lmtt/m/n/10 Enter\EU1/NotoSerifCJKSC(0)/m/sl/10 ) Overfull \hbox (4.64252pt too wide) in paragraph at lines 1135--1136 []\EU1/NotoSerifCJKSC(0)/m/sl/10 在请求用户输入之前,最好打印一条提示语句,告诉用户需要输入些什么。你可以通过在\EU1/lm tt/m/n/10 input\EU1/NotoSerifCJKSC(0)/m/sl/10 中 Underfull \hbox (badness 10000) in paragraph at lines 1149--1151 []\EU1/NotoSerifCJKSC(0)/m/sl/10 提示语结尾的 \EU1/lmtt/m/n/10 \n \EU1/NotoSerifCJKSC (0)/m/sl/10 表示\EU1/NotoSerifCJKSC(0)/bx/n/10 换行符\EU1/NotoSerifCJKSC(0)/m/sl/10 ,它是一个用于截断当前行,并开始下一行的特殊字符。这样一 [20] Underfull \hbox (badness 10000) in paragraph at lines 1189--1190 \EU1/NotoSerifCJKSC(0)/m/sl/10 当程序变得越来越长并且越来越复杂时,阅读难度也随之增大。正式的程序代码很密集,经常会 Underfull \hbox (badness 10000) in paragraph at lines 1191--1192 []\EU1/NotoSerifCJKSC(0)/m/sl/10 为解决这个问题,在程序代码中加入自然语言说明,来解释这段代码的作用,这会是一个不错的 Underfull \hbox (badness 10000) in paragraph at lines 1210--1211 []\EU1/NotoSerifCJKSC(0)/m/sl/10 对代码不显著的特征进行注释是非常有用的。我们可以合理假设读者能够理解代码在\EU1/Noto SerifCJKSC(0)/bx/n/10 做什么\EU1/NotoSerifCJKSC(0)/m/sl/10 ,但 Underfull \hbox (badness 10000) in paragraph at lines 1228--1229 []\EU1/NotoSerifCJKSC(0)/m/sl/10 清晰易懂的变量名能够减少注释的使用,但是变量名如果太长,就会使复杂的表达式变得更加难 Underfull \hbox (badness 10000) in paragraph at lines 1236--1237 []\EU1/NotoSerifCJKSC(0)/m/sl/10 编程入门阶段,你在阅读别人的程序和编写自己的程序时,对变量的命名可能会感到困惑。例 [21] Underfull \hbox (badness 10000) in paragraph at lines 1265--1266 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Python解释器看到这三个程序时,会觉得是\EU1/NotoSerifCJKSC(0)/b x/n/10 完全一样\EU1/NotoSerifCJKSC(0)/m/sl/10 的。但是对于人而言,阅读和理解它们却是 Underfull \hbox (badness 10000) in paragraph at lines 1265--1266 \EU1/NotoSerifCJKSC(0)/m/sl/10 非常不一样的。读者能够快速看懂的是第二个程序的\EU1/NotoSerifCJKSC(0)/bx /n/10 目的\EU1/NotoSerifCJKSC(0)/m/sl/10 ,这是因为该程序员选择了能够代表变 Underfull \hbox (badness 10000) in paragraph at lines 1267--1269 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这种变量命名法称为“助记变量命名法”。助记ˆ[对于“助记”的详细介绍,请参见 [][]$[] [][][] [] Underfull \hbox (badness 10000) in paragraph at lines 1267--1269 [] [] [][] [] [][][][][][][][][] [] [][][] [] [][][][] [] [][][][][][][][]$[][] \EU1/NotoSerifCJKSC(0)/m/sl/10 的意思就是帮助记忆。选择易于记忆的变量名,有助于我 Underfull \hbox (badness 10000) in paragraph at lines 1270--1271 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这看起来不错,使用助记变量命名法是一个好主意,但可能也会妨碍初学者解析并理解代码。这 Underfull \hbox (badness 10000) in paragraph at lines 1270--1271 \EU1/NotoSerifCJKSC(0)/m/sl/10 是由于初学者可能还没有记全Python的33个保留关键字,如果变量名中包含太多描述性的词语, Underfull \hbox (badness 10000) in paragraph at lines 1272--1273 []\EU1/NotoSerifCJKSC(0)/m/sl/10 下面两行简单的Python代码实现了循环。循环将在第5章介绍,这里尝试猜猜这两行代码的含 Underfull \hbox (badness 10000) in paragraph at lines 1281--1283 \EU1/NotoSerifCJKSC(0)/m/sl/10 解单词的基本含义吗?初学者很难分辨出代码中哪些部分\EU1/NotoSerifCJKSC(0)/ bx/n/10 必须\EU1/NotoSerifCJKSC(0)/m/sl/10 照抄示例中的,而哪些部分是可以 Underfull \hbox (badness 10000) in paragraph at lines 1293--1296 []\EU1/NotoSerifCJKSC(0)/m/sl/10 初学者可以较容易的从这段代码中判断哪些是Python定义的保留字,哪些是程序员选择的变量 Underfull \hbox (badness 10000) in paragraph at lines 1305--1308 \EU1/NotoSerifCJKSC(0)/m/sl/10 色来标记保留字,以让你能够更好的区分变量名与保留字。熟悉一段时间后,你就会很快地区分 [22] Underfull \hbox (badness 10000) in paragraph at lines 1384--1386 []\EU1/NotoSerifCJKSC(0)/m/sl/10 程序里面包含的信息,旨在帮助其他程序员(或任何查看源码的人)理解程序,而不会对 [23] Underfull \hbox (badness 10000) in paragraph at lines 1416--1418 []\EU1/NotoSerifCJKSC(0)/m/sl/10 表示一类值。目前,我们已经见到的类型有整数(\EU1/lmtt/m/n/10 int\EU1 /NotoSerifCJKSC(0)/m/sl/10 ),浮点数(\EU1/lmtt/m/n/10 float\EU1/NotoSerifCJKSC(0)/m /sl/10 ),和字符串 Underfull \hbox (badness 10000) in paragraph at lines 1446--1448 []\EU1/NotoSerifCJKSC(0)/m/sl/10 我们暂时不用担心我们计算的结果是否能正好精确到小数点后两位。如果你非常想的话,可以试 [24] Chapter 3. Underfull \hbox (badness 10000) in paragraph at lines 1525--1526 []\EU1/NotoSerifCJKSC(0)/m/sl/10 虽然你可能很熟悉这些运算符,但要注意这些Python符号并不等同于数学符号。一个常见的错误 Underfull \hbox (badness 10000) in paragraph at lines 1525--1526 \EU1/NotoSerifCJKSC(0)/m/sl/10 是用了单等号(\EU1/lmtt/m/n/10 =\EU1/NotoSerifCJKSC(0)/ m/sl/10 ),而没有用双等号(\EU1/lmtt/m/n/10 ==\EU1/NotoSerifCJKSC(0)/m/sl/10 )。请记住,\EU1/ lmtt/m/n/10 =\EU1/NotoSerifCJKSC(0)/m/sl/10 是赋值运算符,\EU1/lmtt/m/n/10 ==\EU1/Noto SerifCJKSC(0)/m/sl/10 是比较运算符。不 Underfull \hbox (badness 1383) in paragraph at lines 1533--1535 \EU1/NotoSerifCJKSC(0)/bx/n/10 逻辑运算符 \EU1/NotoSerifCJKSC(0)/m/sl/10 包括\EU1/lmtt /m/n/10 and\EU1/NotoSerifCJKSC(0)/m/sl/10 (与)、\EU1/lmtt/m/n/10 or\EU1/NotoSerif CJKSC(0)/m/sl/10 (或)与\EU1/lmtt/m/n/10 not\EU1/NotoSerifCJKSC(0)/m/sl/10 (非)三个。这 些运算符的语义与它们的英文含义 [25] Underfull \hbox (badness 10000) in paragraph at lines 1547--1548 []\EU1/NotoSerifCJKSC(0)/m/sl/10 严格讲,逻辑运算符的运算对象应该是布尔表达式,但在Python中并不是很严格。任何非零数字 Underfull \hbox (badness 10000) in paragraph at lines 1556--1557 []\EU1/NotoSerifCJKSC(0)/m/sl/10 这种灵活性的存在是有用的,但也会产生一些微妙的困惑。除非你清楚自己在做什么,否则不要 <../images/if.eps> [26] <../images/if-else.eps> [27] <../images/elif.eps> [28] <../images/nested.eps> [29] [30] [31] [32] [33] [34] Chapter 4. [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] Chapter 5. [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] Chapter 6. <../images/string.eps> [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] Chapter 7. <../images/arch.eps> [69] <../images/handle.eps> [70] [71] Excluding 'trinketfiles' comment. [72] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [73] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [74] Excluding 'trinketfiles' comment. [75] Excluding 'trinketfiles' comment. [76] Underfull \hbox (badness 1205) in paragraph at lines 4986--4993 \EU1/NotoSerifCJKSC(0)/m/sl/10 programmers to decide which of two equivalent so lutions to a problem is “more [77] [78] [79] [80] Chapter 8. Underfull \hbox (badness 1253) in paragraph at lines 5219--5222 []\EU1/NotoSerifCJKSC(0)/m/sl/10 ~$[]$ {.python} [10, 20, 30, 40][‘crunchy frog ’, ‘ram bladder’, ‘lark vomit’] ~$[]$ [81] [82] [83] [84] [85] [86] [87] Excluding 'trinketfiles' comment. <../images/list1.eps> [88] [89] [90] [91] [92] Overfull \hbox (8.18616pt too wide) in paragraph at lines 6238--6238 [] \EU1/lmtt/m/n/9 Details: http://source.sakaiproject.org/viewsvn/?vie w=rev&rev=39772[] [93] [94] [95] [96] Chapter 9. [97] [98] [99] [100] Excluding 'trinketfiles' comment. [101] [102] [103] Excluding 'trinketfiles' comment. [104] [105] [106] Chapter 10. [107] [108] [109] [110] [111] [112] Excluding 'trinketfiles' comment. [113] [114] [115] [116] [117] [118] Chapter 11. Excluding 'trinketfiles' comment. [119] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [120] Excluding 'trinketfiles' comment. [121] Excluding 'trinketfiles' comment. Excluding 'trinketfiles' comment. [122] Excluding 'trinketfiles' comment. [123] Excluding 'trinketfiles' comment. [124] Excluding 'trinketfiles' comment. [125] Excluding 'trinketfiles' comment. [126] Excluding 'trinketfiles' comment. [127] [128] [129] [130] [131] [132] Chapter 12. [133] <../images/socket.eps> [134] [135] [136] Overfull \hbox (7.70644pt too wide) in paragraph at lines 9053--9058 []\EU1/NotoSerifCJKSC(0)/m/sl/10 We can slow down our successive \EU1/lmtt/m/n/ 10 recv() \EU1/NotoSerifCJKSC(0)/m/sl/10 calls by uncommenting the call to \EU1 /lmtt/m/n/10 time.sleep()\EU1/NotoSerifCJKSC(0)/m/sl/10 . [137] [138] [139] Overfull \hbox (28.29022pt too wide) in paragraph at lines 9287--9290 []\EU1/NotoSerifCJKSC(0)/m/sl/10 You can download and “install” BeautifulSoup o r you can simply place the \EU1/lmtt/m/n/10 BeautifulSoup.py [140] [141] [142] [143] [144] Chapter 13. <../images/xml-tree.eps> [145] [146] [147] [148] [149] <../images/soa.eps> [150] [151] [152] [153] Excluding 'trinketfiles' comment. [154] [155] Excluding 'trinketfiles' comment. [156] [157] [158] Chapter 14. [159] [160] <../images/program.eps> [161] <../images/program-oo.eps> [162] <../images/program-oo-code.eps> <../images/program-oo-bs4.eps> Underfull \vbox (badness 4608) has occurred while \output is active [163] <../photos/cookie_cutter_flickr_Didriks.eps> [164] [165] [166] [167] [168] [169] [170] Underfull \hbox (badness 1436) in paragraph at lines 11165--11169 []\EU1/NotoSerifCJKSC(0)/m/sl/10 A function that is contained within a class an d the objects that are con- [171] [172] Chapter 15. <../images/relational.eps> [173] [174] Underfull \hbox (badness 1237) in paragraph at lines 11303--11310 []\EU1/NotoSerifCJKSC(0)/m/sl/10 The \EU1/lmtt/m/n/10 connect \EU1/NotoSerifCJK SC(0)/m/sl/10 operation makes a “connection” to the database stored in the file <../images/cursor.eps> [175] <../images/tracks.eps> [176] [177] [178] [179] Underfull \hbox (badness 1194) in paragraph at lines 11655--11659 \EU1/NotoSerifCJKSC(0)/m/sl/10 retrieved the friends of this account, and how m any times this account has been [180] [181] [182] Underfull \hbox (badness 1635) in paragraph at lines 11869--11875 []\EU1/NotoSerifCJKSC(0)/m/sl/10 We can see that we have properly recorded that we have visited \EU1/lmtt/m/n/10 lhawthorn \EU1/NotoSerifCJKSC(0)/m/sl/10 and [183] [184] [185] Underfull \vbox (badness 3895) has occurred while \output is active [186] [187] [188] [189] [190] [191] [192] [193] Underfull \vbox (badness 1147) has occurred while \output is active [194] [195] [196] Chapter 16. <../images/google-map.eps> [197] [198] <../images/pagerank.eps> [199] [200] [201] <../images/wordcloud.eps> [202] [203] [204] [205] <../images/mailorg.eps> (./tmp.appendix.tex [206] Appendix A. [207] [208] Underfull \hbox (badness 1082) in paragraph at lines 155--180 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Lloyd Hugh Allen, Yvon Boulianne, Fred Bremmer , Jonah Cohen, Michael Conlon, Underfull \hbox (badness 1838) in paragraph at lines 155--180 \EU1/NotoSerifCJKSC(0)/m/sl/10 Chris Wrobel, Moshe Zadka, Christoph Zwerschke, James Mayer, Hayden McAfee, [209] [210] Appendix B. ) [211] (./tmp.ind [212] [213] Underfull \hbox (badness 2503) in paragraph at lines 195--196 []\EU1/NotoSerifCJKSC(0)/m/sl/10 Free Documentation License, GNU, [][]208[][], [214] [215] [216] [217] [218] [219]) Package createspace Info: spine is about 35.9024pt wide Package createspace Info: book cost is 5.90USD (3.49USD for pro plan) (./tmp.aux) LaTeX Font Warning: Some font shapes were not available, defaults substituted. ) (see the transcript file for additional information) Output written on tmp.pdf (231 pages). Transcript written on tmp.log. Output on x.pdf