⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node5.html

📁 同样是来自国外的经典python教材
💻 HTML
📖 第 1 页 / 共 4 页
字号:
              <code>abs(<var>z</var>)</code> 来得到 <code>z</code> 的magnitude(以浮点数表示),或是如上所述用<code>z.real</code> 直接得到其实数部分。   </p>              <p> </p>              <dl>              <dd><pre class="verbatim">&gt;&gt;&gt; a=1.5+0.5j<br>&gt;&gt;&gt; float(a)<br>Traceback (innermost last):<br>  File "&lt;stdin&gt;", line 1, in ?<br>TypeError: can't convert complex to float; use e.g. abs(z)<br>&gt;&gt;&gt; a.real<br>1.5<br>&gt;&gt;&gt; abs(a)<br>1.58113883008<br></pre>                </dd>                </dl>                  <p> 在互动模式之下,最后一个印出来的expression的值会储存在一个特殊变数 "<code>_</code>" 之中。这表示,当你用Python的直译器来当作计算机用的时候,想要连续做运算其实是方便许多的。如下例:   </p>                <p> </p>                <dl>                <dd><pre class="verbatim">&gt;&gt;&gt; tax = 17.5 / 100<br>&gt;&gt;&gt; price = 3.50<br>&gt;&gt;&gt; price * tax<br>0.61249999999999993<br>&gt;&gt;&gt; price + _<br>4.1124999999999998<br>&gt;&gt;&gt; round(_, 2)<br>4.1100000000000003<br></pre>                  </dd>                  </dl>                    <p> 对于使用者来说, "<code>_</code>" 这个变数是一个唯读的变数。你没有办法设定一个值给它,当你这样做的时候,事实上你是重新创造一个同名的变数,但是跟之前系统内建的"<code>_</code>" 这个变数是一点关系也没有的了。  </p>                  <p>  </p>                  <h2> <br> 3.1.2 字串   </h2>                    <p> 除了数字之外, Python也有能力处理字串(string)。字串在Python中有很多种表达方式,它可以放在双括号&rdquo;&rdquo;之中,也可以放在单括号&rsquo;&rsquo;里面:  </p>                  <p> </p>                  <dl>                  <dd><pre class="verbatim">&gt;&gt;&gt; 'spam eggs'<br>'spam eggs'<br>&gt;&gt;&gt; 'doesn\'t'<br>"doesn't"<br>&gt;&gt;&gt; "doesn't"<br>"doesn't"<br>&gt;&gt;&gt; '"Yes," he said.'<br>'"Yes," he said.'<br>&gt;&gt;&gt; "\"Yes,\" he said."<br>'"Yes," he said.'<br>&gt;&gt;&gt; '"Isn\'t," she said.'<br>'"Isn\'t," she said.'<br></pre>                    </dd>                    </dl>                      <p> 字串常数(string literals)是可以跨越多行的,其表示方法有很多。如果要换行的话可以用&rdquo;\&rdquo;符号来表示之。如下例:  </p>                    <p> </p>                    <dl>                    <dd><pre class="verbatim">hello = "This is a rather long string containing\n\<br>several lines of text just as you would do in C.\n\<br>    Note that whitespace at the beginning of the line is\<br> significant.\n"<br>print hello<br></pre>                      </dd>                      </dl>                        <p> 这个例子会印出以下的结果:   </p>                      <p> </p>                      <dl>                      <dd><pre class="verbatim">This is a rather long string containing<br>several lines of text just as you would do in C.<br>    Note that whitespace at the beginning of the line is significant.<br></pre>                        </dd>                        </dl>                          <p> 你也可以用成对的三个单引号(  <code>"""</code> ) 或双引号 ( <code>'''</code> ) 来表示字串。在此情况下你所打入的ENTER就会直接被解读为换行符号而不需要再用\n了。  </p>                        <p> </p>                        <dl>                        <dd><pre class="verbatim">print """<br>Usage: thingy [OPTIONS] <br>     -h                        Display this usage message<br>     -H hostname               Hostname to connect to<br>"""<br></pre>                          </dd>                          </dl>                            <p> 这个例子会印出以下的结果:  </p>                          <p> </p>                          <dl>                          <dd><pre class="verbatim">Usage: thingy [OPTIONS] <br>     -h                        Display this usage message<br>     -H hostname               Hostname to connect to<br></pre>                            </dd>                            </dl>                              <p> 如果你打入的expression是字串的运算,运算的结果的同样的会由直译器显示出来,而且显示的方式跟你直接打入字串常数(stringliterals)是一样的:会在引号之中,所有有escape character &ldquo;\&rdquo;表示的字元都会依样的显示出来。如果字串本身包含有单引号,整个字串就会用双引号括起来,要不然就会只用单引号来把整个字串括起来。(如果你使用                            <tt class="keyword">print</tt> 这个叙述(statement)来印出字串的话,萤幕的输出就不会有引号出现,而且字串中的escapecharacter (\&rdquo;表示的特殊字元) 都会显示出其所代表的意义来。)   </p>                            <p> 字串可以用 <code>+</code> 这个运算元来相加 (连接起来),或是用                            <code>*</code> 这个运算元来重复之。请看例子:   </p>                            <p> </p>                            <dl>                            <dd><pre class="verbatim">&gt;&gt;&gt; word = 'Help' + 'A'<br>&gt;&gt;&gt; word<br>'HelpA'<br>&gt;&gt;&gt; '&lt;' + word*5 + '&gt;'<br>'&lt;HelpAHelpAHelpAHelpAHelpA&gt;'<br></pre>                              </dd>                              </dl>                                <p> 如果你把两个字串常数放在一起,它们自动就会相加起来。所以,上面的例子的第一行也可以写作"<tt class="samp">word = 'Help' 'A'</tt>" 。不过这个方法只适用于两个字串常数的相加,其他情况就不适合了。请看例子:  </p>                              <p> </p>                              <dl>                              <dd><pre class="verbatim">&gt;&gt;&gt; import string<br>&gt;&gt;&gt; 'str' 'ing'                   #  &lt;-  This is ok<br>'string'<br>&gt;&gt;&gt; string.strip('str') + 'ing'   #  &lt;-  This is ok<br>'string'<br>&gt;&gt;&gt; string.strip('str') 'ing'     #  &lt;-  This is invalid<br>  File "&lt;stdin&gt;", line 1<br>    string.strip('str') 'ing'<br>                            ^<br>SyntaxError: invalid syntax<br></pre>                                </dd>                                </dl>                                  <p> 如同在C语言一样,字串是有标记(subscript(index))的,第一个字元的标记(subscript(index))就是0。在Python中没有另外一个字元character资料型态,一个字元就是一个长度为1的字串。就像是在Icon语言一样,字串是可以用其subscript(index)来切出( <i>slice notation</i> )其中的一部份的,其语法为"<tt class="samp" string[subscprt:subscprt]</tt="">"。  </tt></p>                                <p> </p>                                <dl>                                <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[4]<br>'A'<br>&gt;&gt;&gt; word[0:2]<br>'He'<br>&gt;&gt;&gt; word[2:4]<br>'lp'<br></tt></pre>                                  </dd>                                  </dl>                                    <p> <tt class="samp" string[subscprt:subscprt]</tt="">与C不同的是,Python的字串是不可改变的(immutable),如果你想要改变其中的一个字元或是一个部份(slice),你会得到一个错误的信息:  </tt></p>                                  <p> </p>                                  <dl>                                  <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[0] = 'x'<br>Traceback (innermost last):<br>  File "&lt;stdin&gt;", line 1, in ?<br>TypeError: object doesn't support item assignment<br>&gt;&gt;&gt; word[:-1] = 'Splat'<br>Traceback (innermost last):<br>  File "&lt;stdin&gt;", line 1, in ?<br>TypeError: object doesn't support slice assignment<br></tt></pre>                                    </dd>                                    </dl>                                      <p> <tt class="samp" string[subscprt:subscprt]</tt="">但是你可以任意使用一个字串的一个字元或是一个部份(slice)来创造出另一个字串,这是完全可行的:   </tt></p>                                    <p> </p>                                    <dl>                                    <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; 'x' + word[1:]<br>'xelpA'<br>&gt;&gt;&gt; 'Splat' + word[-1:]<br>'SplatA'<br></tt></pre>                                      </dd>                                      </dl>                                        <p> <tt class="samp" string[subscprt:subscprt]</tt="">当你用字串切片(string slice)的语法时,可以使用其预定(default)的subscript(index)值,这是很方便的。第一个subscript(index)的预设值是0,第二个subscript(index)的预设值则是这个字串的整体长度。  </tt></p>                                      <p> </p>                                      <dl>                                      <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[:2]    # The first two characters<br>'He'<br>&gt;&gt;&gt; word[2:]    # All but the first two characters<br>'lpA'<br></tt></pre>                                        </dd>                                        </dl>                                          <p> <tt class="samp" string[subscprt:subscprt]</tt="">所以, <code>s[:i] + s[i:]</code> 会恰好等于  <code>s</code> 。你可以想一想为什么:  </tt></p>                                        <p> </p>                                        <dl>                                        <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[:2] + word[2:]<br>'HelpA'<br>&gt;&gt;&gt; word[:3] + word[3:]<br>'HelpA'<br></tt></pre>                                          </dd>                                          </dl>                                            <p> <tt class="samp" string[subscprt:subscprt]</tt="">如果你用一些奇怪的index来切割字串,Python直译器也都处理的很好:如果第二个index太大的话就自动代换为字串的长度,如果第二个index比第一个index还要小的话就自动传回一个空字串。   </tt></p>                                          <p> </p>                                          <dl>                                          <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[1:100]<br>'elpA'<br>&gt;&gt;&gt; word[10:]<br>''<br>&gt;&gt;&gt; word[2:1]<br>''<br></tt></pre>                                            </dd>                                            </dl>                                              <p> <tt class="samp" string[subscprt:subscprt]</tt="">字串的index甚至可以是负数,若是负数的话,就必须从字串的尾巴开始算起。如下例:   </tt></p>                                            <p> </p>                                            <dl>                                            <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[-1]     # The last character<br>'A'<br>&gt;&gt;&gt; word[-2]     # The last-but-one character<br>'p'<br>&gt;&gt;&gt; word[-2:]    # The last two characters<br>'pA'<br>&gt;&gt;&gt; word[:-2]    # All but the last two characters<br>'Hel'<br></tt></pre>                                              </dd>                                              </dl>                                                <p> <tt class="samp" string[subscprt:subscprt]</tt="">但是 -0 事实上是等于 0 ,所以不会从尾巴开始算起。  </tt></p>                                              <p> </p>                                              <dl>                                              <dd><pre class="verbatim"><tt class="samp" string[subscprt:subscprt]</tt="">&gt;&gt;&gt; word[-0]     # (since -0 equals 0)<br>'H'<br></tt></pre>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -