1: 2016-08-12 (金) 16:37:21 njf ![バックアップ No.1 を復元して編集](https://njf.jp/cms/modules/xpwiki/skin/loader.php?src=page_white_edit.png) |
現: 2017-01-05 (木) 19:01:31 njf ![編集](https://njf.jp/cms/modules/xpwiki/skin/loader.php?src=page_white_edit.png) |
| + | [[Python]]からプログラミングを始める人もいるかも知れませんが、最近では複数言語を習得しているのが当たり前になってきているため、他の言語を知ってからPythonを始める人の方が多いでしょう。 |
| + | |
| + | そんなとき、特にJavaやCなどのC言語系と呼ばれる言語からPythonを始めるとよく間違えたり、とまどったりする文法を集めてみました。 |
| + | |
| + | |
| *1加算/減算する [#eb91fcfa] | | *1加算/減算する [#eb91fcfa] |
| | | |
| 「+=」「-=」はあります。 | | 「+=」「-=」はあります。 |
| | | |
- | >>> i += 1 | + | >>> i += 1 |
- | >>> i | + | >>> i |
- | 1 | + | 1 |
| + | |
| + | |
| + | * 「かつ」、「または」は「&&」や「||」ではない [#e181236e] |
| + | |
| + | 論理式で「&&」や「||」は使えません。 |
| + | |
| + | >>> True && False |
| + | File "<stdin>", line 1 |
| + | True && False |
| + | ^ |
| + | SyntaxError: invalid syntax |
| + | |
| + | 「and」や「or」をつかいます |
| + | |
| + | >>> True and False |
| + | False |
| + | |
| + | 「True」を「true」と間違って書く事も多いですが、こちらはIDEが直してくれるのでさほど気にはならないでしょう。 |
| + | |
| + | *要素1つのタプルは最後にコンマが必要 [#te0bce58] |
| + | |
| + | リストとタプルについては「[[Python/リストとタプル]]」を参照のこと。 |
| + | |
| + | 要素1つのタプルを作るつもりでも、他の言語の配列と同じようにコンマ無しだとただのグループ化と思われて無視されます。 |
| + | |
| + | >>> (1) |
| + | 1 |
| + | |
| + | 最後にコンマをつけるとタプルになります。 |
| + | |
| + | >>> (1,) |
| + | (1,) |
| + | |
| + | 特に要素が文字列などだと、プログラム的には動いてしまうので、発見が遅れることがあります。 |
| + | |
| + | |
| + | >>> a=("abc",) |
| + | >>> a[0] |
| + | 'abc' |
| + | |
| + | >>> b=("abc") |
| + | >>> b[0] |
| + | 'a' |
| + | |
| + | リストはどちらの定義の仕方でもOK。 |
| + | |
| + | >>> [0] |
| + | [0] |
| + | >>> [0,] |
| + | [0] |
| + | |
| + | リストかタプルかで記法を変えるのもややこしいので、両方いつでも最後の要素にはコンマをつけておいたら良いのかも知れません。 |
| + | |
| + | *forループはrangeを使う [#i5b4bcb9] |
| + | |
| + | C言語系でよくあるforループは |
| + | |
| + | for ( i = 0; i < 10 ; i++){ |
| + | print( i ); |
| + | } |
| + | |
| + | という感じですが、Pythonでのforループは配列などの要素を列挙していくものなので |
| + | |
| + | for i in range(10): |
| + | print i |
| + | |
| + | となります。ここでrangeは0始まりで引数の個数分の整数を要素とするリスト(配列)を作る関数です。 |
| + | |
| + | * do whileは無い [#p3d7fe99] |
| + | |
| + | do while文はPythonにはありません。whileやbreakとかを使って工夫してください。 |
| + | |
| + | *switch文は無い [#c5361b69] |
| + | |
| + | if文でがんばってください |