2012年3月23日金曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7)のIII部(ステートメント) 10章(Pythonのステートメント)の練習問題を解いてみる。

1.

Cなどの言語のコードでは必須だが、Pythonのコードには不要、というものは、

  1. 丸括弧「()」
  2. ステートメントの終わりのセミコロン「;」
  3. ブロックを囲む中括弧「{}」

の3つ。

実際に比較。

C言語

コード(TextWrangler)

#include 
int main(){
  int x = 10;
  if(x == 10){
    printf("%d\n",x);
  }
  return (0);
}

入出力結果(Terminal)

$ ./c_program
10
$

Python

コード(TextWrangler)

#!/usr/bin/env python
#encoding: utf-8

x = 10
if x == 10:
 print x

入出力結果(Terminal)

$ ./python_program.py
10
$

2.

Pythonのステートメントは通常、行の終わりがステートメントの終わり。

3.

コードのブロックをネストする場合、ブロック中のステートメントがすべて同じブロックに属することを示すには同じ字下げ(インデント)に揃えればいい。

4.

複数行にまたがるステートメントを書くには丸括弧「()」で囲めばいい。

入出力結果(Terminal)

$ python
Python 2.7.2 (default, Feb 12 2012, 23:50:38) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10+20+
  File "", line 1
    a=10+20+
           ^
SyntaxError: invalid syntax
>>> a=(10+20+
... 30)
>>> a
60
>>> quit()

5.

複合ステートメントを1行にまとめるにはコロン「:」を使用すればいい。

入出力結果(Terminal)

$ python
Python 2.7.2 (default, Feb 12 2012, 23:50:38) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10
>>> if a > 0:print a
... 
10
>>> quit()
$

6.

Pythonのステートメントの末尾にセミコロンを付けることは、1行に複数のステートメントを記述する場合以外は意味がない。

意味がある場合、ない場合

入出力結果(Terminal)

$ python
Python 2.7.2 (default, Feb 12 2012, 23:50:38) 
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a=10;b=20
>>> a,b
(10, 20)
>>> a=10;
>>> b=20;
>>> a,b
(10, 20)
>>> a=10
>>> b=20
>>> a,b
(10, 20)
>>> quit()
$

7.

tryステートメントには、エラーを検知する役割がある。

8.

コード(TextWrangler)

#!/usr/bin/env python
#encoding: utf-8

while 1:
 n =raw_input("n=")
 if n == "":
  break
 try:
  a = 10 / int(n)
 except:
  print "0で割ることは出来ません!"
 else:
  print "10 / n = ", a

入出力結果(Terminal)

$ ./python_program.py
n=5
10 / n =  2
n=0
0で割ることは出来ません!
n=
$

9.

Pythonの初心者に多いコーディングのミスの例を1つあげるとしたら、複合ステートメントの見出しのコロン「:」を記述し忘れること。

コード(TextWrangler)

#!/usr/bin/env python
#encoding: utf-8

n = int(raw_input("n = "))
if n < 0: # コロンを忘れない!
 print -n
else:  # コロンを忘れない!
 print n

入出力結果(Terminal)

$ ./python_program.py
n = 10
10
$ ./python_program.py
n = -10
10
$

0 コメント:

コメントを投稿