天天看点

【python】编程语言入门经典100例--37

  1 #题目:对10个数进行排序

代码:

<code>  </code><code>2</code> <code>i </code><code>=</code> <code>1</code>

<code>  </code><code>3</code> <code>li </code><code>=</code> <code>[]</code>

<code>  </code><code>4</code> <code>while</code> <code>i &lt;</code><code>=</code> <code>10</code><code>:</code>

<code>  </code><code>5</code>     <code>li.append(</code><code>int</code><code>(</code><code>input</code><code>(</code><code>'请输入第%d个数字:'</code><code>%</code><code>i)))</code>

<code>  </code><code>6</code>     <code>i </code><code>+</code><code>=</code> <code>1</code>

<code>  </code><code>7</code> <code>print</code><code>(</code><code>'这十个数分别为:'</code><code>)</code>

<code>  </code><code>8</code> <code>print</code><code>(li)</code>

<code>  </code><code>9</code> 

<code> </code><code>10</code> <code>liorder </code><code>=</code> <code>[]</code>

<code> </code><code>11</code> <code>x </code><code>=</code> <code>0</code> 

<code> </code><code>12</code> <code>while</code> <code>x </code><code>=</code><code>=</code> <code>0</code><code>:</code>

<code> </code><code>13</code>     <code>if</code> <code>li !</code><code>=</code> <code>[]:</code>

<code> </code><code>14</code>         <code>m </code><code>=</code> <code>li[</code><code>0</code><code>]</code>

<code> </code><code>15</code>         <code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>0</code><code>,</code><code>len</code><code>(li)):</code>

<code> </code><code>16</code>             <code>if</code> <code>m &gt; li[i]:</code>

<code> </code><code>17</code>                 <code>m </code><code>=</code> <code>li[i]</code>

<code> </code><code>18</code>         <code>liorder.append(m)</code>

<code> </code><code>19</code>         <code>li.remove(m)</code>

<code> </code><code>20</code>     <code>else</code><code>:</code>

<code> </code><code>21</code>         <code>x </code><code>=</code> <code>1</code>

<code> </code><code>22</code> <code>print</code><code>(</code><code>'排序之后为:'</code><code>)</code>

<code> </code><code>23</code> <code>print</code><code>(liorder)</code>

运行结果:

<code>[root@HK code_100]</code><code># python code_37.py </code>

<code>请输入第</code><code>1</code><code>个数字:</code><code>234</code>

<code>请输入第</code><code>2</code><code>个数字:</code><code>8765</code>

<code>请输入第</code><code>3</code><code>个数字:</code><code>234235</code>

<code>请输入第</code><code>4</code><code>个数字:</code><code>45</code>

<code>请输入第</code><code>5</code><code>个数字:</code><code>7</code>

<code>请输入第</code><code>6</code><code>个数字:</code><code>324534647</code>

<code>请输入第</code><code>7</code><code>个数字:</code><code>4324</code>

<code>请输入第</code><code>8</code><code>个数字:</code><code>45676834</code>

<code>请输入第</code><code>9</code><code>个数字:</code><code>345</code>

<code>请输入第</code><code>10</code><code>个数字:</code><code>45654534534546675657</code>

<code>这十个数分别为:</code>

<code>[</code><code>234</code><code>, </code><code>8765</code><code>, </code><code>234235</code><code>, </code><code>45</code><code>, </code><code>7</code><code>, </code><code>324534647</code><code>, </code><code>4324</code><code>, </code><code>45676834</code><code>, </code><code>345</code><code>, </code><code>45654534534546675657</code><code>]</code>

<code>排序之后为:</code>

<code>[</code><code>7</code><code>, </code><code>45</code><code>, </code><code>234</code><code>, </code><code>345</code><code>, </code><code>4324</code><code>, </code><code>8765</code><code>, </code><code>234235</code><code>, </code><code>45676834</code><code>, </code><code>324534647</code><code>, </code><code>45654534534546675657</code><code>]</code>

<code>[root@HK code_100]</code><code>#</code>

代码解释:

<code>  </code><code>#思路:在10个数字中每次取出最小值,添加到新的列表,循环结束,新的列表就是10个数字的升序排列</code>

<code>  </code> 

<code>  </code><code>2</code> <code>i </code><code>=</code> <code>1</code>                                               <code>#定义i变量,初始化为1</code>

<code>  </code><code>3</code> <code>li </code><code>=</code> <code>[]                                             </code><code>#创建一个空列表,接收输入的10个数字</code>

<code>  </code><code>4</code> <code>while</code> <code>i &lt;</code><code>=</code> <code>10</code><code>:                                      </code><code>#循环输入10个数字</code>

<code>  </code><code>5</code>     <code>li.append(</code><code>int</code><code>(</code><code>input</code><code>(</code><code>'请输入第%d个数字:'</code><code>%</code><code>i)))    </code><code>#将输入的数字转换成int格式,添加到li列表当中</code>

<code>  </code><code>6</code>     <code>i </code><code>+</code><code>=</code> <code>1</code>                                          <code>#循环终止条件</code>

<code>  </code><code>7</code> <code>print</code><code>(</code><code>'这十个数分别为:'</code><code>)                            </code><code>#打印输入的乱序的10个数字</code>

<code> </code><code>10</code> <code>liorder </code><code>=</code> <code>[]                                        </code><code>#定义一个新的空列表,用于放置取出的最小值</code>

<code> </code><code>11</code> <code>x </code><code>=</code> <code>0</code>                                               <code>#定义一个while判断的flag,初始值为0</code>

<code> </code><code>12</code> <code>while</code> <code>x </code><code>=</code><code>=</code> <code>0</code><code>:                                       </code><code>#flag判断</code>

<code> </code><code>13</code>     <code>if</code> <code>li !</code><code>=</code> <code>[]:                                    </code><code>#当li列表非空也就是没有被取完所有数字的时候</code>

<code> </code><code>14</code>         <code>m </code><code>=</code> <code>li[</code><code>0</code><code>]                                   </code><code>#定义一个变量m,将li列表第一个值赋值给m</code>

<code> </code><code>15</code>         <code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>0</code><code>,</code><code>len</code><code>(li)):                  </code><code>#遍历li列表</code>

<code> </code><code>16</code>             <code>if</code> <code>m &gt; li[i]:                           </code><code>#如果m值(li[0])大于后面的数字</code>

<code> </code><code>17</code>                 <code>m </code><code>=</code> <code>li[i]                           </code><code>#将较小的数字赋值给m,始终保持m值是li中最小值</code>

<code> </code><code>18</code>         <code>liorder.append(m)                           </code><code>#将li中的最小值m添加到liorder中</code>

<code> </code><code>19</code>         <code>li.remove(m)                                </code><code>#在原li列表中删除m元素</code>

<code> </code><code>20</code>     <code>else</code><code>:                                           </code><code>#如果li列表为空</code>

<code> </code><code>21</code>         <code>x </code><code>=</code> <code>1</code>                                       <code>#flag x赋值为1,跳出while循环</code>

<code> </code><code>22</code> <code>print</code><code>(</code><code>'排序之后为:'</code><code>)                               </code><code>#打印排序后的列表</code>

      本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1749989,如需转载请自行联系原作者