今回はPythonのデータ型について学んでみる。
CやFortranではデータ型の分けがかなり厳しかったと思う。
integerやreal、そして、doubleなど....
Pythonも似ているように数の形が分けられている。
だが、PythonはNumberとして、一括的に管理するのでかなり楽である。
さらに、変数型を決めておかなくてもいい!!
ただし、Python自体が数字を動処理するのかを理解する必要があるので、
それを簡単に説明してから実集に入りましょう。
Number type
expression
整数
0, 642, -51
実数
5.17, -12.25, 3.5e12
複素数
5+1j, -4j
8進数
0o25, 0o37
16進数
0xC3 0xFF5
3.5e12 = 3.5*10^12 = 3500000000000
複素数は基本的に内装関数を持ってる。
>> > x = 1 + 3j
>> > abs (x )
3.1622776601683795
>> > x .real
1.0
>> > x .imag
3.0
これ以外にも多くの機能があるが、cmath
というmodule を呼ぶ必要がある。
詳しい説明はここに!
数字を扱うための+
,-
,*
,/
のことをOperator (演算子)という
演算で使われる変数や数字のことはOperand (非演算子)という
そして、Pythonは**
と%
というOperatorも持つ
**
は累乗を、%
は除余算を意味する。
>> > x = 5
>> > y = 3
>> > x ** y
125
>> > x % y
2
文字の並びであって、Pythonでは次のように書く。
"Life is too short - You need Python"
'Life is too short - You need Python'
"""Life is too short - You need Python"""
'''Life is too short - You need Python'''
"
と'
の目立つ差はない。
主に、文字列の中に'
が入れたい時
"I'm teaching Python to you"
同じように文字列の中に"
が書きたい時
'"Python is great." Choi says.'
では、両方入れたい時はどうすればいいのか
この時\
を使う。
\
はEscape code と呼ばれて、"
や'
にまっすぐ書いたら文法に問題がでることを防ぐために酢買う。
つまり、\
の後ろに書いた文字は、完全に文字として認識されるので、何で囲むかを気にする必要がなくなる。
"\" I\' m teaching Python to you.\" Choi says."
"
や'
で囲んだ文字列に改行を入れたらエラーが出る。
つまり、普通の文字列は一行でまとめなきゃん羅ないようになっていて、改行を入れる場合"
や'
を忘れたと
Pythonが思ってエラーを返す。
では、動書けばいいのか。
ここには二つの方法がある。
Escape code で\n
(改行を意味する)を使う。
\n
は改行を意味するので、文字列の中にこれを書けば改行として表示してくれる。
>> > x = 'Life is too short.\n You need python'
>> > print (x )
Life is too short .
You need python
'''
や"""
を使うと、この中では、普通の改行も読んでくれる。
>> > x = '''Life is to short.
... You need python.'''
>> > print (x )
Life is to short .
You need python .
\'
、\"
や\n
以外にも多くのEscape code が存在する。
code
説明
\n
改行
\t
タブ(水平タブ)
\v
垂直タブ
\b
Backspace
\||
'
'
"
"
\r
Carriage return
\f
Form feed
\a
音
\000
NULL
Carriage returnは改行せずに一番前にもどる
>> > x = 'Choi is a girl\r Tomo'
>> > print (x )
Tomo is a girl
Form feedは印刷するときに次のページに変えたいときに使う。
そして、音は本当に音が出る。
### 文字の演算
>> > firstname = 'Dick'
>> > lastname = 'Choi'
>> > print (firstname + lastname )
DickChoi
>> > laugh = 'haha'
>> > print (laugh * 5 )
hahahahahahahahahaha
Indexingは番号で文字列の文字を呼ぶことで、Slicingは一部を取ることである。
配列のように、文字列でも使える。
>> > alphabet = 'abcdefghijklmnopqrstuvwxyz'
>> > print (alphabet [15 ])
p
>> > print (alphabet [3 :5 ])
de
>> > print (alphabet [:4 ])
abcd
>> > print (alphabet [20 :])
uvwxyz
それ以外のString関数も多いが、必要なときずつ探せばいい!
Pythonに基本的に使えるString関数
##参考
言語によってそれぞれだが、Pythonの+
演算はNumber+Number
やString+String
しかできない
つまり、Number+String
は次のようにエラーを起こす。
>> > someString = 'hello'
>> > someNumber = 12
>> > someString + someNumber
Traceback (most recent call last ):
File "<stdin>" , line 1 , in < module >
TypeError : Can 't convert ' int ' object to str implicitly
>> > someString + str (someNumber )
'hello12'
但し、その下に書いたように、数字を文字列に変えたら問題ない
この変えることをCasting と言う。