2009年6月25日木曜日

Python~組み込みデータ型①

Pythonを今までは、かいつまんでしか使っていなかったので、
ここらで、しっかり基本を押さえておこうと考えました。

そこで、「みんなのPython」を使い、学習を開始。

C/C++でのプログラミング経験はありますが、Pythonはド素人。
いやー、おもしろい。あんなにC/C++では苦労していたことが、ササッとできちゃう感じが好きです。

プログラミングをするときに、意識しておかなければいけないのは・・・、そう、『データ型』です。
C/C++の場合、嫌というほど気にしなければいけません。
が、Pythonの組み込みデータ型は、なんと柔軟なことでしょう。
それだけでも、プログラミングが俄然簡単になります。

しかし、きっと多くの人が?と感じるのではと思われる、
”スライス”でやはり、軽ーく足踏み。
使い方は容易に理解でき、とても便利なのですが・・・

  a[○:□] で、○と□の指定の仕方をインデックスに統一しないのか?が疑問・・・です。

以前、誰かが言っていたのですが、本気で学ぶ気持ちが無い時だったので、
すっかり忘れています。

ご存知の方、教えて下さい!

2 件のコメント:

  1. >a[○:□] で、○と□の指定の仕方をインデックスに統一しないのか?

    □が「インデックス+1」としなければいけないということでしょうか?これは、インデックス値○から始めて、n個分スライスしたい場合、a[○:○+n]と書けて分かりやすいからだと思います。また、0個分をスライスしたい場合、□がインデックス値を表してしまうと、不可能になるからだと思います。

    基本的には、C/C++の以下に対応していると考えられます。
    for (int i = 0; i < n; i++) {
      ...
    }
    この場合でも、終端は含まないで書く方が一般的ですよね?

    他の言語では、引数をa.slice(m, n)と指定して、インデックス値mからn個を意味するものもありますね。この場合、0個分取りたいなら、a.slice(m, 0)とすればOKです。

    返信削除
  2. >morchinさん
    なるほど、0個スライスしたい場合を考えると、そうですね、確かに!
    納得しました。ありがとうございました。

    返信削除