2015/11/14

[勉][py]やむを得ず覚えるpython (4)

「やむを得ず」と書いているけど、意外と楽しんでいるpython。
最近を読んで、積極的に頭を使っていかんとなあ、と思ったのもある。

[勉][py]やむを得ず覚えるpython (1)
[勉][py]やむを得ず覚えるpython (2)
[勉][py]やむを得ず覚えるpython (3)


IDE

前回、ちょっとだけLINTツールの話を書いたが、しかさんにIDEがあることも教えてもらった。

Python IDE & Django IDE for Web developers : JetBrains PyCharm

が、まだ今の段階では恩恵にあずかってない。
もうちょっと難しいことをするまでは、テキストエディタで大丈夫だろう。

IntelliJのプラグインにもあるということで、Android Studioを起動してpythonプラグインを入れてみたが・・・Android StudioはAndroid Studioだった。
「Android Studio python」で検索すると、こういうページが出てきたが、別にPythonでアプリを作るって話じゃなかった。
Creating a Simple Android App - Python — Google Cloud Platform


括弧

4. その他の制御フローツール — Python 2.7ja1 documentation

ifもforもwhileも、括弧がない。
付けたら怒られるのだろうか?

04.py

  1: #!/usr/bin/python
  2: if (__name__ == "__main__"):
  3:     print("Hello, World!")

$ ./04.py
Hello, World!

 

  1: #!/usr/bin/python
  2: for (x in range(0, 2)):
  3:     print("Hello, World!")

$ ./04.py
  File "./04.py", line 2
    for (x in range(0, 2)):
                          ^
SyntaxError: invalid syntax

 

  1: #!/usr/bin/python
  2: x = 0
  3: while (x < 2):
  4:     print("Hello, World!")
  5:     x = x + 1

$ ./04.py
Hello, World!
Hello, World!

 

forはだめだったが、これはなんとなくわかる気がするのでよかろう。


インクリメント

whileのサンプルを書くときに気付いた。

  1: #!/usr/bin/python
  2: x = 0
  3: x++
  4: print(x)

$ ./04.py
  File "./04.py", line 3
    x++
      ^
SyntaxError: invalid syntax

だめなの??
インクリメント - Python入門から応用までの学習サイト
だめらしい。

「+=」は使えるから、そっちを使うそうだ。


セミコロン

空行には「pass」を使うらしいが、セミコロンはそもそもどういう扱いなんだろう?

  1: #!/usr/bin/python
  2: x = 0;
  3: print(x);

$ ./04.py
0

スルーされている?
http://www.pythonweb.jp/tutorial/ini/index3.html
つけると、1行に複数の処理を書くことができるが、推奨はしてないらしい。

まあ、つけなければいいということにしておこう。


関数の引数

型指定がないので、予定していない値を引数に入れたらどうなるだろう?

  1: #!/usr/bin/python
  2: 
  3: 
  4: def func1(x):
  5:     y = x + 2
  6:     print(y)
  7: 
  8: func1(5)
  9: func1("a")

$ ./04.py
7
Traceback (most recent call last):
  File "./04.py", line 9, in <module>
    func1("a")
  File "./04.py", line 5, in func1
    y = x + 2
TypeError: cannot concatenate 'str' and 'int' objects

コンパイルするわけじゃないから、実行時にエラーとなるのだな。


文字列の掛け算

さっきの関数では2を足したが、最初は2を掛けるようにしていた。

  1: #!/usr/bin/python
  2: 
  3: 
  4: def func1(x):
  5:     y = x * 2
  6:     print(y)
  7: 
  8: func1(5)
  9: func1("a")

$ ./04.py
10
aa

なるほど、掛け算は同じ型を繰り返すだけだから、エラーにならないんだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。