Pythonふりがなプログラミング
Pythonでできること
最初の読み下し文
- 数値10を変数answerに入れろ
- answer = 10
IDLE(アイドル)
- 標準で付属する開発ツール
- プログラムを実行するシェルとプログラムを書くためのエディタで構成されている
- シェルは人間からの命令を受け付けるための対話型プログラムで、Pythonのプログラムを動かした結果はシェルウィンドウに表示される
- アイドルには、Pythonのプログラムを書くためのエディタウィンドウがある
- シェルウィンドウにはプロンプトが表示されるがエディタウィンドウはカーソルのみ表示。エディタウィンドウは複数開くことができる
読み下し文2
- 文字列「ハロー!」を表示しろ
- print ('ハロー!')
- F5キーを押して実行する
プログラムの実行前に、書いたものをファイルとして保存する必要がある
- Pythonファイルの拡張子は .py
演算子(+, -, *, /, //, %, **)を使って計算する
- プログラムで計算するには、算数の授業で習うものに似た「式」を書く
- 演算子も関数と同様に「命令」
- + は、「足した結果を出せ」と読み下すことができる
読み下し文3
- 数値10に数値5を足した結果を表示しろ
- 数値10から数値5を引いた結果を表示しろ
- print(10+5)
- print(10-5)
- (wgetの方が処理は速い?)
- 数値10に数値5を掛けた結果を表示しろ
- print(10*5)
- 数値10に数値5で割った結果を表示しろ
- print(10/5)
整数同士のほうが処理は高速
- print(10/2.5)
長い数式では計算する順番を意識する
- 演算子は1〜17番まで計算する順番が決まっている
- if〜elseは16番目
同じ順位、優先順位が異なる演算子を組み合わせた式
- 途中で一時的な結果が出ることをイメージするのが重要
- print(2+10*5)
- 10*5=50, 50+2=52
- カッコは内側のカッコほど優先する
- print(5/(4*(1-0.2))
- 1.5625
変数を使って計算する
- 数値や文字列などのデータ類をまとめて「値(あたい)」と呼ぶ
- 事前に繰り返し使うことがわかっている値は「変数」に入れておく
- 変数は何らかの値を記憶できる箱のようなもの
読み下し文4
- 文字列「ハロー!」を変数textに入れろ
- 変数textを表示しろ
- text='ハロー!'
- print(text)
読み下し文5
- 数値100を変数teikaに入れろ
- 変数teikaに数値1.08を掛けた結果を変数urineに入れろ
- 変数urineを表示しろ
- teika=100
- urine=teika*1.08
- print(urine)
- 108.0
繰り返し使える
- 数値150を変数teikaに入れろ
- 162.0
変数の命名ルール
- a-z, A-Z, _,1-9
- 予約語と同じ名前は禁止
- False, class, finally, is, return, None, continue, for, lamba, try, True, def, from, nonlocal, while, and, del, global, not, with, as, elif, if, or, yield, assert, else, import, pass, break, except, in, raise
スペースの入れどころ
- 予約語と変数の間を空けなかったら1つの言葉とみなされてエラーになる
- if answer ◯
- ifanswer X
- 行頭の字下げ幅はてきとーにしない
- 行頭の字下げ幅がプログラムの構造を示す
データの入力を受け付ける--input関数
- print()は、指定したデータを出力
- input()は、ユーザーにデータ入力を受け付ける。()内には、ユーザーに入力をうながすメッセージを書く
読み下し文6
- 「メッセージ文字列」を表示してユーザーに入力せて、結果を変数に入れろ
- 変数= input('メッセージ文字列')
読み下し文7
- 文字列「入力せよ」を表示してユーザーに入力させ、結果を変数textに入れろ
- 変数textを表示しろ
- text=input('入力せよ')
- print(text)
printとinputは人間とプログラムが対話するための基礎となる関数
- 文字列「入力せよ」を表示してユーザーに入力させ、結果を変数textに入れろ
- 文字列「あなたが入力したのは」と変数textを連結した結果を表示しろ
- text=input('入力せよ')
- print('あなたが入力したのは' +text)
数値と文字列を変換する
- データの種類のことを「型(Type)」と呼ぶ
- 文字列はstr型、整数はint型、実数ならfloat型
読み下し文8
- 文字列「定価を入力せよ」を表示してユーザーに入力させ、結果を変数teikaに入れろ
- 変数teikaを整数化して数値1.08を掛けた結果を表示しろ
- teika=input('定価を入力せよ')
- print( int(teika)*1.08 )
- int()関数、float()関数もある
関数とメソッド
- 関数のあとに必ずカッコが続き、その中に文字列や数値、式などを書く
- カッコの中を目的語といってきたが、正確には「引数(ひきすう)」と呼ぶ
- 関数(引数)と書くと、関数は仕事をする
- 関数に仕事をさせることを「呼び出す」という
- input()やint関数のように、文字列や数値などの何らかの値を返してくる関数もある
- 関数が返す値を「戻り値」という
- 要するに、「数値の戻り値」を返す関数は、数値の代わりに使えるということ。これが理解できると応用範囲が広がる
複数の引数を渡す
- 複数の引数を受け取れる関数もある。複数の引数を指定するには、カッコの中に「,」で区切って書く
- 文字列「ハロー!」と数値10と数値3.5を表示しろ
- print('ハロー!',10 , 3.5)
キーワード引数を使う
- ほどんどの引数には名前がついている
- 「引数名=値」で指定する書き方を「キーワード引数」という
- 文字列「ハロー!」と数値10と数値3.5を文字列「:」で区切って表示しろ
- print('ハロー!',10 ,3.5, sep=':')
- print()のsepは、区切り文字(separator)を指定するためのキーワード引数
メソッドとは
- 関数と同様に、コンピューターにさまざまな仕事をさせる命令の一種に「メソッド」がある
- 「値.メソッド名()」というように、目的語.述語(メソッド)という順番で書く
- メソットは特定のデータ型との結びつきが強いイメージ
読み下し文9
- 文字列「Hello」の文字列「H」を文字列「J」に置換したものを変数textに入れろ
- 変数textを表示しろ
- text='Hello'.replace('H','J')
- print(text)
エラーメッセージ
- 代表的なのがNameError(ネームエラー)
- 文法エラーSyntaxError
読み下し文10
- pint('ハロー!')
- トレースバック(直後の呼び出し)
- ファイル名「C:/...../chap1-2-1.py」 の1行目、無名モジュール内
- pint('ハロー!')
- 名前エラー:名前「print」は定義されていない
- Traceback ( most recent call last):
- file "C:/...../chap1-2-1.py", line 1, in <module>
- pint('ハロー!')
- NameError : name 'pint' is not defined
読み下し文11
- print('ハロー!)
- 文法エラー:文字列リテラルの走査中に行末を発見した(文字列だと思っていたら行末に到着してしまったよ!)
- SyntaxError: EOL while scanning string literal
- リテラルとは直定数、変数の対義語。文字列や数値を指す
読み下し文12
- print(ハロー!)
- 文法エラー:識別子の中に不正な文字を発見した
- SyntaxError: invalid character in identifier
- identifierとは、関数や変数などの名前を指す。クォートで囲まれていないので、文字列ではなく、変数か関数の名前だろうと思われた !は名前に使用禁止文字
読み下し文13
- print(10+ '円です')
- 型エラー:+演算子は被演算子の型をサポートしていない:int型とstr型
- TypeError: unsupported operand type(s) for +: 'int' and 'str'
問題
- print( (2+10)*5)を読み下してみよう
- teika=100
- urine=teika*1.08
- print(urine)を読み下してみよう