ページへ戻る

− Links

 印刷 

Python​/他の言語を知っているとよくやってしまう間違い のバックアップソース(No.3) :: NJF Wiki

xpwiki:Python/他の言語を知っているとよくやってしまう間違い のバックアップソース(No.3)

« Prev[5]  Next »[6]
[[Python]]からプログラミングを始める人もいるかも知れませんが、最近では複数言語を習得しているのが当たり前になってきているため、他の言語を知ってからPythonを始める人の方が多いでしょう。

そんなとき、特にJavaやCなどのC言語系と呼ばれる言語からPythonを始めるとよく間違えたり、とまどったりする文法を集めてみました。


*1加算/減算する [#eb91fcfa]

「++」「--」はPythonにありません

 >>> i = 0
 >>> i ++
   File "<stdin>", line 1
     i ++
        ^
 SyntaxError: invalid syntax

「+=」「-=」はあります。

 >>> i += 1
 >>> i
 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とかを使って工夫してください。


« Prev[5]  Next »[6]