<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>suger (小淘米)</title>
    <link>https://ruby-china.org/suger</link>
    <description>生活奇奇怪怪，还好我比较阔爱</description>
    <language>en-us</language>
    <item>
      <title>Python 新手] 爬虫练习：爬取起点中文网的小说排行并存入 excel 表格中</title>
      <description>&lt;p&gt;使用的 python 库
1.request 库，用于向服务器发起请求信息。
2.lxml 库，用于解析服务器返回的 HTML 文件。
3.time 库，设置爬取时间差，防止短时间内多次页面请求而被限制访问。
4.xwlt 库，用于将数据存入 excel 表格之中。&lt;/p&gt;

&lt;p&gt;爬取思路
1.爬取页面的网址为&lt;a href="https://www.qidian.com/all?page=1page%E7%9A%84%E5%80%BC%E4%B8%8D%E4%B8%80%E6%A0%B7%EF%BC%8C%E7%94%B1%E6%AD%A4%E5%8F%AF%E4%BB%A5%E5%BE%97%E5%88%B0%E6%89%80%E6%9C%89%E9%A1%B5%E9%9D%A2%E7%9A%84%E7%BD%91%E5%9D%80%E3%80%82" rel="nofollow" target="_blank"&gt;https://www.qidian.com/all?page=1page的值不一样，由此可以得到所有页面的网址。&lt;/a&gt;，经过手动浏览可以发现页面之间
2.需要爬取的信息如下图所示：
在这里插入图片描述
3.在信息提取完成之后使用 xlwt 库将它们存入 excel 表格中。&lt;/p&gt;

&lt;p&gt;爬虫代码
import xlwt
from lxml import etree
import request
import time&lt;/p&gt;

&lt;p&gt;#伪装请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36'
                  ' (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
    }&lt;/p&gt;

&lt;p&gt;all_info_list = [] #存储每部小说的各种信息列表&lt;/p&gt;

&lt;p&gt;#定义获取爬虫信息的函数
def get_info(url):
    res = requests.get(url, headers=headers)
    selector = etree.HTML(res.text)
    #采用 xpath 方法对网页信息进行搜索
    infos = selector.xpath('//ul[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="all-img-list cf"]/li') #找到信息的循环点
    for info in infos:
        title = info.xpath('div[2]/h4/a/text()')[0]
        author = info.xpath('div[2]/p[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="author"]/a[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="name"]/text()')[0]
        style1 = info.xpath('div[2]/p[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="author"]/a[2]/text()')[0]
        style2 = info.xpath('div[2]/p[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="author"]/a[3]/text()')[0]
        style = style1+'-'+style2
        complete = info.xpath('div[2]/p[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="author"]/span/text()')[0]
        introduce = info.xpath('div[2]/p[&lt;a href="/class" class="user-mention" title="@class"&gt;&lt;i&gt;@&lt;/i&gt;class&lt;/a&gt;="intro"]/text()')[0].strip()
        info_list = [title, author, style, complete, introduce]
        all_info_list.append(info_list)
    #爬取成功后等待两秒
    time.sleep(2)&lt;/p&gt;

&lt;p&gt;#主程序入口
if &lt;strong&gt;name&lt;/strong&gt; == "&lt;strong&gt;main&lt;/strong&gt;":
    urls = ['&lt;a href="https://www.qidian.com/all?page=.format(str(i))" rel="nofollow" target="_blank"&gt;https://www.qidian.com/all?page=.format(str(i))&lt;/a&gt;{}' for i in range(1, 101)]
    for url in urls:
        get_info(url)
    #写好 excel 表格中的各个属性名
    header = ['书名', '作者', '类型', '状态', '简介']
    book = xlwt.Workbook(encoding='utf-8')
    sheet = book.add_sheet('sheet1')
    for h in range(len(header)):
        sheet.write(0, h, header[h])
    i = 1
   #将提取到的信息写入 excel 表格中
    for list in all_info_list:
        j = 0
        for data in list:
            sheet.write(i, j, data) 
            j += 1
        i += 1
    #将信息保存在 D:/reptile 目录下的 xiaoshuo.xls 文件中
    book.save('D:/reptile/xiaoshuo.xls')&lt;/p&gt;

&lt;p&gt;爬取结果
在这里插入图片描述
&lt;img src="https://l.ruby-china.com/photo/2020/c5637c73-f192-4039-bcde-847011e5b945.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;总结
虽然能成功的爬取小说的大部分信息，但是由于小说的字数信息在网页上并不是不变的，使用没能爬取到小说的字数信息，本次爬虫练习基本上完成了爬虫的功能，但在复杂页面的爬取上面还得继续学习。&lt;/p&gt;</description>
      <author>suger</author>
      <pubDate>Wed, 08 Apr 2020 17:34:02 +0800</pubDate>
      <link>https://ruby-china.org/topics/39722</link>
      <guid>https://ruby-china.org/topics/39722</guid>
    </item>
    <item>
      <title>新手使用 Python 采集数据的尴尬事之代理 IP</title>
      <description>&lt;p&gt;背景，原本不是爬虫的，因公司业务需求需要一些前程无忧的数据，被迫上岗，简单的学了些 python。因为网站的特殊性，访问次数多了就要封 ip，意味着还要找 ip。所以在网上随便找了家代理叫亿牛云，然后跟客服沟通了下我这个小白的需求，客服跟我推介了他们家的爬虫动态转发代理，说适合我这样的小白使用，使用方式比较简单，我就抱着试试的想法接受了。客服给我发了一段关于 python 怎么使用他们家代理的代码示例，&lt;a href="https://www.16yun.cn/help/ss_demo/#1python" rel="nofollow" target="_blank"&gt;https://www.16yun.cn/help/ss_demo/#1python&lt;/a&gt;。打开看了之后我以为示例就是可以直接使用的，而且客服也说过代码示例可以直接复制使用，我就直接复制然后把目标网站改成了我自己的，代码如下&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#! -*- encoding:utf-8 -*-
&lt;/span&gt;
        &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
        &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;

        &lt;span class="c1"&gt;# 要访问的目标页面
&lt;/span&gt;        &lt;span class="n"&gt;targetUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;www.mkt.51job.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

        &lt;span class="c1"&gt;# 要访问的目标HTTPS页面
&lt;/span&gt;        &lt;span class="c1"&gt;# targetUrl = "https://www.mkt.51job.com"
&lt;/span&gt;
        &lt;span class="c1"&gt;# 代理服务器(产品官网 www.16yun.cn)
&lt;/span&gt;        &lt;span class="n"&gt;proxyHost&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;t.16yun.cn&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="n"&gt;proxyPort&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;31111&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

        &lt;span class="c1"&gt;# 代理隧道验证信息
&lt;/span&gt;        &lt;span class="n"&gt;proxyUser&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="n"&gt;proxyPass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

        &lt;span class="n"&gt;proxyMeta&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http://%(user)s:%(pass)s@%(host)s:%(port)s&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;host&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyHost&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;port&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyPort&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyUser&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pass&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyPass&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;# 设置 http和https访问都是用HTTP代理
&lt;/span&gt;        &lt;span class="n"&gt;proxies&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;http&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;  &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyMeta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;proxyMeta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;


        &lt;span class="c1"&gt;#  设置IP切换头
&lt;/span&gt;        &lt;span class="n"&gt;tunnel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Proxy-Tunnel&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tunnel&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;



        &lt;span class="n"&gt;resp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;targetUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;proxies&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后就去运行，结果是这样&lt;/p&gt;

&lt;p&gt;然后就去找客服，结果人家说那只是代码示例，里面的代理参数是需要他们提供重新配置才可以使用，顿时就觉得自己真的很小白，然后请客服开通了代理测试了下，结果运行起了，对我这样的小白来还好使用的方式简单，不然又要各种查资料了。我想很多人都是这样吧，刚开始的时候各种小白问题都有可能存在，看来不管是哪个领域，还是要深入的学习才好！&lt;/p&gt;</description>
      <author>suger</author>
      <pubDate>Wed, 25 Mar 2020 17:32:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/39665</link>
      <guid>https://ruby-china.org/topics/39665</guid>
    </item>
    <item>
      <title>Python 学习初级编程实例（一）</title>
      <description>&lt;p&gt;题目：有 1、2、3、4 四个数字，能组成多少个互不相同且无重复数字的三位数？都是多少？&lt;/p&gt;

&lt;p&gt;程序分析：可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。&lt;/p&gt;

&lt;p&gt;程序源代码：&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="https://l.ruby-china.com/photo/2020/32ad4ada-465e-4d22-883a-641e411eb44e.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;题目：一个整数，它加上 100 和加上 268 后都是一个完全平方数，请问该数是多少？&lt;/p&gt;

&lt;p&gt;程序分析：在 10000 以内判断，将该数加上 100 后再开方，加上 268 后再开方，如果开方后的结果满足如下条件，即是结果。请看具体分析：&lt;/p&gt;

&lt;p&gt;程序源代码：&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;268&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;268&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class="nf"&gt;print &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2020/509d6d17-652c-40dd-bf7b-9002f285be3e.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;题目：输入三个整数 x,y,z，请把这三个数由小到大输出。&lt;/p&gt;

&lt;p&gt;程序分析：我们想办法把最小的数放到 x 上，先将 x 与 y 进行比较，如果 x&amp;gt;y 则将 x 与 y 的值进行交换，然后再用 x 与 z 进行比较，如果 x&amp;gt;z 则将 x 与 z 的值进行交换，这样能使 x 最小。&lt;/p&gt;

&lt;p&gt;程序源代码：&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;raw_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;integer:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;#append() 方法向列表的尾部添加一个新的元素
&lt;/span&gt;&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;#sort() 函数用于对原列表进行排序，如果指定参数，则使用比较函数指定的比较函数
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>suger</author>
      <pubDate>Tue, 17 Mar 2020 17:10:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/39623</link>
      <guid>https://ruby-china.org/topics/39623</guid>
    </item>
  </channel>
</rss>
