(✿✪‿✪。)ノコンチャ♡
Pythonプログラミングも5日目になりました。
今回で、初級編最終日となります。
演算子の優先順位、変数を学び、関数を学んでいきましょう。
『関数』の中でも、
対話型プログラムによく使われるプログラミングについて、
今回触れていこうと思います。
input 関数
2日目に学んだ『print()』は、
指定したデータを「出力(表示)」する関数でした。
それに対して、
『input()』関数はユーザーにデータの「入力」を求めます。
この input 関数は、
ユーザーがキーボードから何かを入力したら、
その結果の文字列を返してきます。
この関数が返してくる値を『戻り値(もどりち)』と言います。
input 関数の戻り値は、後で使えるように変数に入れておきます。
つまり、
変数=input('メッセージ文字列')
という記述になります。
「メッセージ文字列」が表示され、入力待機状態になります。
ここでユーザーが入力すると、それが「変数」に代入されます。
加工して出力
「+」演算子は、
左辺と右辺が数値ならばそれを足せという命令ですが、
それらが文字列の場合は、
「連結せよ」という命令になる。
text=input('入力せよ')
print('あなたが入力したのは:'+text)
プログラミングして実行してみましょう。
【Run】➡【Run Module】をクリックし実行します。
「入力せよ」というメッセージが表示され、
入力待機状態になります。
「おめでとう」とキーボードで入力し、Enterキーを押します。
結果が表示されました。
データの「型」
これまで「数値」や「文字列」などのデータを扱ってきましたが、
これらのデータの種類を『型(Type)』といいます。
文 字 列 :str(string)型
数値/整数:int(integer)型
数値/実数:float(floating point number)型
input 関数の戻り値は、常に str 型 です。
従って、先日学んだことを組み合わせてみると、
teika=input('定価は?')
suuryou=input('数量は?')
azukari=input('預かり金は?')
urine=teika*suuryou*1.1
amari=azukari-urine
print('おつりは'+amari+'円です')
と、記述できます。
しかし、残念ながらこのプログラムはエラーとなり、
上記プログラム4行目でプログラムが停止してしまいます。
(※エラーについては本記事の最後に解説します)
つまり、
input関数の戻り値は str型(文字列)であり、
文字列に1.1(数値)を掛けても答えは出ません。
文字列のデータ型を数値のデータ型に変換する
文字列として代入されたデータを数値に変換するには、
int 関数
を使います。
int 関数 : 文字列を整数に変換して返す
float 関数 : 実数に変換して返す
str 関数 : 文字列に変換して返す
数値に変換してプログラムを記述してみると、
urine=int(teika)*int(suuryou)*1.1
amari=int(azukari)-int(urine)
print('おつりは'+str(amari)+'円です')
では、実際にプログラムを記述して実行してみましょう。
【Run】➡【Run Module】をクリックします。
まず、「定価は?」と表示され、入力待機状態になります。
「100」と入力すると、
次に、「数量は?」と表示され、入力待機状態になります。
「4」と入力すると、
続いて、「預り金は?」と表示され、入力待機状態になります。
「1000」と入力すると、
「おつりは560円です」と表示されました。
引数と戻り値
これまで、『print関数』や『input関数』を使ってきましたが、
その他にもたくさんの関数があります。
それらの関数を覚えることで、
幅広いプログラムが作れるようになります。
ここで、
改めて関数の使い方をおさらいしておきましょう。
関数の後には必ずカッコが付き、
カッコ内には「文字列」「数値」「式」などを記述してきました。
これを『引数(ひきすう)』と呼びます。
print(表示したいもの)
この「表示したいもの」を引数といいます。
また、
「input関数」や「int関数」のように、
文字列や数値などの何らかの値を返してくる関数もあります。
それらの関数が返す値を『戻り値(もどりち)』と呼びます。
変数=int(文字列)*3
「文字列」を引数にして、int関数が返す値が戻り値です。
複数の引数
これまでは、1つの引数を指定してきましたが、
複数の引数を受け取れる関数もあります。
記述の仕方は、
カッコ内で「,(カンマ)」で区切ります。
print('整数と実数',100,2.5)
実行すると、
このように表示されます。
ここでは、print関数についてお話しましたが、
他の関数でもそうだとは限りません。
受け取れる引数の数とか、受け取った引数をどう使用するかは、
関数によって異なってきます。
キーワード引数
ほとんどの引数にはそれぞれ名前が付いています。
引数名=値
で指定する記述では『キーワード引数』と言います。
引数sep
print関数の 『sep』は、
区切り文字(separator)を指定するキーワード引数です。
sep=':'
引数を表示する際に、『:』で区切って表示させる命令です。
先程のprint関数に追加してみます。
print('整数と実数',100,2.5,sep=':')
【Run】➡【Run Module】をクリックします。
このように表示されました。
print関数などの組み込み関数については、公式サイトを参考にしてください。
メソッドとは
関数と同様に、
コンピューターに仕事をさせる命令の一種に『メソッド』があります。
値.メソッド名()
このように、
目的語(値)+.(ピリオド)+述語(メソッド)
という順に記述します。
replaceメソッド
replaceメソッドは、文字列の一部を置換するものです。
つまり、
対象の文字列の中から1つ目の引数の文字列を探して、
2つ目の引数に置換して返します。
text='こんにちは!'.replace('にち','ばん')
print(text)
【Run】➡【Run Module】をクリックします。
「こんにちは!」という文字列の中から、
「にち」という文字列を「ばん」に置換して、
「こんばんは!」と表示されています。
さいごに
今回で【初級編】が最終回になります。
少しはプログラミングの楽しみ方が理解できましたでしょうか。
実際に記述して、
思った通りの結果が得られることが、
達成感に繋がります。
チャレンジ精神を忘れず継続して学んでいきましょう。
実際にプログラムを動かしていくと、
『エラー』が発生して、
プログラムの実行が停止することがあります。
これが『チャンス』だ!
ということを最後にお伝えします。
つまり、
この「エラー」こそが、
次のステップアップへの『カギ』なのです。
ネームエラー
熟練者でもよく目にするのが『ネームエラー(NameError)』です。
これは、関数名などのタイプミスによって引き起こされます。
pint('こんにちは!')
実行すると、
エラーメッセージが表示されます。
簡単に説明すると、
トレースバック(直近で最後の呼び出し)
ファイル名「C:¥Users… .py」の1行目の無名モジュール内
pint('こんにちは!')
名前エラー:名前「pint」は定義されていない
つまり、
「pint」という名前は、
Pythonインタープリタが理解できません
という意味です。
殆どの場合は、スペルミスです。
大文字・小文字の間違いもこのエラーメッセージが表示されます。
シンタックスエラー
記述の仕方を間違えると『文法エラー(SintaxError)』が出ます。
このエラーは、ダイアログボックスで表示されます。
print('こんにちは!)
実行すると、
簡単に説明すると、
文法エラー:文字列リテラルの走査中に行末を発見した
つまり、
文字列の閉じ「’」が抜けているため、
Pythonインタープリタが文字列だと思って辿っていたら、
行末まで行ってしまった
という意味です。
ここで「リテラル(literal)」は『直定数』といい、
プログラムに記述されている文字列や数値を指します。
では、文字列の開き「’」も抜けてしまっていたら、
どうなるでしょう。
print(こんにちは!)
実行すると、
同じシンタックスエラーが出ますが、メッセージが違います。
簡単に説明すると、
文法エラー:識別子の中に不正な文字を発見した
つまり、
文字列と認識する「’」が抜けているため、
Pythonインタープリタが文字列ではなく、
変数もしくは関数の名前だと思ってしまったところ、
不正な文字を発見した
という意味です。
ここで「識別子(identifier)」は『他から識別可能な何か』という意味です。
また、
Pythonでは日本語の変数名もプログラムに記述できますが、
「!」は名前に使用することができない記号です。
そのため「不正な文字」と指摘されているのでしょう。
タイプエラー
『タイプエラー(TypeError)』は、
データの型に問題があるときに表示されます。
print(560+'円です')
実行すると、
簡単に説明すると、
型エラー:+演算子は被演算子の型をサポートしていません。
int型とstr型
つまり、
print関数のカッコ内で、
Pythonインタープリタが、
数値と文字列を+演算子で連結しようとしたが、
int型とstr型は連結できません
という意味です。
従って、
『str関数』を使って数値を文字列に変換しましょう。
print(str(560)+'円です')
このように記述しなおすと大丈夫です。
これで、
Pythonプログラミング【初級編】を終了します。
最後までお読みいただきありがとうございました。
次回から、
Pythonプログラミング【中級編】をスタートさせますので、
引き続きお読みいただけたら嬉しいです。
人気ブログランキングにも参加していますので、
ポチっと応援して下さると喜びます!
それではまた、お会いしましょう!
☆ ☆ ☆ 初級編スケジュール ☆ ☆ ☆