変数と組み込み型」のサンプルコードを写経する。毎日考えながら考えられる時間だけやっていく。変数を使う変数を作る変数には名前を付ける。品物を分類するために、入れ物に名前を書き込んだタグをつけるようなもの。まつもとゆきひろ氏が好きな言葉に「名前重要」を挙げていた。変数に数値を入れるイコールを使って変数に数値などのオブジェクトを入れることを代入と呼ぶ。Pythonは、代入を行うことで新しい変数を作る。変数を「宣言」する必要がある言語が存在することを。Pythonの方がややこしくなくてよい。変数名を入力するだけでその変数に入っているオブジェクトの内容が表示されるのは、インタラクティブシェルを使っている時だけ。数値などのデータそのものの表記をリテラルと呼ぶ。変数などと特に区別する目的で使われる。a1>>>変数を使って計算をする変数による計算1右辺は変数でもよい。a4>>>変数による計算2アポロ計画で使われたサターンロケットの最高速度を音速に変換してみる。ピカソの本名といいこれといい、まさか著者は暗記しているのだろうか。音速に換算32.6530612244898>>>変数を計算などに使う時は、使う前に変数を定義(オブジェクトを代入)しておく必要がある。先程まで、変数aには1が入っていた。Pyhtonでは、変数に入れるオブジェクトの種類を自由に変えることができる。型JavaやC++では、変数を利用するために予め型の情報を宣言する必要があるが、Pythonは必要ない。変数名を決めていきなり代入を行うだけで、必要な入れ物が用意されて、変数を利用できる。Typing)言語」。PerlやRubyも同様。日本語の変数名を使うPython2まではアルファベットと数字のみだったが、Python3から日本語を含む色々な文字が使えるようになった。特別な理由がない限り、変数名は英字と数字だけで作るのが吉。Pythonでは、変数名として利用すべき文字に簡単な決まりがある。アルファベット、数字、アンダースコアを組み合わせて変数名を作るはじめの1文字はアルファベットまたはアンダースコア数字で始めると、数字そのものとの区別がつきにくいため。アルファベットの大文字と小文字を区別する「python」と「Python」は区別されて、別の名前とみなされる。約30個ほど、利用できない名前がある予約語というやつ。組み込みのデータ型データ型データを種類や性質によって分類したもの。Pythonでは、プログラムでよく利用するデータ型を組み込み型として用意している。組み込みBuiltinを日本語に翻訳したもの。「特別な宣言や命令なしに利用できる」みたいな意味。リスト複数の要素を順番に並べて利用するためのデータ型。タプル要素の追加や変更ができないリスト。ディクショナリキーで要素を管理するリスト。複素数型というのもあるらしいが割愛とのこと。引き算の例1867年は大政奉還、1603は徳川家康が征夷大将軍になった年とのことで、江戸時代が264年続いたということを計算。中学生の頃模試で社会の偏差値37をマークした時のことを思い出した。計算の優先順位1乗算、除算が優先。517>>>計算の優先順位2丸括弧がついているところが優先。変数を計算に使う変数の中に入っている数値を使って計算できる。メートルに変換100.584>>>変数の数値を増やす変数を元にした計算結果を同じ変数に代入することで、変数に数値を足すことができる。いうの、Excelなんかだと再帰的参照でエラーになるんじゃなかっただろうか?セルが持っている値と変数とではまた性質が異なるのだろうと思っておく。上の例は「+=」を使ったほうが手早く書ける。「*=」「/=」も利用できる。「++」(インクリメント)「--」(デクリメント)は利用できない。a2>>>複合演算子を試してみる。「/=」で小数点第一位が出てくるのはなんでだったろうか?ドットインストールで習った気がする。a1.0>>>(20160826)数値演算を使ったプログラムMacのACアダプターが復活したので、turtleを試せるようになった。文字列を使うPythonでは、文字を順番に並べて文字列として扱う。文字列内の文字にはインデックスと呼ばれる0から始まる番号が振られる。インデックスを指定することで、文字列の中の特定の文字を取り出すことができる。文字列はシーケンス型。リストも同様?文字列を定義する変数に文字列を代入するダブルクオーテーションで囲まれた部分が文字列データを定義している部分(リテラル)。spam!'>>>文字列リテラルの定義方法ダブルクオーテーションを内包する文字列リテラルエラーになる。"Urgghh"?'>>>「"""」による文字列リテラルの定義3重クオーテーションに囲まれた部分の改行はそのまま変数に格納される。シングルクオーテーションが2重になったものがダブルクオーテーションなのに、「"""」が3重クオーテーションなのはおかしい。3重ダブルクオーテーションではないのか。body.</p></body>>>>インタラクティブシェルだったら変数名だけで表示されるんじゃなかったっけ?試してみたら改行コードで表示された。文字列どうしで足し算すると文字列を連結できる。中身が数字であっても文字列として処理する。Pythonの「+」記号は単なる加算だけでなく「オブジェクト同士を繋げる」という意味を持つ。文字列に数字を掛けると文字列の繰り返しになる。Pythonの「*」記号は単なる乗算だけでなく「オブジェクト同士を繰り返す」という意味を持つ。型が違うのでエラーになる。文字列を数値に変換する。int()は小数点のついた文字列を変換できない。float()を使う。数値を文字列に変換したので、文字列の連結になる。int()やfloat()、str()は厳密には関数ではないらしい。先のページがサジェストされていて、クラス(クラスコンストラクタ)とされていた。静かに元のページに戻った。文字列の長さを調べる。リストやタプルなどのオブジェクトの要素数を調べることもできる。len("オガサワラチビヒョウタンヒゲナガゾウムシ")20>>>文字列の置換や検索を行う演算子を使った処理in演算子を使った検索TrueかFalseが返ってくる(bool値)。検索文字列と置換文字列の2つの引数が必要。'>>>数(変数の誤記?)の中身を確認するreplace()しても元の変数の中身は変わらない。'>>>replace()メソッドの戻り値を変数に代入するreplace()した後の値をそのまま使いたい場合は、変数に代入すればよい。'>>>インデックスを使って要素を取り出す文字列のインデックスを使うインデックスは0始まり。返ってくるのは1文字の文字列。digits[2]'3'>>>ord()関数とchr()関数ord()は1文字の文字列を文字コード相当の数値に変換する。