ページへ戻る

− Links

 印刷 

Python​/他の言語を知っているとよくやってしまう間違い :: NJF Wiki

xpwiki:Python/他の言語を知っているとよくやってしまう間違い

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

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

ページ内コンテンツ
  • 1加算/減算する
  • 「かつ」、「または」は「&&」や「||」ではない
  • 要素1つのタプルは最後にコンマが必要
  • forループはrangeを使う
  • do whileは無い
  • switch文は無い

1加算/減算する anchor.png[2] Edit [3]

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

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

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

>>> i += 1
>>> i
1
Page Top

「かつ」、「または」は「&&」や「||」ではない anchor.png[4] Edit [5]

論理式で「&&」や「||」は使えません。

>>> True && False
  File "<stdin>", line 1
    True && False
          ^
SyntaxError: invalid syntax

「and」や「or」をつかいます

>>> True and False
False

「True」を「true」と間違って書く事も多いですが、こちらはIDEが直してくれるのでさほど気にはならないでしょう。

Page Top

要素1つのタプルは最後にコンマが必要 anchor.png[6] Edit [7]

リストとタプルについては「Python​/リストとタプル[8]」を参照のこと。

要素1つのタプルを作るつもりでも、他の言語の配列と同じようにコンマ無しだとただのグループ化と思われて無視されます。

>>> (1)
1

最後にコンマをつけるとタプルになります。

>>> (1,)
(1,)

特に要素が文字列などだと、プログラム的には動いてしまうので、発見が遅れることがあります。

>>> a=("abc",)
>>> a[0]
'abc'

>>> b=("abc")
>>> b[0]
'a'

リストはどちらの定義の仕方でもOK。

>>> [0]
[0]
>>> [0,]
[0]

リストかタプルかで記法を変えるのもややこしいので、両方いつでも最後の要素にはコンマをつけておいたら良いのかも知れません。

Page Top

forループはrangeを使う anchor.png[9] Edit [10]

C言語系でよくあるforループは

for ( i = 0; i < 10 ; i++){
      print( i );
}

という感じですが、Pythonでのforループは配列などの要素を列挙していくものなので

for i in range(10):
     print i

となります。ここでrangeは0始まりで引数の個数分の整数を要素とするリスト(配列)を作る関数です。

Page Top

do whileは無い anchor.png[11] Edit [12]

do while文はPythonにはありません。whileやbreakとかを使って工夫してください。

Page Top

switch文は無い anchor.png[13] Edit [14]

if文でがんばってください


Last-modified: 2017-01-05 (木) 11:01:31 (JST) (2660d) by njf