[TIL]Pythonデータ型

3712 ワード

C++で勉強し、pythonに移動すると混同されやすい.
メモリ構造はどのような(データ、スタックなど)、ポインタがなくてどのようにclassを作成しますか?最初はC言語で作成されていたので、C++のiterator(?)形で作ったのですか?動的割り当ての概念?ごみ収集器関数呼び出しはスタック形式ではありませんか?callbyはどのようなものなのか、C++も完璧ではない状況で、Pythonで再学習しようとすると、混乱するところが多いようです.
そのため、最初はデータ型を整理してから、callby、Pythonでオブジェクト概念などをさらに学ぶ必要があります.

PythonはC言語のようにデータ型を指定する必要はありません。

int a = 1;
double b = 1.0;
char c ='a';
# python
a = 1
b = 1.0
c = 'asdf'
pythonはデータ型を指定する必要はありません.Pythonは,Cのように駆動をコンパイルする方式ではなく,1行1行行うインタラクティブ言語であるため,当時に適したデータ変数タイプを探すと考えられる.
気持ち良さそうですが、問題もあり、対応策もあります.
[Cの場合]
int a =3;
int b = 4;
printf("%d", a/b); //  0 
a =3
b = 4
print(a/b) # 0.75 실수형이 출력
print(a//b) # 0이하 부분은 버리고 정수형으로 출력

Pythonデータ構造


C++はSTLを用いてADTを記述し,Python内部で提供する.
  • 文字列
  • リスト(リスト)
  • ディック郡(dict)
  • セット
  • 最初のリスト


    アルゴリズム問題を解くにはlistが多く用いられている.しかしlistを書く際には時間の複雑さを考慮し,C++ではvectorと異なりlistはノードフォーマットであり,ランダムアクセスがなくてもO(n)があると考えられるが,事実はそうではない.
    だからlistの内部構造が知りたくて、グーグルでpython listの内部構造を検索したとき、偶然友達が書いたブログを見つけました.( リンク
    友達の書いた文章を読んで、正式な書類も難しいですが、頑張って読みます.本書ではlistは逆にC++でvectorと似ていますが、ダブルポインタを使用しているのでvectorのようにランダムにアクセスしたり、異なるデータ型を入れたりすることができます.

    Pythonの勉強方法


    どのようにリストを書くか、どのようにディックマニュアルを書くか、どのように集合を書くかなどの簡単な使用と概念の部分は、迅速に学ぶことができる分野です.そんな勉強ばかりしていると、ちょっと深さが足りないかもしれません.友達からアドバイスをもらいましたが、Python公式文書の理解を目指して勉強すればいいとのこと.
    初めて公式文書を見た時は難しいと思いましたが、公式文書を理解するために、いろいろな検索や勉強を通して、自分の実力を感じることができました.今はそれ以外にも勉強すべきことがたくさんあるので、正式な文書を理解するための勉強は無理かもしれませんが、長期的な方向を設定することができます.

    次のキーワード


    mutable vs immutable/iterable vs not iterable