天天看點

【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,如需轉載請自行聯系原作者