Python 3の基本的なデータ型

Pythonの変数を宣言する必要はありません。 各変数には、使用する前に値を割り当てる必要があります。変数は、値が割り当てられた後に作成されます。

Pythonでは、変数は変数であり、タイプはありません。「タイプ」と呼ばれるのは、変数が参照するメモリ内のオブジェクトのタイプです。

等号(=)は、変数に値を割り当てるために使用されます。

等号(=)演算子の左側は変数名であり、等符号(=)演算子の右側は変数に格納されている値です。

実例(Python 3.0以降)

#!/usr/bin/python3
counter = 100 #整数型変数
miles= 1000.0 #浮動小数点型変数
name = "ceodata.com" #文字列
print (counter)
print (miles)
print (name)

上記のプログラムを実行すると、次の結果が出力されます。

100
1000.0
ceodata.com

複数の変数の割り当て

Pythonでは、複数の変数に同時に値を割り当てることができます。 例えば、

a=b=c=1

上記の例では、値が1の整数型オブジェクトを作成し、値を後ろから前に割り当て、3つの変数に同じ値を割り当てます。

複数のオブジェクトに複数の変数を指定することもできます。

例えば、

a, b, c=1, 2, "ceodata"

上記の例では、2つの整数型オブジェクト1と2が変数aとbに割り当てられ、文字列オブジェクト「ceodata」が変数cに割り当てられます。

標準データ型

Python3には6つの標準データ型があります。

  • 数値(Number)
  • 文字列(String)
  • リスト(List)
  • タプル(Tuple)
  • セット(Set)
  • 辞書(Dictionary)

Python3の6つの標準データ型の中で:

  • 不変データ(3):数値(Number)、文字列(String)、タプル(Tuple)
  • 変数データ(3):リスト(List)、辞書(Dictionary)、セット(Set)

数値型(Number)

Python3は、整数(int)、ブール(bool)、浮動小数点(float)、複素数(complex)をサポートしています。

Python 3では、一種類の整数型intがしかありません。python2にある长整型(Long)がありません。

ほとんどの言語と同様に、数値型の割り当てと計算は非常に直感的です。

組み込みのtype()関数を使用して、変数が指すオブジェクトタイプを確認できます。

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

さらに、isinstanceを使用して判断することもできます。

実例

>>> a = 111
>>> isinstance(a, int)
True
>>> 

isinstanceとtypeの違いは次のとおりです。

type()は、サブクラスを親クラスタイプと見なしません。
isinstance()は、サブクラスをスーパークラスタイプと見なします。

>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

注:Python2にはブール(bool)型はありません。0はFalseを表し、1はTrueを表します。 Python3では、TrueとFalseがキーワードとして定義されていますが、それらの値は1と0のままであり、数値と加算できます。

値を指定すると、Numberオブジェクトが作成されます。

var1 = 1
var2 = 10

delステートメントを使用して、一部のオブジェクト参照を削除することもできます。

delステートメントの構文は次のとおりです。

del var1[,var2[,var3[….,varN]]]

delステートメントを使用して、単一または複数のオブジェクトを削除できます。

例えば:

del var
del var_a, var_b

数値演算 – 実例

>>> 5 + 4 #加算
9
>>> 4.3-2 #減算
2.3
>>> 3 * 7 #乗算
21
>>> 2/4 #除算、浮動小数点数を取得します。
0.5
>>> 2 // 4 #除算、整数を取得します。
0
>>> 17%3 #余りを取る
2
>>> 2 ** 5 #累乗
32

注意点

  • Pythonは、複数の変数に同時に値を割り当てることができます。例えば:a, b = 1, 2
  • 変数は、値の割り当てを通じてさまざまなタイプのオブジェクトを指すことができます。
  • 数値除算には2つの演算子が含まれます。「/」浮動小数点数を返します。「//」整数を返します。
  • 混合計算では、Pythonは整数を浮動小数点数に変換します。

数値型実例

intfloatcomplex
100.03.14j
10015.2045.j
-786-21.99.322e-36j
08032.3e+18.876j
-0490-90.-.6545+0J
-0x260-32.54e1003e+26J
0x6970.2E-124.53e-7j

Pythonは、複素数をサポートしています。実数部と虚数部で構成され、a+ bjまたはcomplex(a、b)で表します。複素数の実数部aと虚数部bは、どちらも浮動小数点型です。

文字列(String)

Pythonの文字列は、一重引用符 ‘または二重引用符 “で囲まれ、特殊文字はバックスラッシュ\でエスケープします。

文字列インターセプトの構文形式は次のとおりです。

変数[検索開始:検索終了]

検索値は0から始まり、-1は最後からの開始位置です。

プラス記号+は文字列の接続符であり、アスタリスク*は現在の文字列をコピーすることを意味し、それに組み合わされた数字はコピーの回数です。 例は次のとおりです。

実例

#!/usr/bin/python3
str = 'ceodata'
print (str) #文字列を出力する。
print (str [0:-1]) #最初から最後の2番目までのすべての文字を出力する。
print (str [0]) #文字列の最初の文字を出力する。
print (str [2:5]) #3番目から5番目までの文字を出力する。
print (str [2:]) #3番目以降のすべての文字を出力する。
print (str * 2) #文字列を2回出力し、print(2 * str)と書くこともできる。
print (str + "TEST") #文字列を接続する。

上記のプログラムを実行すると、次の結果が出力されます。

ceodata
ceodat
c
oda
odat
ceodataceodata
ceodataTEST

Pythonは、バックスラッシュ\を使用して特殊文字をエスケープします。バックスラッシュをエスケープしたくない場合は、文字列の前にrを追加して、元の文字列を示すことができます。

実例

>>> print('ce\nodata')
ce
odata
>>> print(r'ce\nodata')
ce\nodata
>>> 

さらに、バックスラッシュ(\)は行継続記号として使用でき、次の行が前の行の継続であることを示します。 “” “…” “”または ” ‘…’ ”を使用して複数の行にまたがることもできます。
Pythonには個別の文字タイプがなく、文字は長さ1の文字列であることに注意してください。

実例

>>> word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P

C文字列とは異なり、Python文字列は変更できません。 word [0] = ‘m’のように検索位置に値を割り当てると、エラーが発生します。

注意:

  • バックスラッシュを使用してエスケープできます。rを使用して、バックスラッシュがエスケープされないようにできます。
  • 文字列は+演算子で接続し、*演算子で繰り返すことができます。
  • Pythonには、2つの文字列の検索方法があります。左から右に0で始まる方法と、右から左に-1で始まる方法です。
  • Pythonの文字列は変更できません。

リスト(List)

リスト(リスト)は、Pythonで最も頻繁に使用されるデータ型です。

リストは、ほとんどの集合のデータ構造の実現を完了できます。 リスト内の要素の型は異なる場合があり、数値、文字列、さらにはリスト(いわゆるネスト)をサポートします。

リストは、角括弧[]で囲まれ、コンマで区切られた要素のリストです。

文字列と同様に、リストにも検索やインターセプトすることができます。リストがインターセプトされた後、必要な要素を含む新しいリストが返されます。

リストインターセプトの構文形式は次のとおりです。

変数[開始インデックス:終了インデックス]

検索値は0から始まり、-1は最後からの開始位置です

プラス記号+はリストを接続する演算子です。アスタリスク*は繰り返し操作です。 次の実例をご覧ください。

実例

#!/usr/bin/python3
list = [ 'abcd', 786 , 2.23, 'ceodata', 70.2 ]
tinylist = [123, 'ceodata']
print(list) #完全なリストを出力する。
print(list [0]) #リストの最初の要素を出力する。
print(list [1:3])#2番目から3番目までの要素を出力する。
print(list [2:]) #3番目の要素から始まるすべての要素を出力する。
print(tinylist*2) #リストを2回出力する。
print(list + tinylist) #リストを接続する。

上記の実例の出力結果:

['abcd', 786, 2.23, 'ceodata', 70.2]
abcd
[786, 2.23]
[2.23, 'ceodata', 70.2]
[123, 'ceodata', 123, 'ceodata']
['abcd', 786, 2.23, 'ceodata', 70.2, 123, 'ceodata']

Python文字列とは異なり、リスト内の要素は変更できます。

実例

>>> a = [1, 2, 3, 4, 5, 6]
>>> a[0] = 9
>>> a[2:5] = [13, 14, 15]
>>> a
[9, 2, 13, 14, 15, 6]
>>> a[2:5] = [] #対応する要素の値を[]に設定します。
>>> a
[9, 2, 6]

リストには、append()、pop()などの多くのメソッドが組み込まれています。後で説明いたします。

注意点

  • リストは角括弧で囲まれ、要素はコンマで区切られます。
  • 文字列と同様に、リストにはインデクスやスライスすることができます。
  • +演算子を使用してリストを接続することができます。
  • リスト内の要素は変更できます。

Pythonリストのスライスは、3番目の引数を受け取ることができます。三番名の引数は要素の間隔の長さを表示するために使用されます。次の例では、検索1から検索4の位置で文字列をスライスし、要素の間隔の長さを2(1桁離して)に設定します。

3番目の引数が負の数である場合は逆方向の読み取りの意味を示します。次の例を使用して文字列を逆方向に読み取ります。

実例

def reverseWords(input):  
     #文字列をスペースで区切って、各文字をリストに区切ります
      inputWords = input.split(" ") 
     #逆文字列
     #仮にリスト= [1,2,3,4]とします。
     #list [0] = 1、list [1] = 2、および-1は、最後の要素list [-1] = 4を意味します(list [3] = 4と同じ)
     #inputWords [-1 ::-1]には3つの引数があります
     #最初の引数-1は最後の要素を意味します
     #2番目の引数は空です。リストの最後に移動することを意味します
     #3番目の引数は要素の間隔の長さです。-1は逆方向を意味します
     inputWords=inputWords[-1::-1] 
#文字列を再結合する
      output = ' '.join(inputWords)      
    return output 
if __name__ == "__main__": 
    input = 'I like ceodata.com'
    rw = reverseWords(input) 
    print(rw)

出力結果は次のとおりです。

ceodata.com like I

タプル(Tuple)

タプルはリストに似ていますが、タプルの要素を変更できない点が異なります。 タプルは括弧()で記述され、要素はコンマで区切られます。
タプルの要素タイプも異なる場合があります。

実例

#!/usr/bin/python3
tuple = ('abcd', 786 , 2.23, 'ceodata', 70.2)
tinytuple = (123, 'ceodata')
print(tuple) #完全なタプルを出力する。
print(tuple [0]) #タプルの最初の要素を出力する。
print(tuple [1:3]) #2番目の要素から3番目の要素までを出力する。
print(tuple [2:]) #3番目の要素から始まるすべての要素を出力する。
print(tinytuple*2) #タプルを2回出力する。
print(tuple+tinytuple) #タプルを接続する

上記の実例の出力結果:

('abcd', 786, 2.23, 'ceodata', 70.2)
abcd
(786, 2.23)
(2.23, 'ceodata', 70.2)
(123, 'ceodata', 123, 'ceodata')
('abcd', 786, 2.23, 'ceodata', 70.2, 123, 'ceodata')

タプルは文字列に似ており、検索することができ、検索開始は0から始まり、-1は最後から開始します。 インターセプトすることもできます(上記を参照してください)。
実際、文字列は特別な種類のタプルと考えることができます。

実例

>>> tup = (1, 2, 3, 4, 5, 6)
>>> print(tup[0])
1
>>> print(tup[1:5])
(2, 3, 4, 5)
>>> tup[0] = 11  #タプルの要素を変更できません。
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> 

タプルの要素は変更できませんが、リストなどの変更可能なオブジェクトを含めることができます。

0または1の要素を含むタプルは特殊であるため、いくつかの追加の構文規則があります。

tup1 =()#空のタプル
tup2 = (20,)#要素の1つで、要素の後にコンマを追加する必要があります。

文字列、リスト、タプルはすべてシーケンス( sequence)に属します。

注意点

  • 文字列と同様に、タプルの要素は変更できません。
  • タプルも同じく検索やインターセプトすることができます。
  • 0または1要素を含むタプルの特別な構文規則に注意してください。
  • タプルは+演算子を使用して接続することもできます。

Set(セット又は集合)

セットは、サイズの異なる1つまたは複数の全体で構成されます。セットを構成するものまたはオブジェクトは、要素またはメンバーと呼ばれます。

基本的な機能は、メンバー間の関係をテストし、重複する要素を削除することです。

中括弧{}またはset()関数を使用してセットを作成できます。空のセットを作成するには、{}ができなく、set()を使用する必要があります。{}を使用して空の辞書を作成するためです

フォーマットの作成

parame = {value01,value02,...}

または

set(value)

実例

#!/usr/bin/python3
sites = {'Google', 'Yahoo', 'Ceodata', 'Facebook', 'Youtube', 'Naver'}
print(sites)   #出力セット、重複する要素は自動的に削除されます。
# メンバーテスト
if 'Ceodata' in sites:
     print ('セット内のCeodata')
else:
     print('Ceodataはセットにありません')
#セットはセット操作を実行できます
a = set('abracadabra')
b = set('alacazam')
print(a)
print (a-b)#aとbの差集合
print (a | b)#aとbの和集合
print (a&b)#aとbの積集合
print (a^b)#aとbに同時に存在しない要素

上記の実例の出力結果:

{'Yahoo', 'Youtube', 'Naver', 'Facebook', 'Ceodata', 'Google'}
セット内のCeodata
{'c', 'b', 'd', 'a', 'r'}
{'b', 'd', 'r'}
{'m', 'c', 'z', 'b', 'd', 'a', 'r', 'l'}
{'a', 'c'}
{'z', 'b', 'd', 'm', 'r', 'l'}

辞書(Dictionary)

辞書は、Pythonのもう1つの非常に便利な組み込みデータ型です。

リストはオブジェクトの順序づけ集合であり、辞書はランダムなオブジェクトの集合です。 2つの違いは、辞書の要素がオフセットではなくキーを介してアクセスすることです。
辞書はマッピングの一種です。辞書は{}で識別します。これは、ランダムなkeyで、valueの集合です。

keyは変更できないタイプを使用する必要があります。

同じ辞書で、キーは唯一である必要があります。

実例

#!/usr/bin/python3
dict = {}
dict['one'] = "1-初心者チュートリアル"
dict[2]     = "2-初心者ツール"
tinydict = {'name': 'ceodata','code':1, 'site': 'www.ceodata.com'}
print (dict['one'])  #キーの値を 'one'として出力する。
print (dict[2])  #キーは2の値を出力する。
print (tinydict)   #完全な辞書を出力する。
print (tinydict.keys())  #すべてのキーを出力する。
print (tinydict.values()) #すべての値を出力する。

上記の実例の出力結果:

1-初心者チュートリアル
2-初心者ツール
{'name': 'ceodata', 'code': 1, 'site': 'www.ceodata.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['ceodata', 1, 'www.ceodata.com'])

コンストラクターdict()は、キーと値のペアのシーケンスから辞書を直接構築できます。

実例

>>> dict([('Ceodata', 1), ('Google', 2), ('Yahoo', 3)])
{'Ceodata': 1, 'Google': 2, 'Yahoo': 3}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Ceodata=1, Google=2, Yahoo=3)
{'Ceodata': 1, 'Google': 2, 'Yahoo': 3}
>>> 

さらに、辞書タイプには、clear()、keys()、values()などの組み込み関数もあります。

注意点

辞書はマッピング型であり、その要素はキーと値のペアです。
辞書のキーワードは変更できないタイプであり、ループすることもできません。
{}を使用して、空の辞書を作成します。

Pythonデータ型の変換

場合によっては、組み込みタイプのデータを変換する必要があります。データ型の変換では、関数名としてデータ型を使用するだけで済みます。

次の組み込み関数は、データ型の間の変換を実行できます。 これらの関数は、変換された値を表す新しいオブジェクトを返します。

関数説明
int(x [,base])xを整数に変換する
float(x)xを浮動小数点数に変換する
complex(real [,imag])複素数を作成する
str(x)xをわかりやすい文字列に変換する
repr(x)xをevalで評価できる形式文字列に変換する
eval(str)文字列内の有効なPython式を計算し、オブジェクトを返す。
tuple(s)シーケンスSをタプルに変換する
list(s)シーケンスSをリストに変換する
set(s)変更可能な州に変換する
dict(d)辞書を作成する。 dは、(キー、値)タプルのシーケンスである必要がある。
frozenset(s)変更できない集合に変換する
chr(x)整数を文字に変換する
ord(x)文字を整数値に変換する
hex(x)整数を16進文字列に変換する
oct(x)整数を8進文字列に変換する
Share

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です