ホームページ  >  記事  >  バックエンド開発  >  第 2 章 Python データ型

第 2 章 Python データ型

黄舟
黄舟オリジナル
2016-12-22 17:04:141188ブラウズ

セクション 1 数値と文字列の型

123 は "123" と同じです

() [] {}

コンピューターは人々を支援するために使用され、現実世界の分類もプログラミングでマッピングされます。抽象的な分析を容易にします。

数値

文字列

リスト

タプル

辞書

データ型を通していくつかの単純なデータ型を調べます。Python は自動的にデータの型を識別します

> ;> ;> 番号 123
>>> タイプ (123)
>>> 番号 2=999999999999999999
>> タイプ (番号 2) >>> ='hello'


>>> type(num)

Python で整数で表される範囲は -2,147, 483,648 ~ 2,147,483,6 47

例: 0,100,,10 0

Intの範囲例は上記の通りです。


>


>>> タイプ(数値)

>>> >> ; type(num)

>> num = 12.0

>


例:


> num=3.14j

> gt;> ; type(num)

>>> num
>>> print num


>>>以下の2種類ここの変数>>>>>>>> ;>> a+stra ここでは、次の 2 つの異なるタイプが見つかります。
Traceback (最新の呼び出しは最後) では変数を操作できません:
ファイル ""、1 行目、
TypeError: + のオペランド タイプがサポートされていません: 'int' と 'str'
>>> タイプ (a)

>

>>> str1='hello world'


>>> str2="hello world"

>>> これにはエラーがありますここで定義すると、一重引用符も含まれます
ファイル ""、行 1

Say='let's go'

^
SyntaxError: 無効な構文


>>>外側の一重引用符を二重引用符に変更するだけです


>>> 二重引用符の中に二重引用符がある場合は、エスケープ文字を使用する必要があります
ファイル "" , line 1
say="「行きましょう」

^

SyntaxError: 構文が無効です
>>>>say="「行きましょう」"

>>> print と言う


「行きましょう」

エスケープ文字の使用法を見てみましょう


>>> mail='tom: こんにちは、ジャックです'
>>> 印刷メール
: こんにちは、ジャックです
> > mail='tom:n hellon i am jack' 上記の文字について、改行を使用して出力する場合は
>>> mail
'tom:n hellon i am jack'
>> > メールを印刷する
トム:
こんにちは

私はジャックです

以下では、改行効果を実現するために三重引用符を使用しています:

>>> mail="""tom:
... 私はジャックです
... さようなら
... "" "
>>> メールを印刷する
tom:
私はジャック
さようなら

>>> メール ここでは、三重引用符を使用すると入力を記録することがわかります
'tom a =' abcde'

>>> a[0] インデックスを使用して文字列内の特定の値を取得します


'a'

>>> a[1]

'b'
> ;> ;> a[0]+a[1] 複数の値を取得したい場合は、真ん中の + 記号を使用して

'ab' を接続します

値を取得するにはスライスを使用します


>>> a

'abcde'

ここでの操作を見てみましょう、 a[開始位置: 終了位置 + 1: ステップサイズ]

>>> :4] ここでは、bcd を使用して、値


'bcd' を取得します


>>> これは、先頭から末尾までを切り取ることを意味します。 d

'abcd'

>> ;> a[4:] >> ステップサイズで値を取得するとより明確になります。サイズは2つ下です

' abcde'
>>> a[::2]

'ace'

>>> a[-4:-1] 負のインデックスから値を取得します。フロント、-1 は最後から 2 番目の値を表します

'bcd'

> >> a[-2:-4:-1] 彼は最初にすべての数値を反転し、次に値を切り取ります。 'dc' の 2 番目の位置から 3 番目の位置まで
>> ;> a[-4:-2:1] 最後から 4 番目の位置から開始して、最後から 2 番目の位置の値を切り捨てることを意味します


'bc'


>>> a[-2 ; 主な機能はインデックス演算子とスライス演算子です。


—インデックス演算子を使用すると、シーケンスから特定の項目を取得できます。

——スライス演算子を使用すると、シーケンスのスライス、つまりシーケンスの一部を取得できます。

c. インデックスは負の数にすることもでき、位置はシーケンスの末尾から計算されます。


- したがって、shoplist[-1] はシーケンスの最後の要素を表し、shoplist[-2] はシーケンス


d の最後から 2 番目の項目を取得します。スライス演算子は、シーケンス名の後に角括弧が続きます。コロンで区切られた、括弧内のオプションの数値のペアです。


- これは、使用するインデックス演算子と非常に似ていることに注意してください。数字はオプションですが、コロンは必須であることに注意してください。


——スライス演算子の最初の数字 (コロンの前) は開始位置を示し、2 番目の数字 (コロンの後) はスライスの終了位置を示します。最初の番号を指定しない場合、Python はシーケンスの先頭から開始します。 2 番目の数値が指定されていない場合、Python はシーケンスの最後で停止します。

——注: 返されたシーケンスは開始位置から始まり、終了位置の直前で終了します。つまり、開始位置はシーケンススライスに含まれ、終了位置はスライスから除外されます。

a.shoplist[1:3] は、位置 1 から始まり位置 2 を含むシーケンス スライスを返しますが、位置 3 で停止するため、2 つの項目を含むスライスを返します。 shoplist[:] はシーケンス全体のコピーを返します。負の数を使用してスライスを実行できます。負の数値はシーケンスの末尾から使用されます。たとえば、shoplist[:-1] は、最後の項目を除くすべての項目を含むシーケンス スライスを返します。


シーケンスの基本操作

1.len(): シーケンスの長さを求める

2.+: 2つのシーケンスを接続する

3.*: シーケンス要素を繰り返す

4.in:要素がシーケンス内の

5.max(): 戻り値の最大値

6.min(): 最小値に戻る

7.cmp (tuprel, tuple2) かどうかを判断します。シーケンス値は 2 つのシーケンス値を比較します 同じ

では、それをやってみましょう:

'abcde'

>>> len(a)
5
> ;>> str1='123'
>>> str2='adbs'
>>> str1+str2


'123adbs'


>このように、str1 は 5 回繰り返されます

'12312312312 3123 '

>>> "#"*40

'################### ########### #####'
>>> str2
'adbs'


>>> 文字 'c' が存在するかどうかを確認しますが文字列 str2 にない場合は、True

False を返します

>>> str2 の 'a' が True



中にない場合は not in を使用することもできます

>> ;> 'c' は str2 にありません

>>> max(str1)

>>>

'>> str2)


'a'


cmp(str1, str2) は 2 つの文字列の比較に使用されます

>>> str1='12345'

>>> ;>> cmp(str1,str2)

-1


>>> str2='123'
1
>> > str2='12345' このとき、2 つの値は等しいため、比較すると 0 を返します

>>> cmp(str1,str2)

0




セクション 3 タプル ()


タプルはリストと非常によく似ていますが、タプルと文字列は不変である、つまりタプルを変更できない点が異なります。


— タプルは括弧内のカンマ区切りの項目によって定義されます。


- タプルは通常、ステートメントまたはユーザー定義関数が一連の値を安全に取得できる場合、つまり、使用されるタプルの値が変更されない場合に使用されます。

>>> str2='12345'
>>> id(str2)

>> id(str2)


02043552576


それでは始めましょうタプル操作



まず、スライスされた名前を確認します。長さが異なるとスペースが表示されるため、そこから要素を取得するのはより困難になります

>>> 「マイロ 30 男性」
>>> userinfo[:4]

'マイロ'

>>> userinfo1="ゾウ 25 女性"
>>> '

>>> t=("milo",30,"male") ここでタプル定義を使用すると、値を取得するのがはるかに便利になります

>>>
'マイロ'

>>>

30

>>>



'男性'

tupleタプルを作成します - 空のタプルは、空の括弧で構成されています。 = ('monkey','dolphin',zoo)


>> ;> t=() 空のタプルを定義します

>>&t1=(2,)使う 使う 使う アウト アウト アウトout から off ''s ' ‐ ‐ ‐‐ ‐‐‐‐ および ��gt; を使用して空のタプルを定義します

> ——タプルの値も不変です


>>> t=('マイロ',30,'男性')
>>>
>>> [1]

30

>>> t[1]=31 ここで、ビューの年齢を変更する際にエラーが見つかりました
Traceback (最新の呼び出し最後):

File "" 、行 1、

TypeError : 'タプル' オブジェクトは項目の割り当てをサポートしていません

>>> t



('milo', 30, 'male')

>>>
>>> 名前
>>> 年齢

>>> 性別


>>> ,2,3


>>> a,b,c=(1,2,3) Python では、両方のメソッドでタプルを定義できますが、2 番目のメソッドを使用しようとします



セクション4 シーケンスタプル



List[]


1) リストは、順序付けられた項目のセットを処理するデータ構造です。つまり、リストのプロジェクトにシーケンスを格納できます。


2) リストは変数型のデータです

3) リストの構成: [] を使用して、カンマで区切られた複数の数値または文字列を含むリストを表します。


——List1=['Simon','David','Clotho','Zhang San']

——List2=[1,2,3,4,5]


——List3= ["str1","str2","str3","str4","str5"]


>>> listmilo=[] 空のリストの定義
>>> type(listmilo)

> ; t[0]
'milo'

>>>

'milo'
>>> listmilo[0:2] リストから値を取得します

['milo', 30 ]

> ;> l3=['abc']
>>> ここでは、これがリストであることがわかります

>>>操作

——値

a. スライスとインデックス付け

b.list[]

——

a.list.append() を追加

——削除

del (list[]) リスト内の .var

>>> listmilo[0] ここでは、リストが格納された要素の値を変更できることがわかります
>>> listmilo[0]='zou'
>>> [0]
'zou'

リストに要素を追加する方法を紹介します


>>> listmilo

['milo', 30, 'male']
>>> .append("123444555")
>>> listmilo

['milo', 30, 'male', '123444555'] この時点で、listmilo リストに 4 番目の要素が追加されていることがわかりました


> del(listmilo[1]) del を使用して、リストのインデックスを通じてリスト内の値を削除することもできます


>>>

一部の構文をクエリするにはヘルプを使用する方法を学ぶ必要があります。たとえば、リストの内部削除操作を表示する必要があります

>help(list.remove)



ヘルプMethod_descriptor:


remove(...)

L.remove( value) -- 値が存在しない場合は ValueError を発生させます

(END)

>>> (len) これは、いくつかの内部関数の使用法を表示する方法です





オブジェクトとクラスのクイック スタート

1) オブジェクトとクラス、リストをよりよく理解します。

2) オブジェクト = 属性 + メソッド

3) リストはオブジェクトとクラスの使用例です。

——整数 5 を割り当てるなど、変数 i を使用してそれに値を代入すると、クラス (型) int のオブジェクト (インスタンス) i を作成したと考えることができます。

——help(int)

4) クラスには、そのクラスに対してのみ定義された関数であるメソッドもあります。

——これらの関数は、このクラスのオブジェクトによってのみ使用できます。

——例:

a. Python は list クラスに append メソッドを提供します。このメソッドを使用すると、リストの最後に項目を追加できます。

b.mylist.append('an item') はリスト mylist に文字列を追加します。オブジェクト メソッドを使用する場合はドット表記を使用することに注意してください。

5) クラスには変数もあります。変数はクラスに対してのみ定義されます。

——これらの変数/名前は、このクラスのオブジェクトでのみ使用できます。

——mylist.field など、ドットを通して使用されます。


セクション 5 辞書 {}

1) 辞書は Python の唯一のマッピング型 (ハッシュ テーブル) です

2) 辞書オブジェクトは変更可能ですが、辞書のキーは不変でなければなりません オブジェクト、およびさまざまなタイプのキー値は辞書で使用できます。

3) key() または value() は、キーリストまたは値リストを返します。

4) items() は、キーと値のペアを含むタプルを返します。


辞書を作成します:


- {}


- ファクトリメソッド dict() を使用します

例: fdict=dict(['x',1],['y',2])

- 組み込みメソッド: fromkeys()、辞書内の要素は同じ値を持ち、デフォルトは None です

例: ddict={}.fromkeys(('x','y'),-1 )


>>> dic={0:0,1:1,2:2} ここで辞書 {key:value,key:value,key:value} を定義します

>>> ; dic [0]

>>> dic[1]
>>> dic1={'名前':' milo' ,'age':25,'gender':'male'} このように定義するとより意味があります


>>> dic1['name'] とすると、より目的が明確になります。値

' マイロ'

>>> dic1['年齢']
>>> dic1['性別']

>>> dic2={1:'123','name':'milo','x':456}

>>> dic2

{1: '123', ' name': 'milo', 'x': 456}

次に、別の例を見てみましょう:

>>> ここでは、まず 2 つの変数を定義します
>>>

>>> dic3={a:'aaa','b':'bbb'} a が定義されていない場合、ここにエラーが表示されます

>>>
'aaa'

>>> dic3[2] ここで最終的に違いがわかります。実際、辞書では b

Traceback (最新の呼び出し) より前に定義された値が使用されていません。
ファイル ""、1 行目、
KeyError: 2
>>> dic3['b']
'bbb'
>>> dic1
{'性別': '男性', '年齢': 25, 'name': 'milo'}
>>> for k in dic1: ここで辞書を使用する便利さが分かります
... Print k
...
性別
年齢
名前
>

- キー値を使用して更新に直接アクセスします。組み込みの uodate() メソッドは、辞書全体の内容を別の辞書にコピーできます。


- del dict1['a'] は辞書内のキー a を持つ要素を削除します

a. dict1.pop('a') はキー 'a' を持つ要素を削除して返します

b. clear() は辞書のすべての要素を削除します

c. del dict1 は辞書全体を削除します


>>> l

[1, 2, 3, 4, 5]

>>> l[5 ]=7
トレースバック (最後の呼び出し):

ファイル ""、行 1、

IndexError: リスト割り当てインデックスが範囲外です
>>> dic1

{'gender': 'male' , 'age ': 25, 'name': 'milo'}

>>> dic1['tel']='123454565' ここでは、辞書を使用するときにエラーなしで値を追加できることがわかります
> ;> ;> dic1

{'gender': 'male', 'age': 25, 'tel': '123454565', 'name': 'milo'}



彼がend 、辞書自体が固定されておらず、辞書が乱れており、ハッシュ型の値が辞書キー


>>> dic1['tel']=' 888888888 を介して辞書内の要素を直接操作できるためです。 '
>>> dic1


{'性別': '男性', '年齢': 25, '電話番号': '888888888', '名前': 'マイロ'}



& gt; & gt; & gt; dig1.pop ('age') ポップアップ キー 'ag' に対応する値、AGE のキー値

25 & gt; {'genre': ':' 男性', 'tel': '888888888', 'name': 'milo'}
>>> dic1.clear() 辞書をクリアします
>>>

{}

>>> ; del(dic1) 辞書を直接削除します
>>> dic1

トレースバック (最後の呼び出し):

ファイル ""、行 1、
NameError: name 'dic1 ' は定義されていません



辞書関連の組み込み関数:


- type()、str()、cmp() (cmp は辞書の比較にはほとんど使用されず、比較はサイズ、キーです) 、辞書の値の順)。


ファクトリ関数 dict():


- 例: dict(zip('x','y'),(1,2)) または dict(x=1,y=2)


- - { 'y':2,'x':1}

- 辞書を使用して辞書を生成すると、copy を使用するよりも時間がかかるため、この場合は copy() を使用することをお勧めします。


1) len()、hash() (オブジェクトを辞書キーとして使用できるかどうかを判断するために使用され、非ハッシュ型は TypeError を報告します)。

2) dict.clear(): 辞書内のすべての要素を削除します。

3) dict.fromkeys(seq, val=None): seq 内の要素をキーとして持つ辞書を作成して返します。val は指定されたデフォルト値です。

4) dict.get(key,default=None): キーの値を返します。キーが存在しない場合は、デフォルトで指定された値を返します。

5) dict.has_key(key): キーが辞書に存在するかどうかを判断します。代わりに in ではなく in を使用することをお勧めします。

6) dict .items(): キーと値のペアのタプルのリストを返します。

7) dict.keys(): 辞書内のキーのリストを返します。

8) dict.iter*(): iteritems()、iterkeys()、itervalues() はリストの代わりに反復を返します。

9) dict.pop(key[,default]): get() と同じですが、違いは、キーが存在する場合は削除してその dict[key] を返し、キーが存在しない場合はデフォルト値が指定されていない場合、KeyError 例外がスローされます。

10) dict.setdefault(key,default=None): set() と同じで、key が存在する場合はその値が返され、key が存在しない場合は dict[key]=default となります。

11) dict.update(dict2): dict2 のキーと値のペアを辞書 dict に追加します。上書きが繰り返されると、元の辞書に存在しないエントリが追加されます。

12)辞書。 value(): 辞書内のすべての値のリストを返します。

>>> dic.get(3) 辞書を調べます

>>> 辞書に存在しない場合、定義エラーを返します

'error'


理解できない場合は、ヘルプ機能を使用できます。


>>> dic1={'a':123,'b':456,1:111,4:444}

>>>
['a', 1, 'b', 4]
>>> dic1.values()
[123, 111, 456, 444]

上記は第 2 章の Python データ型の内容です。 、PHP 中国語 Web サイト (www.php.cn) をフォローしてください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。