Pythonでデータ型を確認したい。 typeとpprintの違いは?

投稿者: Anonymous

Pythonの基本的なデータ型を確認したいのですが、


Q1.どうやって確認するのでしょうか?
・type()?
・pprint()?
・両者の違いは?


Q2.下記コードで結果に何も表示されないのは何故ですか?
・type()はオブジェクト型のみが対象?

from fractions import Fraction
f = Fraction(5, 7)
type(f)

Q3.Pythonでプリミティブデータ型という言い方をしますか?


Q4.分数について
・「Fraction」で一つのデータ型ですか?
・意味合いで言えば、「int」や「float」と同等ですか?

解決

Q1.どうやって確認するのでしょうか?
・type()?
・pprint()?
・両者の違いは?
type()を使います。
pprint()は、複雑なデータを整えて表示する機能を持ちます。

import pprint

print([[i for i in range(10)]]*2)
pprint.pprint([[i for i in range(11)]]*3)
#print
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
#pprint
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]

Q2.下記コードで結果に何も表示されないのは何故ですか?
・type()はオブジェクト型のみが対象?

from fractions import Fraction
f = Fraction(5, 7)
type(f)

別の回答者様が書かれていますが、

print(type(f))

として初めて表示されます。
type()だけだと、fの型を取得はできても、出力表示するという
命令までは持っていないからです。
type()は、オブジェクト型のみが対象です。
オブジェクト型というのは、名前を付けることのできるものです。

b = "オブジェクト"
  print(type(b))
<class 'str'>
def sai():
    return 1

print(type(sai()))
<class 'int'>
print(type(sai))
<class 'function'>
import re
print(type(re))
<class 'module'>
#cという名前のついたreモジュール
c = re 
print(type(c))
<class 'module'>

Pythonでは、変数名をつけられるものはすべてオブジェクトと
言っていいと思います。

Q3.Pythonでプリミティブデータ型という言い方をしますか?

「Pythonの基本的なデータ型を確認したいのですが」
という質問なので、Pythonの基本的なデータ型を、
プリミティブデータ型という言い方をしますか?という
質問だと判断します。
 Pythonの基本的なデータ型は、ビルトインタイプ、
ビルトイン型、組み込み型と呼ばれ、そのようには
呼ばれないです。

Q4.分数について
・「Fraction」で一つのデータ型ですか?
 そうです。
・意味合いで言えば、「int」や「float」と同等ですか?
 そうです。
 ただ、intは、組み込み型なので、importしなくても、
 即座に使えます。
 Fractionは、
 

from fractions import Fraction

とあるように、フラクションモジュールの中にある
 Fraction型です。モジュールの中に入っているか
 どうかの違いだけです。こういう、Pythonに最初から
 あるという点では組み込み型だけど、インポートが
 別に必要な場合を、標準ライブラリと言います。
これに、pygameや、PyQt5など、外部から別に持ってきた
 モジュールで、インストール後にインポートできるような
 ものを、サードパーティーモジュールと言います。
 ゆえに、組み込み型は、「特別な宣言や命令なしに
 利用できる型」と言えます。
 導入にちょっと段階がいるだけで、データ型であることは
 変わりません。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *