【Python3】データ型(数値・文字列・論理)と出力方法

整数(int)

整数は下記の様に記述します。

num = 1234          # 整数

○進数

進数は下記の様に記述します。

num = 0o777        #  8進数 (0oで始まる数値は 8進数とみなされる)
num = 0xffff       # 16進数 (0xで始まる数値は16進数とみなされる)
num = 0b11000100   #  2進数 (0bで始まる数値は 2進数とみなされる)

長整数(long)

Python 3 では、整数(int) と長整数(long)は統合され、
すべて整数(int)として扱われるようになり、L や l も廃止されました。

num = 123L       # Python 3 ではエラー(SyntaxError例外)

余談として、Python 2 までは、長整数(long)を使用できます。
長整数(long)は、整数(int)を超える桁数の整数を扱います。
末尾に l か L をつけます。
整数(int)の最大値(sys.maxint)はシステムにより異なります。

num = 9223372036854775808L

浮動小数点数

浮動少数点数は下記の様に記述します。

num = 1.234     # 浮動小数点数
num = 1.2e3     # 浮動小数点数(指数表記) 1.2 × 103
num = 1.2E-3    # 浮動小数点数(指数表記) 1.2 × 10-3

虚数(complex)

虚数(complex)には j または J をつけます。

num = 3.14j

論理型

論理値(bool)は、True または False で表します。最初の1文字は大文字で記述します。
Python では、False、数値の 0 や 0.0、空文字(“")、空リスト([])、空タプル(())、空辞書({})などを偽とみなし、それ以外を真とみなします。

bool = True
bool = False

文字列

文字列はダブルクォーテーション( " )またはシングルクォーテーション( ' )で囲みます。

str = "Hello world"
str = 'Hello world'

“…" の中では ' を、’…’ の中では " を使うことができます。
“…" の中で " を、’…’ の中で ' を使用するには、
バックスラッシュ(\)を用いて引用符をエスケープ(無効化)します。

str = "We can use \" in the string."
str = 'We can use \' in the string.'

バックスラッシュ(\)を用いることで、複数行に分けることができます。

str = 'Hello \
world!'

“…" や '…’ の前に r または R をつけると、
後述するエスケープシーケンスが無視されます。

str = 'aaa\nbbb'        # \n は改行とみなされる
str = r'aaa\nbbb'       # \n はバックスラッシュ(\)と小文字nとみなされる

三重クォート “""…""" や "’…"’ は、
複数行にまたがった文字列を記述することができます。
三重クォートはしばしば、複数行のコメントとして利用されることがあります。

str = """A simple example module
This module is ...
"""

複数の文字列をスペースで区切ることで、連結することができます。

print 'Hello ' 'world!'

Unicode文字列(unicode)

Unicode文字列は、ASCII 以外の Unicode を含む文字列です。
文字数を数える際など、Unicode が認識されるようになります。

# Python 2
len = len(u'あいうえお')       # 5文字
len = len('あいうえお')        # バイト列として扱われるため、15文字になる

# Python 3
len = len(u'あいうえお')       # 5文字
len = len('あいうえお')        # uをつけなくても5文字として扱われる

エスケープシーケンスを無効化するには、urUR を指定します。

print ur'あああ\n'

Python 3.0 では u が廃止され、"…" や '…’ が Unicode文字列を示すようになりました。Python 3.3 では u"…" が復活しました。

“…"
'…’
u"…"
u’…’
b"…"
b’…’
Python 2.xバイト列Unicode文字列バイト列
Python 3.0-3.2Unicode文字列SyntaxErrorバイト列
Python 3.3-Unicode文字列Unicode文字列バイト列

バイト列(bytes)

Python 3 では、あえてバイト列として扱いたい文字列の “…" や '…’ の前に b または B を記述して、バイト列(bytes)であることを示します。
Python 2 では b や B は無視されます。

bytes = b'0123456789abcdef'

エスケープシーケンス(\)

ダブルクォーテーション(“)で囲んだ文字列中では、
バックスラッシュ(\)を用いて、下記のエスケープシーケンスを使うことができます。

\改行    バックスラッシュと改行が無視される
\\    バックスラッシュ(\)
\'    シングルクォート(')
\"    ダブルクォート(")
\a    ベル(BEL)
\b    バックスペース(BS)
\f    フォームフィード(FF)
\n    改行(LF)
\r    復帰(CR)
\t    タブ(TAB)
\v    垂直タブ(VT)
\nnn    8進表記文字(nは0~7)
\xnn    16進表記文字(nは0~f)
\uxxxx    ユニコード文字xxxx (例: u"\u3042")
\U....xxxx    ユニコード文字xxxxxxxx (例: U"\U00003042")
\N{name}    Unicodeデータベース文字 (例: u"\N{HIRAGANA LETTER A}")

文字列のフォーマット(%)

%s は文字列、%d は整数、%f は浮動小数点数、%x は 16 進数、%o は 8 進数、%% は %自身を示します。

print "%s" % "ABC"          #=> ABC
print "%d" % 123            #=> 123
print "%f" % 1.23           #=> 1.23
print "%x" % 255            #=> ff
print "%o" % 255            #=> 377
print "%%%d" % 80           #=> %80

% に続く数値で文字幅や桁数を指定することができます。

print "|%5s|" % 'ABC'        #=> |  ABC| : 右寄せ5文字分
print "|%-5s|" % 'ABC'       #=> |ABC  | : 左寄せ5文字分
print "|%5d|" % 123          #=> |  123| : 右寄せ5桁
print "|%-5d|" % 123         #=> |123  | : 左寄せ5桁
print "|%+5d|" % 123         #=> | +123| : ±符号付き
print "|%5.2f|" % 1.23       #=> | 1.23| : 全体桁数.少数点以下の桁数
print "|%05d|" % 123         #=> |00123| : 0埋め

ヒアドキュメント

Python では通常、ヒアドキュメントを次のように書きます。

message = """Humpty Dumpty sat on a wall,
Humpty Dumpty had a great fall.
All the king's horses and all the king's men
Couldn't put Humpty together again."""
message = """
Humpty Dumpty sat on a wall,
Humpty Dumpty had a great fall.
All the king's horses and all the king's men
Couldn't put Humpty together again.
"""[1:-1]

・バックスラッシュを挿入

message = """\
Humpty Dumpty sat on a wall,
Humpty Dumpty had a great fall.
All the king's horses and all the king's men
Couldn't put Humpty together again.\
"""

・strip()を使う

message = """
Humpty Dumpty sat on a wall,
Humpty Dumpty had a great fall.
All the king's horses and all the king's men
Couldn't put Humpty together again.
""".strip()

Python3入門

Posted by 管理人