1 # 題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
<code> </code>
<code> </code><code>2</code> <code>num </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>]</code>
<code> </code><code>3</code> <code>n </code><code>=</code> <code>[]</code>
<code> </code><code>4</code> <code>for</code> <code>x </code><code>in</code> <code>num:</code>
<code> </code><code>5</code> <code>for</code> <code>y </code><code>in</code> <code>num:</code>
<code> </code><code>6</code> <code>for</code> <code>z </code><code>in</code> <code>num:</code>
<code> </code><code>7</code> <code>if</code> <code>x !</code><code>=</code> <code>y </code><code>and</code> <code>x !</code><code>=</code> <code>z </code><code>and</code> <code>y !</code><code>=</code> <code>z:</code>
<code> </code><code>8</code> <code>m </code><code>=</code> <code>x</code><code>*</code><code>100</code> <code>+</code> <code>y</code><code>*</code><code>10</code> <code>+</code> <code>z</code>
<code> </code><code>9</code> <code>n.append(m)</code>
<code> </code><code>10</code>
<code> </code><code>11</code> <code>print</code><code>(</code><code>'可以組成無重複的三位數有%d個'</code><code>%</code><code>(</code><code>len</code><code>(n)))</code>
<code> </code><code>12</code> <code>print</code><code>(</code><code>'它們分别是:'</code><code>)</code>
<code> </code><code>13</code> <code>print</code><code>(n)</code>
運作結果:
<code>[root@HK code_100]</code><code># python code_1.py </code>
<code>可以組成無重複的三位數有</code><code>24</code><code>個</code>
<code>它們分别是:</code>
<code>[</code><code>123</code><code>, </code><code>124</code><code>, </code><code>132</code><code>, </code><code>134</code><code>, </code><code>142</code><code>, </code><code>143</code><code>, </code><code>213</code><code>, </code><code>214</code><code>, </code><code>231</code><code>, </code><code>234</code><code>, </code><code>241</code><code>, </code><code>243</code><code>, </code><code>312</code><code>, </code><code>314</code><code>, </code><code>321</code><code>, </code><code>324</code><code>, </code><code>341</code><code>, </code><code>342</code><code>, </code><code>412</code><code>, </code><code>413</code><code>, </code><code>421</code><code>, </code><code>423</code><code>, </code><code>431</code><code>, </code><code>432</code><code>]</code>
腳本解釋:
<code> </code><code>2</code> <code>num </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>] </code><code># 将這四個數字定義成一個清單,以便for周遊這一些數字,也可以使用rang(1,5)來表示</code>
<code> </code><code>3</code> <code>n </code><code>=</code> <code>[] </code><code>#定義一個空list,用來存放符合要求的數字,之是以用list是為了可以用len()函數取長度</code>
<code> </code><code>4</code> <code>for</code> <code>x </code><code>in</code> <code>num: </code><code>#用三個for循環來周遊所有可能的組合</code>
<code> </code><code>7</code> <code>if</code> <code>x !</code><code>=</code> <code>y </code><code>and</code> <code>x !</code><code>=</code> <code>z </code><code>and</code> <code>y !</code><code>=</code> <code>z: </code><code># 排除有重複數字的三位數 (不知道有沒有簡單的表達式可以表示這個條件,沒多想)</code>
<code> </code><code>8</code> <code>m </code><code>=</code> <code>x</code><code>*</code><code>100</code> <code>+</code> <code>y</code><code>*</code><code>10</code> <code>+</code> <code>z </code><code>#取得符合要求的數字</code>
<code> </code><code>9</code> <code>n.append(m) </code><code>#将符合要求的數字用append方法添加到清單n中</code>
<code> </code><code>11</code> <code>print</code><code>(</code><code>'可以組成無重複的三位數有%d個'</code><code>%</code><code>(</code><code>len</code><code>(n))) </code><code># 格式化輸出清單長度,也就是清單個數</code>
<code> </code><code>13</code> <code>print</code><code>(n) </code><code># 列出符合要求的數字,也可以用for循環周遊整個清單,取出其中的數字</code>
本文轉自snc_snc 51CTO部落格,原文連結:http://blog.51cto.com/netsyscode/1742044,如需轉載請自行聯系原作者