味の宝石箱や~ じゃなくてなんでもOKな雰囲気のデータ型
とりあえず[ ]に要素を書くのですが
my_list = [1, 2, 3]
とか
my_list = ['a','b', 'c']
だけじゃなくて
my_list = ['a', 1, 1.23, 99, 'z', …]
どんな型が混ざってもいい。 しかも
my_list[0] で要素 'a' my_list[1] で 要素1 と取り出せる
Pytonには配列型のデータはないけれどリスト型で目的は果たせる
こりゃいい!
味の宝石箱や~ じゃなくてなんでもOKな雰囲気のデータ型
とりあえず[ ]に要素を書くのですが
my_list = [1, 2, 3]
とか
my_list = ['a','b', 'c']
だけじゃなくて
my_list = ['a', 1, 1.23, 99, 'z', …]
どんな型が混ざってもいい。 しかも
my_list[0] で要素 'a' my_list[1] で 要素1 と取り出せる
Pytonには配列型のデータはないけれどリスト型で目的は果たせる
こりゃいい!
文字型についてはまだまだありますがあんまりこだわるとちっとも先に進まないのと大本命であるリスト型や辞書型などにたどり着く前にへたばりそうなので一旦方向を変えます。
真偽型 ブール値を表す型 で True(整数値、浮動小数点数では0や0.0以外)False(0や0.0)
大小比較、データ長やリスト型などの要素数など あるか、ないか などを表している
None型 何もないを意味する型 整数値の0や0.0 ""空文字列 あるいは空のリスト型などは真偽値はFalseだけどNoneではないという私には哲学的な話に聞こえてしまう。 a = None と記述されていたらaはNone なのです。
range型 ざっくり言えば BASICを引き合いに出すことになるけれど FOR I = 1 TO 10 STEP 2のように どの値からはじめて、どの値まで、そのステップの幅はどれくらいを意味するデータ型 range(start, stop, step) ストップは必須でスタートは省略すると0、ステップは省略すると1 になること stopの1つ手前まで だから1から始まって100回ループしたいならrange(1, 101)と書く必要があるということ
PythonでのforループはBASICみたいな言語しか知らないとちょっと驚きの仕掛け?があってなかなか面白いです。
さて、次はリスト型とよく似ているタプル型、集合型(set)に取り組んでみたいと思います。
複数行に渡る文字列は'''または””” クォーテーションマーク3つで始まり '''または"""で終わると前回に書きました。
では”~” とか ’~’ のように本来は一行で納めなければならないところを途中で改行して複数行にしたらどうなるか?
colabのコードセルに入力中にすでにエラーの警告(波型の下線)がでてます。
▶を押して評価すると期待に違わず6行目の文字列が「"」で終わっていないエラーになりました。
colabを使っているので評価実行をしない限りエラーにならないですが参考までにPythonのインタラクティブシェルにて同じことを実験してみます。(ブログ始める前にcolabでは面倒くさくなってきてPythonをインストールしてました テヘッ)
改行しようと「Enter」キーを押したらすぐに終端されていない文字列だとPythonに怒られました。
Pythonの内部では複数行の文字列はどうやってるのかを見てます。
(先ほどのインタラクティブシェルの画面の白い文字にも表現されていますが)
Windows11のEdgeにてColabを使っているとバックスラッシュの代わりに¥マークになります。
¥マーク、ここではブログでの見え方を気にして全角文字にしていますが実際には半角文字です。
環境の違いからこのブログで自分がバックスラッシュ\で書いているものが¥マーク(¥は半角文字で)になって表示されてるかもしれませんが同じです。
\は制御文字であることを意味します。
\n は改行を意味し、\tは一定間隔の空白を表すタブ、そして\\は\を文字として表します。
上のコードセルには複数行の文字列を入れて評価、下のコードセルは制御文字を入れた一行の文字列です。
評価しただけではどちらも一行の文字列でしかないのですが、これに変数名を付けてprint()関数で出力したら
一行の文字列test_text2も複数行表示されてます。
ということで制御文字というのがあってprint()関数を使って表示すると制御文字は表示されないけど改行やタブなどは実行されますよ というだけの話でした