2010/09/25

Pythonの基本 まとめ Hello, world と 変数

Release:1.1
Date:October 21, 2010
自分用に書いたPythonのHello, Worldから変数についてのまとめです。
間違いや勘違いが多分に含まれている可能性があるので、参考にされる方は
公式のドキュメントなどで確認をお願いします。

注) 印はまだ自身のないところです。

– Hello, World

インタラクティブシェルでHello,Worldを書いてみましょう。
ipythonかbpython、特にbpythonは初心者の方におすすめです(※)。

bpython

機会があったら紹介します。

>>> print('Hello, World!')
Hello, World!
スクリプトファイルを使ってHello,World
1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/usr/bin/env python
#-*- coding:utf-8 -*-
"""Echo 'Hello World'"""

print('Hello, World!')

'''
Created on 2010-09-08
@author Komiyam Iyori
'''
$ python HelloWorld.py
Hello, World!

[1] Python2系と3系ではprintの書き方が異なります。

注釈

[1]print文はPython3から関数に変更になりました。
Python2系 Python3系
print ‘hoge’ print(‘hoge’)
print ‘foo, ‘bar’ print(‘foo’, ‘bar’)
print ‘gau’, print(‘gau’, end=” “)

一番上は2系と3系で互換性があるのでなるべく同じように書くといいと思います(※)。

– 変数を使う

変数を定義するというのは、変数という箱にオブジェクトを代入するということです。

>>> box = 1   # boxという変数の箱の中に1という値を入れる(代入)
>>> box
1
簡単に書くと、「箱(名札:box) = 値」みたいな感じです。
上の場合は 1 という数字を box という名札のついた箱(変数)に入れています。
このような手続きを変数を定義するといいます。(※要確認)
>>> a = 1
変数の中身を確認するには、インタプリタシェルでは単純に a と入力するだけです。
>>> a
1

文字、あるいは文字列の場合には、アルファベットの場合はそのままの文字、日本語の場合には文字コードが表示されます。

>>> n = 'a'
>>> n
'a'

日本語の文字列を扱う場合はUnicode文字列を使いましょう。

>>> n = u'あ'
>>> n
u'\u3042'

きちんと表示するためには、print文(Python3の場合は関数)を使います。

>>> print(n)

変数には、大小アルファベット、数字、アンダースコア( _ )が使えます。

>>> a1 = 1
>>> print(a1)
1
>>> _a = 'underscore'
>>> print(_a)
underscore
変数は、大文字と小文字を区別します。
例えば、 a という変数と A という変数は別物です。
>>> a = 1
>>> A = 'one'
>>> a
1
>>> A
'one'
変数のはじめの1文字には、アルファベットかアンダースコアを書かなくてはいけません。
数値をはじめの1文字とするとエラーになります。
>>> 1a = 1
  File "<stdin>", line 1
      1a = 1
           ^
SyntaxError: invalid syntax

変数名には次の一覧にある予約語は使用できません。

Note

and as assert break class continue def
del elif else except exec finally for
form global if import is lambda not or
pass raise return try while with yield
print

予約語を変数名に使おうとするとエラーが出ます。

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

print文はPython3系から関数になっているので変数名にできますが、使わないほうが無難だと思います(※)。

>>> print = 'print'
>>> print
print

変数の名前のつけ方に関しては、`:pep: 8` を参照してください。

変数定義いろいろ。

>>> n = 1
>>> n
1
>>> b = 'bar'
>>> b
'bar'
>>> c = d = e = 7  #←同値同時代入
>>> c, d, e
(7, 7, 7)
>>> x, y, z = 1, 2, 3  #←複数同時代入
>>> x
1
>>> y
2
>>> z
3
>>> x, y = y, x  #←同時入れ替え
>>> x
2
>>> y
1

変数どおしの計算はきちんと中身の値が使われます。

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

変数の同時入れ替えの簡単なサンプル

>>> def fib(n):    # n までのフィボナッチ級数を出力する
...     """Print a Fibonacci series up to n."""
...     a, b = 0, 1
...     while b < n:
...         print b,
...         a, b = b, a+b
...
>>> # 今しがた定義した関数を呼び出す
>>> fib(2000)
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
Pythonでは変数の型は自動的に判断されて切り替えられています。
変数の型を宣言するというようなことはPythonでは必要ありません。
同じ変数に文字列でも数値でも入れることができますが、多言語も学ぼうと思われる方は
変数に今どのようなオブジェクトが入っているのかをよく考え、把握することが大事だと思います(※)。
>>> a = 1   # 数値を代入
>>> a
1
>>> a = 'あ'   # 数値が入っていた変数に文字列を入れる
>>> print a
あ     # エラーなく表示される

間違いなどがあったら、教えていただけると嬉しいです。


[2010-10-21] @Tomoki_Imai さんから日本語文字列についてご指摘をいただきました!
        親切にご指導していただき本当にありがとうございます。

0 件のコメント:

コメントを投稿