Python の組み込み型と一般的な問題


Python の組み込みデータ型は非常に豊富で、なし、数値型、シーケンス型、マッピング型、コレクション型の 5 つのカテゴリに大別できます。以下にそれぞれを紹介し、今後の参考のためにまとめておきます。以下の表に、各カテゴリの特定のデータ型を示します。 *注意: この記事で説明する内容は python2 に基づいており、python3 では多少異なります*。

1.png

1.None

None は空のオブジェクトである null オブジェクトを表します。関数が値を返さない場合は、null オブジェクトが返されます。 None には属性がなく、ブール式では False を表します。

2.数値型

ブール型を除き、すべての数値型は符号付きです。整数の表現範囲は -2147483648 ~ 2147483647 であり、long 整数は任意の長さを表現でき、使用可能なメモリのサイズによってのみ制限されます。


#整数i = 123i = int(123)#长整数l = 123Ll = long(123)

浮動小数点数はC言語のdoubleと同じ倍精度型(64bit)で、数値範囲は-1.7*10(-308)~1.7*です。 10(308)。

f = 12.3f = float(12.3)

複素数は浮動小数点数のペアで表され、実数部と虚数部に分けられ、実数部と虚数部を使用してアクセスされ、虚数部には j または J が接尾辞として付けられます。

c = 1.0 + 2.3jc = complex(1.0, 2.3)print c.real,c.imag

ブール値には True と False の 2 つの値のみがあり、それぞれ整数 1 と 0 にマップされます。

b = Falseb = bool(True)


2.1. 数値演算

ブール型に加えて、int、long、float、complex に使用できる演算は、加算、減算、乗算です。 、除算、除算、べき乗、剰余。以下に例を示します。


>>> 1 + 2 # 加法3>>> 1 - 2 # 减法-1>>> 2 * 3 # 乘6>>> 2 / 4 # 整数除0>>> 2 / 4.0 # 浮点除0.5>>> 3 // 2.0 # 整除1.0>>> 2 % 3 # 取余2>>> 3 ** 2 # 幂运算 =3^29

整数に対してもビット演算が可能で、ビット演算には否定(~)、左シフト(<<)、右シフト(>>)の6種類があります。 ;) 、排他的 OR (^)、ビットごとの OR (|)、ビットごとの AND (&)。

>>> ~1 # 1取反后为-2的补码-2>>> 8 << 1 # 左移16>>> 8 >> 2 # 右移2>>> 1 ^ 3 # 01 和 11 异或得到10,就是22>>> 1 | 3 # 01 和 11 位或得到11,就是33>>> 1 & 3 # 01 和 11 位与得到01,就是11

ブール型はブール式によって評価できます。ブール比較演算子は 6 つあります: より小さい (<)、以下 (<=)、より大きい (>)、より大きいまたは等しい (> =)、等しい (==)、等しくない (!=)。

>>> 1 < 2True>>> 1 <= 2True>>> 1 > 2False>>> 1 >= 2False>>> 1 == 2False>>> 1 != 2True

論理演算は、ブール型に対しても実行できます。演算には、論理 NOT (not)、論理 NOT-OR (or)、論理 AND (and) の 3 種類があります。

>>> not TrueFalse>>> True or FalseTrue>>> True and FalseFalse


2.2. 一般的に使用される数値型関数

abs(): 指定されたオブジェクトの絶対値を返します。


>>> abs(-2)2

divmod(): 除算と剰余演算を組み合わせて、商と剰余を含むタプルを返します。

>>> divmod(10, 3)(3, 1)

pow(): 2 つのパラメータ、電力演算。 3 つのパラメータ。べき乗後の剰余を取得します。

>>> pow(2, 5),pow(2, 5, 10)(32, 2)

round(): 四捨五入

>>> round(3.4),round(3.6)(3.0, 4.0)

floor(): 切り捨て、ceil(): 切り上げ、sqrt(): 平方根、数学モジュールが必要です。

>>> from math import floor,ceil,sqrt>>> floor(3.6),ceil(3.6),sqrt(9)(3.0, 4.0, 3.0)

conjugate(): 複素数の共役

>>> c = 2 + 3j>>> c.conjugate()(2-3j)


3. シーケンス タイプ

Sequence は、インデックスが非インデックスであるオブジェクトの順序付きコレクションを表します。負の数。文字列、リスト、タプルが含まれます。文字列は文字のシーケンスであり、リストとタプルは任意のオブジェクトのシーケンスです。文字列とタプルは不変ですが、リストは挿入、削除、置換できます。すべてのシーケンスは反復をサポートします。

3.1. 文字列

文字列の作成は非常に簡単ですが、文字列を表す方法はたくさんあります。


s = 'string's = "string" # 和上面单引号一样s = '''string''' # 三引号之间的内容都被保留,用于多行输入s = r"string" # 原生字符,关掉字符串中的转义。s = u"string" # unicode字符串

文字列には多くのメソッドがありますが、文字列の内容を変更するものではなく、一般的に使用されるメソッドは次の表のとおりです。

2.png

形式の例として、{0} は *args の最初の値を表し、{name} は kwargs 内の name の値を表します。
>>> "Here is {0},I'm {name}.".format("wuyuans.com", name="wuyuan")"Here is wuyuans.com,I'm wuyuan"


3.2. リストとタプル

リストの内容は変数であり、角括弧で示された任意のオブジェクトを含めることができます。
タプルの内容Immutableには任意のオブジェクトを含めることができ、かっこで表されます。


l = [1, 2, 3, '4', '5'] # 列表l = list((1, 2, 3, '4', '5'))t = (1, 2, 3, '4', '5') # 元组t = tuple("1234")

リストのメソッドは主にリスト内の内容を変更するために使用され、よく使用されるリストのメソッドを以下に示します。

3.png

インデックスを使用してリスト内の要素を削除することもできます。
>>> l = [1, 2, 3, 4, 5]>>> del l[1]>>> l[1, 3, 4, 5]


3.3. シーケンスの一般的な操作

すべてのシーケンスはインデックスによってアクセスできます。最初の要素のインデックスは 0、-1 は最後の要素、-2 は最後の要素です。最後の要素。2 つ、1 つなど。
スライス操作: インデックス範囲を指定し、対応するサブシーケンスを返します。
以下に示すように、一般的に使用されるものもいくつかあります。


>>> t = (1, 2, 3, 4, 5)>>> l = [1, 2, 3, 4, 5]>>> t[0]1>>> t[1:4] # 索引1~4(2, 3, 4)>>> t[1:4:2] # 索引1~4,步进为2(2, 4)>>> len(t) # 序列长度5>>> max(t) # 最大值5>>> min(t) # 最小值1>>> sum(t) # 序列求和15


3.4.xrange() オブジェクト

xrange() オブジェクトは次のとおりです。これは整数の範囲を表し、その値はアクセス時にのみ計算されるため、xrange オブジェクトにはスライス操作を使用できません。 xrange オブジェクトは、xrange([i, ] j [, stride]) 関数によって作成されます。ここで、i は開始値、stride はステップ値です。


>>> x = xrange(1,10,2)>>> for i in x: print i    13579


4. マッピング タイプ

Dictionary (dict) は Python の唯一の組み込みマッピング タイプであり、不変のオブジェクトはすべて Dictionary として使用できます。文字列、数値、タプルなどのキー値。辞書は中括弧で表され、キーと値はコロンで区切られ、各キーの値はカンマで区切られます。マップ オブジェクトには順序がありません。


d = dict((['name', 'wuyuan'], ['age', 23]))d = {'name': 'wuyuan', 'blog': 'wuyuans.com', 'age': 23}d['school'] = 'HDU' # 添加一项

辞書の一般的なメソッドと操作

4.png辞書走査メソッド:
#使用键历遍for i in d:    print i,d[i]#使用键值历遍for k,v in d.items():    print k,v


5. コレクション型

Aセットは、順序付けされていない一意の項目のセットです。このセットでは、インデックス付けやスライス操作は提供されません。セットの長さは可変ですが、内部に配置される項目は不変である必要があります。セットには、可変セット (set) と不変セット (frozenset) の 2 種類があります。


s = set([1, 2, 3])fs = frozenset([1, 2, 3])

コレクションの一般的なメソッドと操作

5.png

変数コレクション セットのメソッドと操作

6.png


Python の組み込み型に関する FAQ


Python の基本的な組み込みデータ型とは何ですか?

整数 (数値)、文字列、タプル、リスト、辞書、ブール型などのいくつかの基本的なデータ型。学習が進むにつれて、誰もがより多くの興味深いデータ型に触れるようになりますが、Python の初心者は、これらの型を理解するだけで始められます。


基本的な組み込みデータ型に対応するシンボルは何ですか?

1) 整数型——int——数値

Python には 5 つの数値型があり、最も一般的なのは整数型です。例: 1234, -1234

2) ブール型 - bool - シンボル ==

で表されるブール型は、Python の特殊な数値型です。 True と False の 2 つの値で、主に比較や判定に使用され、その結果をブール値と呼びます。例: 3==3 は True、3==5 は False を示します

3) 文字列 - str -

# を表すには ' ' または " " を使用します。 : 'www.phpcnpython.com' または "hello"

4) リスト - リスト - [ ] 記号で表されます

例: [1, 2,3 ,4]

5) タプル - タプル - ( ) 記号で表されます

例: ('d',300)

6) 辞書 - 辞書 - { } 記号で表されます

例: {'name':'coco','country':'china'}


Python の基本データ型のうち、どれが変更可能でどれが不変ですか?

Python 変数データ型: list list[ ]、辞書 dict{ }

Python 不変データ型: int、文字列 str' ' 、タプル tuple()