Python の基本的なデータ型
1. 整數(shù)
Python は、負の整數(shù)を含むあらゆるサイズの整數(shù)を処理できます。Python プログラムでは、整數(shù)の表現(xiàn)はその記述方法とまったく同じです。數(shù)學(xué)では、例: 1、100、-8080、0 など。
コンピュータは 2 進數(shù)を使用するため、整數(shù)を表すには 16 進數(shù)を使用する方が便利な場合があります。16 進數(shù)は、0x プレフィックスと 0 ~ 9、a ~ f で表されます (例: 0xff00、0xa5b4c3d2 など)。
2. 浮動小數(shù)點數(shù)
浮動小數(shù)點數(shù)も 10 進數(shù)であり、科學(xué)的表記法で表現(xiàn)すると浮動小數(shù)點の小數(shù)點に相當(dāng)するため、浮動小數(shù)點數(shù)と呼ばれます。數(shù)値 位置は可変です。整數(shù)と浮動小數(shù)點數(shù)のコンピュータ內(nèi)部での保存方法は異なります。整數(shù)演算は常に正確です (除算も正確です)が、浮動小數(shù)點演算には丸め誤差が生じる可能性があります。
3. 文字列
文字列は、「abc」、「123」など、'' または "" で囲まれた任意のテキストです。 '' または "" 自體は単なる表現(xiàn)であり、文字列の一部ではないことに注意してください。したがって、文字列 'abc' には a、b、c の 3 文字しかありません。これは他のプログラミング言語でも同様です。
(1) Python における文字列と文字列のエスケープ
前述したように、文字列は '' または "" で表すことができます。しかし、文字列自體に '' または "" が含まれる場合があります。どうすればよいでしょうか?
現(xiàn)時點では、文字列の一部の特殊文字を「エスケープ」する必要があります。Python 文字列は \ でエスケープされます。 JAVAも同様です。
一般的に使用されるエスケープ文字は次のとおりです:
\n 表示換行 \t 表示一個制表符 \ 表示 \ 字符本身
具體的な例:
次に、上記の問題があります。文字列にエスケープ文字が必要な文字が多數(shù)含まれている場合、各文字をエスケープするのは面倒です。この狀況に対処するには、文字列の前にプレフィックス r を追加して、これが生の文字列であり、內(nèi)部の文字をエスケープする必要がないことを示します。
ただし、注意すべき點が 1 つあります。r'...' 表記は複數(shù)行の文字列を表すことはできず、' と " を含む文字列も表すことはできません。複數(shù)行の文字列を表したい場合は、「...」を使用できます。もちろん、複數(shù)行の文字列の前に r を追加して、この複數(shù)行の文字列を生の文字列に変換することもできます。
コンピューターが數(shù)値のみを処理できることは誰もが知っていますが、テキストを処理したい場合は、処理する前にまずテキストを數(shù)値に変換する必要があります。初期のコンピューターは 8 ビットを 1 バイトとして設(shè)計されていたため、1 バイトで表現(xiàn)できる最大の整數(shù)は 255 (2 進數(shù)の 11111111 = 10 進數(shù)の 255) であり、サイズを表すために 0 ~ 255 が使用されます。數(shù)字や一部の記號を含むこのエンコード テーブルは ASCII エンコードと呼ばれます。たとえば、大文字 A のエンコードは 65、小文字 z のエンコードは 122 です。
中國語を表現(xiàn)したい場合、明らかに 1 バイトでは不十分です。少なくとも 2 バイトが必要であり、ASCII エンコードと競合することはできません。そのため、中國は中國語をエンコードする GB2312 エンコードを策定しました。
同様に、日本語や韓國語などの他の言語にもこの問題があります。すべてのテキストのエンコーディングを統(tǒng)一するために、Unicode が登場しました。 Unicode はすべての言語を一連のエンコードに統(tǒng)一するため、文字化けはなくなります。
Unicode は通常、文字を表すのに 2 バイトを使用します。元の英語のエンコードは 1 バイトから 2 バイトに変更されました。上位バイトをすべて 0 で埋めるだけで済みます。
Python は Unicode 標準のリリースより前に誕生したため、最も初期の Python は ASCII エンコードのみをサポートしています。通常の文字列「ABC」は、Python の內(nèi)部で ASCII エンコードされます。
Python は後に Unicode のサポートを追加し、Unicode で表される文字列は u'...' で表されます。
ただし、最新の Python 3 バージョンでは、文字列は Unicode でエンコードされます。つまり、Python 文字列は複數(shù)の言語をサポートします。上記の例と同様に、コードに u'...' を追加しないと正常に表示されます。
ただし、Python のソース コードもテキスト ファイルであるため、ソース コードに中國語が含まれる場合は、ソース コードを保存するときに UTF-8 エンコードを指定する必要があります。 Python インタープリターがソース コードを読み取るとき、UTF-8 エンコーディングで読み取れるようにするために、通常、ファイルの先頭に次の 2 行を書き込みます。
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
コメントの最初の行は、次のことを示します。 Linux/OS X システム、これは Python 実行可能プログラムです、Windows システムはこのコメントを無視します;
コメントの 2 行目は、Python インタプリタに UTF-8 エンコーディングに従ってソース コードを読み取るように指示し、それ以外の場合は、で書かれた中國語の出力が文字化けする可能性があります。
UTF-8 エンコードを宣言しても、.py ファイルが UTF-8 エンコードされることを意味するわけではありません。テキスト エディターが BOM エンコードなしで UTF-8 を使用していることを確認する必要があります。
#4. ブール値
ブール値とブール代數(shù)の表現(xiàn)はまったく同じです。ブール値には、True と False (True または False) の 2 つの値しかありません。Python では、直接次のことができます。 True と False を使用してブール値を表します (大文字と小文字の區(qū)別に注意してください)。ブール演算によっても計算できます。 ブール値は、and、または、not を使用して操作できます。and この演算は AND 演算です。すべてが True の場合のみ、AND 演算の結(jié)果は True になります。
or 演算は OR 演算です。いずれか 1 つが True である限り、OR 演算の結(jié)果は True になります。
not この操作は非操作です。これは、True を False に、False を True に変える?yún)g項演算子です。
5. Null 値
基本的に、すべてのプログラミング言語には獨自の特別な値、つまり null 値があります。Python では、None
で表されます。