python入门基础
<h2>1 变量和简单数据类型</h2><p>变量命名格式:变量名 = “赋值”</p>
<h3>1.1 变量使用规范</h3>
<p>使用变量时,需要遵守一些规则。违反这些规则将引发错误。</p>
<p>~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。</p>
<p>~变量名不能将Python保留字和函数名作为变量名。如print等</p>
<p>如下是python3的33个保留字列表:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201903/1008644-20190325105531997-1116734281.png" alt=""></p>
<p>~变量名要简单又具有描述性。如name比n好,user_name比u_n好。</p>
<p>~慎用大写字母I和O,避免看错成数字1和0。</p>
<h3>1.2 字符串</h3>
<p>字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中引号包括单引号和双引号。这种灵活性能够在字符串中包含引号和撇号,如:</p>
<div class="cnblogs_code">
<pre>>>> str = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">I'm David</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> str1 = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">I told my friend,"i love Python"</span><span style="color: rgba(128, 0, 0, 1)">'</span></pre>
</div>
<p><strong>常用字符串操作方法</strong></p>
<p>以首字母大写的方式显示每个单词:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">>>> name = "hello python world"<br>>>> print(name.title())<br>Hello Python World</span></pre>
</div>
<p> 将字符串改为全部大写或全部小写:</p>
<div class="cnblogs_code">
<pre>>>> str1 = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">I love python</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(str1.upper())<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">将字符串改为全部大写</span>
<span style="color: rgba(0, 0, 0, 1)">I LOVE PYTHON
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(str1.lower()) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">将字符串改为全部小写</span>
i love python</pre>
</div>
<p> 字符串合拼(拼接)</p>
<p>Python使用加号(+)来合拼字符串,如:</p>
<div class="cnblogs_code">
<pre>>>> first_name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Guido</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> last_name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">van Rossum</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> full_name = first_name + <span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span> +<span style="color: rgba(0, 0, 0, 1)"> last_name
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(full_name)
Guido van Rossum</span></pre>
</div>
<p>使用制表符\t或换行符\n添加空白:</p>
<div class="cnblogs_code">
<pre>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Languages:\n\tPython\n\tC++\n\tPHP</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
Languages:
Python
C</span>++<span style="color: rgba(0, 0, 0, 1)">
PHP</span></pre>
</div>
<p> 删除字符串的空格:</p>
<div class="cnblogs_code">
<pre>>>> name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"> p y t h o n </span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.rstrip()) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">删除字符串右端空格</span>
<span style="color: rgba(0, 0, 0, 1)"> p y t h o n
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.lstrip())<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">删除字符串左端空格</span>
<span style="color: rgba(0, 0, 0, 1)">p y t h o n
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.strip()) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">删除字符串两端空格</span>
<span style="color: rgba(0, 0, 0, 1)">p y t h o n
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.replace(<span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">''</span>))<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">删除字符串全部空格包括制表符和换行符</span>
python</pre>
</div>
<p> 字符串的序号</p>
<p> 字符串是字符的序列,可以按照单个字符或字符片段进行索引。</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201903/1008644-20190325132124713-864378621.png" alt=""></p>
<div class="cnblogs_code">
<pre>>>> name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Hello World</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(name)
H
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name)
Hello Worl
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name[-1<span style="color: rgba(0, 0, 0, 1)">])
d
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(name[::])
Hello World
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name)
Hello World</span></pre>
</div>
<p> 找到字符串中最低字符索引号:S.find(sub [,start [,end]]) -> int </p>
<p>失败时返回-1</p>
<div class="cnblogs_code">
<pre>>>> name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hello world</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.find(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">d</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">))
</span>10</pre>
</div>
<p>返回某些字符出现的次数:S.count(sub[, start[, end]]) -> int</p>
<div class="cnblogs_code">
<pre>>>> name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hello world</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.count(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">l</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">))
</span>3</pre>
</div>
<p> 把字符串由分隔符返回一个列表:S.split(]) -> list of strings,如果给定maxsplit,则最多为maxsplit</p>
<div class="cnblogs_code">
<pre>>>> name = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hello world</span><span style="color: rgba(128, 0, 0, 1)">"</span>
>>> <span style="color: rgba(0, 0, 255, 1)">print</span>(name.split(<span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">))
[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">hello</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">world</span><span style="color: rgba(128, 0, 0, 1)">'</span>]<br>>>> print(name.split(' ',0))<br>['hello world']</pre>
</div>
<p> 字符串格式化输出(format和%用法)</p>
<p>%方法格式代码</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201903/1008644-20190325151244355-1398167457.png" alt=""></p>
<div class="cnblogs_code">
<pre>>>> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{}:计算机{}的CPU占用率为{}%</span><span style="color: rgba(128, 0, 0, 1)">"</span>.format(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">2019-03-25</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">'</span>,10)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">S.format(*args, **kwargs) -> string</span>
<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">2019-03-25:计算机python的CPU占用率为10%</span><span style="color: rgba(128, 0, 0, 1)">'<br>>>> "%s:计算机%s的CPU占用率为%d%%" % ('2019-03-25','python',10) #%用法<br>'2019-03-25:计算机python的CPU占用率为10%</span></pre>
</div>
<p><strong><span style="color: rgba(255, 0, 0, 1)">小结:可以用help函数查看字符串的相关操作,比如help(str.find)</span></strong></p>
<h2>2 组合数据类型</h2>
<h3>2.1 集合类型</h3>
<p><strong>集合的定义及操作</strong></p>
<p>~集合用大括号{}表示,元素间用逗号分隔;</p>
<p>~建立集合类型用{}或set();</p>
<p>~建立空集合类型,必须用set();</p>
<p>~集合元素之间无序;</p>
<p>~集合中每个元素唯一,不存在相同元素</p>
<div class="cnblogs_code">
<pre>>>> A = {<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">666</span><span style="color: rgba(128, 0, 0, 1)">'</span>,(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">wenwei-blog</span><span style="color: rgba(128, 0, 0, 1)">"</span>,666<span style="color: rgba(0, 0, 0, 1)">)}
{</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">666</span><span style="color: rgba(128, 0, 0, 1)">'</span>, (<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">wenwei-blog</span><span style="color: rgba(128, 0, 0, 1)">'</span>, 666<span style="color: rgba(0, 0, 0, 1)">)}
</span>>>> B = set(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">pypy</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
{</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">y</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">p</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
</span>>>> C = {<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">"</span>,123,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">"</span>,123<span style="color: rgba(0, 0, 0, 1)">}
{</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">'</span>, 123}</pre>
</div>
<p><strong>集合操作符</strong></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190423143918950-891494727.png" alt="" width="633" height="256"></p>
<p>6个操作符</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190423144030670-1762699289.png" alt=""></p>
<p>4个增强操作符</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190423144018652-336247859.png" alt=""></p>
<p><strong> 集合操作方法</strong></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190423144147347-201341604.png" alt=""></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190423144205174-192606575.png" alt=""></p>
<p><strong>集合应用场景</strong></p>
<p>包含关系比较;数据去重。</p>
<h3>2.1 序列类型定义</h3>
<p>~序列是具有先后关系的一组元素</p>
<p>~序列是一个基类类型(基本数据类型)</p>
<p>~序列类型分为字符串、列表、元组类型</p>
<h3>2.2 序列类型之列表</h3>
<p>列表由一系列按特定顺序排列的元素组成,用方括号[]来表示列表。</p>
<p><strong>列表的增删改查相关操作</strong></p>
<table border="2" align="left">
<tbody>
<tr style="background-color: rgba(17, 211, 238, 1)">
<td align="left">
<p><span style="font-size: 13px">函数或方法</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">描述</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">实例</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L=x</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 替换列表L第i数据项为x</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">>>> L = ['Python','PHP','JavaScript','C++']</span></p>
<p><span style="font-size: 13px">>>> L = 'Java'</span></p>
<p><span style="font-size: 13px">>>> L</span></p>
<p><span style="font-size: 13px">['Python', 'Java', 'JavaScript', 'C++']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L=L1</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 用列表L1替换列表L中第i到j项数据</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['Python', 'Java', 'JavaScript', 'C++']<br>>>> L1 = ['C','Go']<br>>>> L=L1<br>>>> L<br>['C', 'Go', 'JavaScript', 'C++']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> del L<br></span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">删除列表L第i到第j项以k为步数的数据 <br></span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'Go', 'JavaScript', 'C++', 'Java', 'C#', 'Ruby', 'Lua']<br>>>> del L<br>>>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L+=L1或L.extend(L1)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 将列表L1元素增加到列表L中</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L;L1</span></p>
<p><span style="font-size: 13px">['C', 'JavaScript', 'Java', 'Ruby', 'Lua']<br>['C', 'Go']<br>>>> L+=L1<br>>>> L;L1<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']<br>['C', 'Go']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L*=n</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 将L列表的元素重复n次</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L1*=2<br>>>> L1<br>['C', 'Go', 'C', 'Go']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L.append(x)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 在L列表最好添加元素x</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go']<br>>>> L.append('Python')<br>>>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L.clear()</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">删除列表L的所有元素</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>>>> L.clear()<br>>>> L<br>[]</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px"> L1 = L.copy()<br></span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 复制L列表生成新的L1列表</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>>>> L1 = L.copy()<br>>>> L1<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.insert(i,x)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 在列表L的第i位置增加元素x</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>>>> L.insert(2,'PHP');L<br>['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.pop(i)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">将列表L中的第i项元素删除</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">>>> L;L.pop(2);<br>['C', 'JavaScript', 'PHP', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>'PHP'<br>>>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br></span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.remove(x)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> 将列表的第一个x元素删除</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px"> >>> L<br>['C', 'JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>>>> L.remove('C')<br>>>> L<br>['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>>>> </span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.reverse(x)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">将列表L中的元素反转</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">>>> L;L.reverse();L<br>['JavaScript', 'Java', 'Ruby', 'Lua', 'C', 'Go', 'Python']<br>['Python', 'Go', 'C', 'Lua', 'Ruby', 'Java', 'JavaScript']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.sort()</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">将列表L的元素按首字母顺序排序</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">>>> L.sort()<br>>>> L<br>['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']</span></p>
</td>
</tr>
<tr>
<td align="left">
<p><span style="font-size: 13px">L.index(x)</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">获取列表L的x元素的索引号</span></p>
</td>
<td align="left">
<p><span style="font-size: 13px">>>> L.index('Python')<br>5<br>>>> L<br>['C', 'Go', 'Java', 'JavaScript', 'Lua', 'Python', 'Ruby']</span></p>
</td>
</tr>
</tbody>
</table>
<p><strong><strong>对列表数字执行简单统计计算</strong></strong></p>
<div class="cnblogs_code">
<pre>>>> digits =
</span>>>><span style="color: rgba(0, 0, 0, 1)"> min(digits)
</span>1
>>><span style="color: rgba(0, 0, 0, 1)"> max(digits)
</span>434
>>><span style="color: rgba(0, 0, 0, 1)"> sum(digits)
</span>624</pre>
</div>
<p><strong> 列表相关练习</strong></p>
<p>练习1:创建一个列表,其中包含数字1-100并打印出来然后计算列表数字的总值。</p>
<div class="cnblogs_code">
<pre>>>> digits = ;sum(digits)
</span>5050</pre>
</div>
<p>练习2:求1-20的奇数</p>
<div class="cnblogs_code">
<pre>>>> <span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(1,21,2<span style="color: rgba(0, 0, 0, 1)">):
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(i)
</span>1
3
5
7
9
11
13
15
17
19</pre>
</div>
<p> 练习3: 输出3-30以内能被3整除的数字</p>
<div class="cnblogs_code">
<pre>>>> lists =
</span>>>><span style="color: rgba(0, 0, 0, 1)"> lists
[</span>3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30<span style="color: rgba(0, 0, 0, 1)">]
</span>>>> <span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> lists:
</span><span style="color: rgba(0, 0, 255, 1)">if</span> i % 3 ==<span style="color: rgba(0, 0, 0, 1)"> 0:
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(i)
</span>3
6
9
12
15
18
21
24
27
30</pre>
</div>
<h3>2.3 序列类型之元组</h3>
<div style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px">元组其实跟列表差不多,也是存一组数据,只不过它一旦创建便不能修改,所以又叫只读列表</div>
<div style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px">它只有两个方法,一个是count(统计元组某个元素出现的次数tuple.count('str')),一个是index(查看某个元素的索引号tuple.index('str'))</div>
<div class="cnblogs_code">
<pre>>>> names = (<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zhiwenwei</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zhouyouxian</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span>>>> names.index(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zhiwenwei</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
0
</span>>>> names.count(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">zhiwenwei</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
</span>1</pre>
</div>
<p style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px"><span style="color: rgba(223, 64, 42, 1)"><strong><span style="color: rgba(0, 0, 0, 1)">元组练习题</span></strong><br></span></p>
<div>有如下变量,请实现要求的功能</div>
<div> tu = ("alex", , "k3": (11,22,33)}, 44])</div>
<div> a. 请问tu变量中的第一个元素 “alex” 是否可被修改?</div>
<div> 元组不可直接被修改,需要转换成列表或字典</div>
<div> b. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”</div>
<div> k2是字典的键,对应的值是列表可修改:tu['k2']='Seven'</div>
<div> c. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”</div>
<div style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px"> k3是字典的键,对应的值是元组不可修改</div>
<h3 style="white-space: pre-wrap; text-align: left; line-height: 1.75; font-size: 14px">2.4 字典类型</h3>
<p>字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。</p>
<p>Python语言中通过字典实现映射,通过大括号{}建立,建立模型如下:</p>
<p>{键1:值1,键2:值2,...}</p>
<div class="cnblogs_code">
<pre>>>> city = {<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">中国</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">北京</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">美国</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">纽约</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">法国</span><span style="color: rgba(128, 0, 0, 1)">'</span>:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">巴黎</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
</span>>>><span style="color: rgba(0, 0, 0, 1)"> city
{</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">中国</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">北京</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">美国</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">纽约</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">法国</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">巴黎</span><span style="color: rgba(128, 0, 0, 1)">'</span>}</pre>
</div>
<p><span style="color: rgba(255, 0, 0, 1)">拓展:字典是无序的。python语言中,字符串、列表、元组都是采用数字索引,字典采用字符索引。</span></p>
<p><strong>字典的函数和方法</strong></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201903/1008644-20190326145852078-1392813319.png" alt=""></p>
<p><strong>字典的基本原则</strong></p>
<p>字典是一个键值对的集合,该集合以键为索引,一个键对应一个值信息</p>
<p>字典中的元素以键信息为索引访问</p>
<p>字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。</p>
<h3>2.5 jieba库基本介绍</h3>
<p>jieba库提供三种分词模式,最简单只需要掌握一个函数;</p>
<p>jieba是优秀的中文分词第三方库,需额外安装</p>
<p><strong>jieba库的安装方法</strong></p>
<div class="cnblogs_code">
<pre>pip install jieba</pre>
</div>
<p><strong>jieba分词的三种模式</strong></p>
<p>精确模式:把文本精确切分,不存冗余单词</p>
<div class="cnblogs_code">
<pre>>>> word1 = jieba.lcut(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">python无所不能!除了生不出孩子,我们应该学习使用它!</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
Building prefix dict </span><span style="color: rgba(0, 0, 255, 1)">from</span><span style="color: rgba(0, 0, 0, 1)"> the default dictionary ...
Dumping model to file cache </span>/tmp/<span style="color: rgba(0, 0, 0, 1)">jieba.cache
Loading model cost </span>1.832<span style="color: rgba(0, 0, 0, 1)"> seconds.
Prefix dict has been built succesfully.
</span>>>> <span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(word1,type(word1))
[</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">python</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">无所不能</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">!</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">除了</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">生不出</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">孩子</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">,</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">我们</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">应该</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">学习</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">使用</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">它</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">!</span><span style="color: rgba(128, 0, 0, 1)">'</span>] <<span style="color: rgba(0, 0, 255, 1)">class</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">list</span><span style="color: rgba(128, 0, 0, 1)">'</span>></pre>
</div>
<h3>2.6 实例:文本词频统计</h3>
<p>英文文本:hamlet,统计出现最多的英文单词</p>
<p>https://python123.io/resources/pye/hamlet.txt</p>
<p>代码实现:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">Hamlet词频统计</span>
<span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> getText():
txt </span>= open(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">hamlet</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">).read()
txt </span>= txt.lower() <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">大写字母转换小写</span>
<span style="color: rgba(0, 0, 255, 1)">for</span> word <span style="color: rgba(0, 0, 255, 1)">in</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">~!@#$%^&*()_+-={}[],./:";<>?</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
txt </span>= txt.replace(word,<span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span>)<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">把多余符号转换为空格</span>
<span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> txt
hamletTxt </span>=<span style="color: rgba(0, 0, 0, 1)"> getText()
words </span>= hamletTxt.split() <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">以空格拆分为列表</span>
counts =<span style="color: rgba(0, 0, 0, 1)"> {}
</span><span style="color: rgba(0, 0, 255, 1)">for</span> word <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> words:
counts </span>= counts.get(word,0) + 1 <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">以每个词为键,值默认0,,每出现一次累加1</span>
items =<span style="color: rgba(0, 0, 0, 1)"> list(counts.items())
items.sort(key</span>=<span style="color: rgba(0, 0, 255, 1)">lambda</span> x:x,reverse=True) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">按照第二维排序,reverse=True表示降序</span>
<span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(10<span style="color: rgba(0, 0, 0, 1)">):
word,count </span>=<span style="color: rgba(0, 0, 0, 1)"> items
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{0:<10}{1:5}</span><span style="color: rgba(128, 0, 0, 1)">"</span>.format(word,count))</pre>
</div>
<p>中文文本:三国,分析人物</p>
<p>https://python123.io/resources/pye/threekingdoms.txt</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> jieba
txt </span>= open(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Threekingdoms</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">'</span>, encoding=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">utf-8</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">).read()
excludes </span>= {<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">将军</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">却说</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">荆州</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">二人</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">不可</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">不能</span><span style="color: rgba(128, 0, 0, 1)">'</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">如此</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">}
words </span>=<span style="color: rgba(0, 0, 0, 1)"> jieba.lcut(txt)
counts </span>=<span style="color: rgba(0, 0, 0, 1)"> {}
</span><span style="color: rgba(0, 0, 255, 1)">for</span> word <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> words:
</span><span style="color: rgba(0, 0, 255, 1)">if</span> len(word) == 1<span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">continue</span>
<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">书中同一人物多个名字统一改为一个名字</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">诸葛亮</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">or</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">空明日</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
rword </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">孔明</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">关公</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">or</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">云长</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
rword </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">关羽</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">玄德</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">or</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">玄德日</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
rword </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">刘备</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">孟德</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 0, 255, 1)">or</span> word == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">丞相</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
rword </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">曹操</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">:
rword </span>=<span style="color: rgba(0, 0, 0, 1)"> word
counts </span>= counts.get(word, 0) + 1
<span style="color: rgba(0, 0, 255, 1)">for</span> word <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> excludes:
</span><span style="color: rgba(0, 0, 255, 1)">del</span> counts<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">去重</span>
items =<span style="color: rgba(0, 0, 0, 1)"> list(counts.items())
items.sort(key</span>=<span style="color: rgba(0, 0, 255, 1)">lambda</span> x:x,reverse=<span style="color: rgba(0, 0, 0, 1)">True)
</span><span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(10<span style="color: rgba(0, 0, 0, 1)">):
word,count </span>=<span style="color: rgba(0, 0, 0, 1)"> items
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{0:<10}{1:>5}</span><span style="color: rgba(128, 0, 0, 1)">"</span>.format(word,count))</pre>
</div>
<h2>3 程序的控制结构</h2>
<h3>3.1 程序的分支结构</h3>
<p>根据判断条件结果而选择不同向前路径的运行方式</p>
<p><strong>单分支结构</strong></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">if <条件> :</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块></span></p>
<p>示例:</p>
<div class="cnblogs_code">
<pre>guess = eval(input(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">请输入数字:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">))
</span><span style="color: rgba(0, 0, 255, 1)">if</span> guess == 88<span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">猜对了</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p><strong> 二分支结构</strong></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">if <条件> :</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块></span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">else:</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块></span></p>
<div class="cnblogs_code">
<pre>guess = eval(input(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">请输入数字:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">))
</span><span style="color: rgba(0, 0, 255, 1)">if</span> guess == 88<span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">猜对了</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">猜错了</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p><strong>多分支结构</strong></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">if <条件1> :</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块1></span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">elif <条件2> :</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块2></span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">...</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)">else:</span></p>
<p><span style="background-color: rgba(0, 255, 255, 1)"> <语句块N> </span></p>
<p>示例</p>
<div class="cnblogs_code">
<pre>age = 25<span style="color: rgba(0, 0, 0, 1)">
count </span>=<span style="color: rgba(0, 0, 0, 1)"> 0
</span><span style="color: rgba(0, 0, 255, 1)">while</span> count < 3<span style="color: rgba(0, 0, 0, 1)">:
guess_age </span>= int(input(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">guess_age:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">))
</span><span style="color: rgba(0, 0, 255, 1)">if</span> guess_age ==<span style="color: rgba(0, 0, 0, 1)"> age:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">yes,you got it!!!</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">break</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> guess_age ><span style="color: rgba(0, 0, 0, 1)"> age:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">think smaller...</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">think bigger...</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
count </span>+= 1</pre>
</div>
<p> </p>
<h3>3.2 程序的循环结构</h3>
<p><strong>遍历循环</strong></p>
<p>语法结构:</p>
<p><span style="color: rgba(0, 204, 255, 1)">for <循环变量> in <循环结构>:</span></p>
<p><span style="color: rgba(0, 204, 255, 1)"> <语句块></span></p>
<p><strong>无限循环</strong></p>
<p>由条件控制的循环运行方式</p>
<p>语法结构:</p>
<p><span style="color: rgba(0, 204, 255, 1)">while <条件>:</span></p>
<p><span style="color: rgba(0, 204, 255, 1)"> <语句块></span></p>
<p><strong>循环控制保留字</strong></p>
<p><span style="color: rgba(0, 204, 255, 1)">break </span>和<span style="color: rgba(0, 204, 255, 1)"> continue</span></p>
<p><span style="color: rgba(0, 204, 255, 1)">-break </span>跳出并结束当前整个循环,执行循环后的语句</p>
<p><span style="color: rgba(0, 204, 255, 1)">-continue </span>结束当次循环,继续执行后续次数循环</p>
<p><strong>循环的拓展</strong></p>
<p><strong><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190406104302371-2123621125.png" alt="" width="483" height="152"></strong></p>
<p>当循环没有被break语句退出时,执行else语句。</p>
<p>else语句作为“正常”完成循环的奖励</p>
<h3>3.3 异常处理</h3>
<p><strong>异常处理的基本使用</strong></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190404141553494-2144560275.png" alt="" width="381" height="130"></p>
<p>示例</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">:
num </span>= eval(input(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">请输入数字</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">))
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(num**2<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">except</span><span style="color: rgba(0, 0, 0, 1)">:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">你输入的不是数字</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p><strong>异常处理的高级使用</strong></p>
<p><span style="color: rgba(255, 204, 0, 1)">try:</span></p>
<p><span style="color: rgba(255, 204, 0, 1)"> 语句块1</span></p>
<p><span style="color: rgba(255, 204, 0, 1)">except:</span></p>
<p><span style="color: rgba(255, 204, 0, 1)"> 语句块2</span></p>
<p><span style="color: rgba(255, 204, 0, 1)">else:</span></p>
<p><span style="color: rgba(255, 204, 0, 1)"> 语句块3<span style="color: rgba(0, 0, 0, 1)">(不发生异常时执行)</span></span></p>
<p><span style="color: rgba(255, 204, 0, 1)">finally</span></p>
<p><span style="color: rgba(255, 204, 0, 1)"> 语句块4<span style="color: rgba(0, 0, 0, 1)">(最终会执行)</span></span></p>
<h3><span style="color: rgba(255, 204, 0, 1)"><span style="color: rgba(0, 0, 0, 1)">3.4 实例:身体质量指数BMI</span></span></h3>
<p>体质指数(BMI)= 体重(kg)÷ 身高²(m)</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190406105025809-924292952.png" alt=""></p>
<p>代码实例:</p>
<div class="cnblogs_code">
<pre>height,weight = eval(input(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">请输入身体(米)和体重(公斤)[逗号分开]:</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">))
bmi </span>= weight / pow(height,2<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">BMI数值为:{:.2f}</span><span style="color: rgba(128, 0, 0, 1)">"</span>.format(bmi))<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">.2f#保留两位小数</span>
who,nat = <span style="color: rgba(128, 0, 0, 1)">""</span>,<span style="color: rgba(128, 0, 0, 1)">""</span>
<span style="color: rgba(0, 0, 255, 1)">if</span> bmi < 18.5<span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏瘦</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏瘦</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> 18.5 <= bmi < 24<span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">正常</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">正常</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> 24 <= bmi < 25<span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">正常</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> 25 <= bmi < 28<span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">elif</span> 28 <= bmi <30<span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">偏胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">肥胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">:
who,nat </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">肥胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">肥胖</span><span style="color: rgba(128, 0, 0, 1)">"</span>
<span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">BMI指标为:国际'{}',国内'{}'</span><span style="color: rgba(128, 0, 0, 1)">"</span>.format(who,nat))</pre>
</div>
<p>结果展示:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190406105240620-1547114638.png" alt=""></p>
<h2>4 函数和代码复用</h2>
<h3>4.1 函数的定义和作用</h3>
<p><span style="color: rgba(0, 204, 255, 1)">def 函数名(o个或多个参数):</span></p>
<p><span style="color: rgba(0, 204, 255, 1)"> 函数体</span></p>
<p><span style="color: rgba(0, 204, 255, 1)"> return 返回值</span></p>
<p>-函数是一段代码的表示</p>
<p>-函数是一段具有特定功能的、可重用的语句组</p>
<p>-函数是一种功能的抽象,一般函数表达特定功能</p>
<p>两个作用:降低编程难度和代码重用</p>
<p><strong>函数的调用</strong></p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190409145617477-2146228124.png" alt="" width="536" height="221"></p>
<h3>4.2 函数的参数传递</h3>
<p><strong>可选参数传递</strong></p>
<p>函数定义时可以为某些参数定义默认值,构成可选参数。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">def</span> test(n,m=1): <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">m为可选参数</span>
s = 1
<span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(1,n+1<span style="color: rgba(0, 0, 0, 1)">):
s </span>*=<span style="color: rgba(0, 0, 0, 1)"> i
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(s//<span style="color: rgba(0, 0, 0, 1)">m)
test(</span>10<span style="color: rgba(0, 0, 0, 1)">)
test(</span>10,2)</pre>
</div>
<p>结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190415100735512-905331171.png" alt=""></p>
<p><strong>可变参数传递</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">def</span> test(n,*args):<span style="color: rgba(0, 128, 0, 1)">#args</span><span style="color: rgba(0, 128, 0, 1)">为可变参数,也可以命名其他值</span>
s = 1
<span style="color: rgba(0, 0, 255, 1)">for</span> i <span style="color: rgba(0, 0, 255, 1)">in</span> range(1,n+1<span style="color: rgba(0, 0, 0, 1)">):
s </span>+=<span style="color: rgba(0, 0, 0, 1)"> i
</span><span style="color: rgba(0, 0, 255, 1)">for</span> item <span style="color: rgba(0, 0, 255, 1)">in</span><span style="color: rgba(0, 0, 0, 1)"> args:
s </span>+=<span style="color: rgba(0, 0, 0, 1)"> item
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(s)
test(</span>10,3<span style="color: rgba(0, 0, 0, 1)">)
test(</span>10,3,1,5)</pre>
</div>
<p>函数执行结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190415101909118-1184724858.png" alt=""></p>
<p><strong>参数组合:*args和**kwargs</strong></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">def</span> test(*args,**<span style="color: rgba(0, 0, 0, 1)">kwargs):
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">args =</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,args)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">kwargs =</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,kwargs)
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">----------------------------------</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 0, 255, 1)">if</span> <span style="color: rgba(128, 0, 128, 1)">__name__</span> == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">__main__</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">:
test(</span>1,5,94,564<span style="color: rgba(0, 0, 0, 1)">)
test(a</span>=1,b=2,c=3<span style="color: rgba(0, 0, 0, 1)">)
test(</span>1,2,3,4,a=1,b=2,c=3<span style="color: rgba(0, 0, 0, 1)">)
test(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">I love python</span><span style="color: rgba(128, 0, 0, 1)">'</span>,1,None,a=1,b=2,c=3)</pre>
</div>
<p>函数执行结果:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190415103359874-1349544684.png" alt=""></p>
<p><strong>参数传递的两种方式:位置传递和名称传递</strong></p>
<p> <img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190415102039461-1418535818.png" alt=""></p>
<p> 小结:</p>
<p><span style="color: rgba(255, 0, 0, 1)"><code>函数可以有参数也可以没有,但必须保持括号。*args</code>是可变参数,<code>args</code>接收的是一个<code>tuple</code>;<code>**kw</code>是关键字参数,<code>kw</code>接收的是一个<code>dict。</code>在同时使用*args和**kwargs时,必须*args参数列要在**kwargs前面。</span></p>
<h3>4.3 lambda函数</h3>
<p>lambda函数是一种匿名函数,即没有名字的函数;lambda函数用于定义简单的、能够在一行内表示的函数。</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190415134426969-956691612.png" alt=""></p>
<div class="cnblogs_code">
<pre>g = <span style="color: rgba(0, 0, 255, 1)">lambda</span> x,y:x*<span style="color: rgba(0, 0, 0, 1)">y
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(g(4,5))</pre>
</div>
<h2>6 文件和数据格式化</h2>
<h3>5.1 文件的使用</h3>
<p>Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。</p>
<p><strong>常用语法格式</strong></p>
<p>变量名 = open(文件路径(相对或绝对路径),打开模式,encoding=None)</p>
<p><strong>打开模式</strong></p>
<table style="height: 254px; width: 567px" border="2">
<tbody>
<tr>
<td><strong><span style="color: rgba(0, 0, 0, 1)">打开的文件模式</span></strong></td>
<td><strong><span style="color: rgba(0, 0, 0, 1)">描述</span></strong></td>
</tr>
<tr>
<td> ‘r’</td>
<td>只读模式,默认值,文件不存在返回FileNotFoundError </td>
</tr>
<tr>
<td> ‘w’</td>
<td> 覆盖写模式,文件不存在则创建,存在则完全覆盖</td>
</tr>
<tr>
<td> ‘x’</td>
<td> 创建写模式,文件不存在则创建,存在则返回FileExistsError</td>
</tr>
<tr>
<td> ‘a’</td>
<td> 追加写模式,文件不存在则创建,存在则在文件最后追加内容</td>
</tr>
<tr>
<td> ‘b’</td>
<td> 二进制文件模式</td>
</tr>
<tr>
<td> ‘t’</td>
<td> 文本文件模式,默认值</td>
</tr>
<tr>
<td> '+'</td>
<td> 与r/w/x/a一同使用,在原功能基础上增加同时读写功能</td>
</tr>
</tbody>
</table>
<p><strong>file对象 </strong></p>
<p>file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数</p>
<table style="height: 228px; width: 790px" border="2">
<tbody>
<tr>
<td><strong>file对象</strong></td>
<td><strong>描述</strong></td>
</tr>
<tr>
<td>f.read(size)</td>
<td>读入全部内容,如果给出参数,读入前size长度</td>
</tr>
<tr>
<td>f.readline()</td>
<td> 读取整行,包括 "\n" 字符。</td>
</tr>
<tr>
<td>f.readlines(sizeint)</td>
<td> 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。</td>
</tr>
<tr>
<td>f.write(s)</td>
<td> 将字符串或字节流写入文件</td>
</tr>
<tr>
<td>f.writelines(lines)</td>
<td> 将元素全为字符串的列表写入文件</td>
</tr>
<tr>
<td>f.close()</td>
<td> 关闭文件</td>
</tr>
<tr>
<td>f.seed(offset)</td>
<td> 调整当前文件操作指针的位置,0-文件开头;1-文件当前位置;2-文件末尾位置</td>
</tr>
<tr>
<td> f.flush()</td>
<td> 刷新文件内部缓冲,数据立刻写入文件</td>
</tr>
</tbody>
</table>
<h3>5.2 wordcloud库的使用</h3>
<p> 词云以词语为基本单位,更加直观和艺术第展示文件。</p>
<p>wordcloud库官网:https://amueller.github.io/word_cloud/</p>
<p>github地址:https://github.com/amueller/word_cloud</p>
<p><strong>wordcloud下载安装</strong></p>
<div class="cnblogs_code">
<pre>pip install wordcloud</pre>
</div>
<p><strong>wordcloud常规方法</strong></p>
<p><span style="color: rgba(255, 0, 0, 1)">w = wordcloud.WordCloud()</span></p>
<table style="height: 146px; width: 749px" border="4">
<tbody>
<tr>
<td><strong>方法</strong></td>
<td><strong>描述</strong></td>
<td><strong>例子</strong></td>
</tr>
<tr>
<td>w.generate(text)</td>
<td>向wordcloud对象w加载文本text</td>
<td>
<pre>w.generate("Python by WordCloud")</pre>
</td>
</tr>
<tr>
<td>w.to_file(filename)</td>
<td> 将词云输出.png或.jpg图像文件</td>
<td>
<pre>w.to_file("outfile.png") </pre>
</td>
</tr>
</tbody>
</table>
<p> 实例</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> wordcloud
w </span>= wordcloud.WordCloud()<span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">设置wordcloud对象</span>
w.generate(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Python by WordCloud,is fun and powerful!</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">配置对象参数并加载词云文本</span>
w.to_file(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">outfile.png</span><span style="color: rgba(128, 0, 0, 1)">"</span>) <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">输出词云文件</span></pre>
</div>
<p>执行生成图片:</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190427091504836-461461820.png" alt=""></p>
<p>程序执行过程报错:ModuleNotFoundError: No module named 'matplotlib'</p>
<p>解决报错:安装python画图工具第三方库matplotlib:pip install matplotlib</p>
<p><strong>wordcloud工作流程</strong></p>
<ul>
<li style="list-style-type: none">
<ul>
<li style="list-style-type: none"><ol>
<li><span style="color: rgba(51, 102, 255, 1)">分割:以空格分割单词</span></li>
<li><span style="color: rgba(51, 102, 255, 1)">统计:单词出现次数并过滤</span></li>
<li><span style="color: rgba(51, 102, 255, 1)">字体:根据统计配置字号</span></li>
<li><span style="color: rgba(51, 102, 255, 1)">布局:颜色环境尺寸</span></li>
</ol></li>
</ul>
</li>
</ul>
<p><strong>配置对象参数</strong></p>
<p><span style="color: rgba(255, 0, 0, 1)">w.wordcloud.WordCloud(<参数>)</span></p>
<table style="height: 523px; width: 982px" border="6">
<tbody>
<tr>
<td><strong>参数</strong></td>
<td><strong>描述</strong></td>
<td><strong>例子</strong></td>
</tr>
<tr>
<td> width</td>
<td> 指定生成图片宽度,默认400像素</td>
<td>
<pre>width=500</pre>
</td>
</tr>
<tr>
<td> height</td>
<td> 指定生成图片高度,默认200像素</td>
<td>
<pre>height=300</pre>
</td>
</tr>
<tr>
<td> min_font_size</td>
<td> 指定词云字体最小字号,默认4号</td>
<td>
<pre>min_font_size=20</pre>
</td>
</tr>
<tr>
<td> max_font_size</td>
<td> 指定词云字体最大字号,根据高度自动调节</td>
<td>
<pre>max_font_size=40</pre>
</td>
</tr>
<tr>
<td> font_step</td>
<td> 指定词云单词步进间隔,默认1</td>
<td>
<pre>font_step=6</pre>
</td>
</tr>
<tr>
<td> font_path</td>
<td> 指定文件字体的路径,默认None</td>
<td> font_path="msyh.ttc"</td>
</tr>
<tr>
<td> max_words</td>
<td> 指定词云显示最多单词数量,默认200</td>
<td>
<pre>max_words=5</pre>
</td>
</tr>
<tr>
<td> stopwords</td>
<td> 指定词云排除列表,即不显示的单词列表</td>
<td> stopwords={"python"}</td>
</tr>
<tr>
<td> mask</td>
<td> 指定词云形状,默认长方形,修改需应用imread函数</td>
<td>
<p> from scripy.misc import imread</p>
<p>mk=imread("pic.png")</p>
<p>mask=mk</p>
</td>
</tr>
<tr>
<td> background_color</td>
<td> 指定词云图片背景颜色,默认黑色</td>
<td>
<pre>background_color="white"</pre>
</td>
</tr>
</tbody>
</table>
<p>实例1</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> wordcloud
w </span>=<span style="color: rgba(0, 0, 0, 1)"> wordcloud.WordCloud()
text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">life is short, you need python</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
w </span>= wordcloud.WordCloud(background_color=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">white</span><span style="color: rgba(128, 0, 0, 1)">"</span>,width=500,height=300<span style="color: rgba(0, 0, 0, 1)">,
min_font_size</span>=20,max_font_size=40,font_step=6<span style="color: rgba(0, 0, 0, 1)">,
max_words</span>=5<span style="color: rgba(0, 0, 0, 1)">)
w.generate(text)
w.to_file(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">outfile2.png</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190427094330160-1727351578.png" alt=""></p>
<p> 实例2</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> wordcloud
</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> jieba
text </span>= <span style="color: rgba(128, 0, 0, 1)">"""</span><span style="color: rgba(128, 0, 0, 1)">
wordcloud是python非常优秀的第三方库,词云以词语为基本单位更加直观和艺术的展示文本词云图,\
也叫文字云,是对文本中出现频率较高的关键词予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,\
使得浏览者只要一眼扫过文本就可领略文本的主旨。基于Python的词云生成类库,好用功能强大。\
在做统计分析的时候有着很好的应用。
</span><span style="color: rgba(128, 0, 0, 1)">"""</span><span style="color: rgba(0, 0, 0, 1)">
w </span>= wordcloud.WordCloud(width=800,height=400,font_path=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">msyh.ttc</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
w.generate(</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.join(jieba.lcut(text))) #中文需要先分词并组成空格分隔字符串
w.to_file(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">outfile3.png</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190427102348789-1353046201.png" alt=""></p>
<p> 实例3</p>
<p>常规图词云</p>
<p>https://python123.io/resources/pye/新时代中国特色社会主义.txt</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> wordcloud
</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> jieba
f </span>= open(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">新时代中国特色社会主义</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">"</span>,encoding=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">utf-8</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
text </span>=<span style="color: rgba(0, 0, 0, 1)"> jieba.lcut(f.read())
text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.join(text)
f.close()
w </span>= wordcloud.WordCloud(background_color=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">white</span><span style="color: rgba(128, 0, 0, 1)">'</span>,width=800,height=400,font_path=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">msyh.ttc</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
w.generate(text)
w.to_file(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">outfile4.png</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p>实例4</p>
<p>不常规图词云:生成下图五角星形状</p>
<p><img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190428150513170-768744643.png" alt="" width="480" height="336"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> wordcloud
</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> jieba
</span><span style="color: rgba(0, 0, 255, 1)">from</span> scipy.misc <span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> imread
</span><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)">图片必须是白色背景色</span>
mask = imread(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">five-pointed star.png</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
f </span>= open(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">新时代中国特色社会主义</span><span style="color: rgba(128, 0, 0, 1)">"</span>,<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">r</span><span style="color: rgba(128, 0, 0, 1)">"</span>,encoding=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">utf-8</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
text </span>=<span style="color: rgba(0, 0, 0, 1)"> jieba.lcut(f.read())
text </span>= <span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">.join(text)
f.close()
w </span>= wordcloud.WordCloud(background_color=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">white</span><span style="color: rgba(128, 0, 0, 1)">'</span>,width=1000,height=700,font_path=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">msyh.ttc</span><span style="color: rgba(128, 0, 0, 1)">"</span>,mask=<span style="color: rgba(0, 0, 0, 1)">mask)
w.generate(text)
w.to_file(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">outfile5.png</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p> 效果</p>
<p> <img src="https://img2018.cnblogs.com/blog/1008644/201904/1008644-20190428150533153-1427219275.png" alt="" width="706" height="494"></p>
<p> </p><br><br>
来源:https://www.cnblogs.com/wenwei-blog/p/10592541.html
頁:
[1]