プログラミング

【Python3チュートリアル】「3. 形式ばらない Python の紹介」やってみた

python編集後

前回に続き、pythonチュートリアルをやります。
計算と文字列型、リスト型を扱います。
今回もCloud9を使います。(環境については、こちら)
コンソールに「python3.6」と入力し、インタプリタで試してみます。

ec2-user:~/environment $ python3.6
Python 3.6.2 (default, Feb 19 2018, 21:55:54) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Contents

Python を電卓として使う

pythonのインタプリタは、電卓としても使えます。
以下は利用できる演算子です。
一般的な、演算子が使えます。
インタプリタでは、最後に計算した計算結果が変数に代入されます。変数には計算結果が代入されるので、値を代入したりしないようにしましょう。

演算記号 役割
+ 加算
減算
* 乗算
/ 除算
// 整数除算(小数部を切り捨てた除算)
% 剰余
** 冪乗
= 代入
>>> 2 + 2
4
>>> _
4

文字列型(string)

文字列は、 ‘…'(単一引用符) “…”(二重引用符)で表現することができます。結果はどちらも同じになります。単一引用符と二重引用符との違いは、二重引用符の中では単一引用符をエスケープする必要はありませんが、二重引用符はエスケープする必要があることです。(逆も同じ)
なので、エスケープ文字を使わないですむように単一引用符と二重引用符を使いけるのがよさそうです。

>>> print("'a")
'a
>>> print(""a")
  File "", line 1
    print(""a")
            ^
SyntaxError: invalid syntax
>>> print("\"a")
"a

エスケープ文字である\を表示したい場合は、rを付けたraw stringにします。

>>> print('C:\some\name')  # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name')  # note the r before the quote
C:\some\name

文字列はインデックス(添え字)で指定した文字を取得できます。最初の文字のインデックスは0になります。負の値も指定できます。その場合は、右から数えた数になります。

>>> word = "python"
>>> word[0]
'p'
>>> word
'y'
>>> word[-1]
'n'

スライスで部分文字列も取得できます。

>>> word = "python"
>>> word[:2]
'py'
>>> word[2:]
'thon'
>>> word[2:4]
'th'

pythonの文字列は不変(immutable)のため、変更できません。
文字列の要素に代入することはできません。
別の文字列を得たい場合は、新しく作りましょう。

>>> word[0] = "j"
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'str' object does not support item assignment
>>> "j" + word                                                                                                                                               
'jython'

リスト型(list)

要素はコンマで区切り、[]で囲います。汎用性が高いデータ型です。文字列型(stiring)と同じく、インデックス(添え字やスライスができます)

>>> squares = 
>>> squares

文字列型(stiring)との違いは、リスト型(list)は可変(mutable)であることです。
リスト型では、要素にほかの値を代入可能です。(要素の入れ替えができる)

>>> squares

>>> squares[0] = 10
>>> squares
[10, 4, 9, 16, 25]
>>> 
```

リストの入れ子(2次元配列)も可能です。

>>> a = ['a', 'b', 'c']
>>> n = 
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], ]
>>> x[0]
['a', 'b', 'c']
>>> x[0]
'b'

プログラミングへの第一歩

フィボナッチ数列の先頭の文字を表示するプログラムです。
pythonでは、ループの内部をインデントで表現にします。
whileは条件が真である間、繰り返されます。

以下の場合だと

  1. bを出力する。
  2. aにbの値を代入する。aとbを加算した値をbに代入する。(同時に実行される)
  3. bが10より小さければ1に戻る
>>> # Fibonacci series:
... # the sum of two elements defines the next
... a, b = 0, 1 
>>> while b < 10:
...     print(b)
...     a, b = b, a+b
...
1
1
2
3
5
8

print関数でendキーワードを使うと、出力の区切りを改行ではなく,(コンマ)などにすることもできます。

... a, b = 0, 1
>>> while b < 10:
...     print(b,end=',')
...     a, b = b, a+b
...
1,1,2,3,5,8

用語

インタプリタ:プログラムをコンピュータが解釈・実行できる形式に変換しながら同時に少しずつ実行していくソフトウェア。

文字列リテラル:単一引用符や二重引用符で囲まれた文字列

"文字列"
'文字列'

エスケープ:文字の解釈を変えること。たとえば、"を""内に記載したいときに使う。
入れ子:リストの入れ子だったら、リストの中にリストがあること。人形の中に人形があるマトリョーシカみたいな。ネストともいう。

まとめ

データ型では、不変か可変を気を付ける必要があると思いました。
pythonチュートリアルでは、詳細に書かれているので完全に理解することより、ある程度理解したら進む方針でやっていきます。