削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
179 行
 
Pythonは1990年にグイド・ヴァンロッサムによって作られました。誰が書いても同じソースコードになるように(違う目的のコードは違う見た目になるように)設計されており、常に読みやすいプログラムを書くことができます。教育用プログラミング言語としても秀逸です。
 
== リストとリスト内包表記 ==
リストは<code>list = ['A', 'B', 'C']</code>のように表し<code>list[0]</code>、<code>list[1]</code>、<code>list[2]</code>のようにアクセスしますが、Pythonでは[[JavaScript|ECMAScript]]でも一時採用が検討されたリスト内包表記をサポートしています<ref>ECMAScriptで内包表記のプロポーザルが検討されGeckoで先行実装されましたが、レビューの結果mapを始めとするArrayのメソッドのメソッドチェインやスプレッド構文でより簡素に記述できるため不採用となり、Geckoからも内包表記のサポートは削除されました。
;ECMAScriptに提出された内包表記の使用例:<syntaxhighlight lang=js>
const ary1 = [for (x of ['A','B','C']) for (y of ['X','Y','Z']) x + '' + y]; // [ 'AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ' ]
const ary2 = [for (i of [0,1,2,3,4,5]) if (i > 2) i] // [3, 4, 5]
</syntaxhighlight>
;Arrayのメソッドとスプレッド構文で同じロジックを記述した例:<syntaxhighlight lang=js>
const ary1 = [..."ABC"].map( x => [..."XYZ"].map(y => x + '' + y)).join()
const ary2 = [0,1,2,3,4,5].filter(x => x > 2)
</syntaxhighlight>
</ref>。これはリストの中にfor-in文とイテレータを書くことができ、mapの役割を果たすものです。
 
>>> [ i for i in range(10) ]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
リスト内包表記は非常に強力です。これを使ってAからZまでの文字を要素に含むリストを作るには次のようにします。<code>chr()</code>は文字コードを文字に、<code>ord()</code>は文字を文字コードに変換します。なお、十六進法の整数リテラルは<code>0xdeadbeef</code>のように "0x" から始まります。
 
>>> [chr(ord('A') + i) for i in range(26)]
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
 
リスト内包表記はジェネレータやイテレータと同じくPythonの個性的な言語機能の一つです。これらの習得には感覚的な部分、すなわち慣れもあるので、たくさんのコードを書いては動かし、動かしては書いて覚えてください。
 
== 書式化付き文字列化 ==