同じ処理を繰り返す for文
R5.2月からPythonの勉強をしているプログラミング初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
前回はプログラムには「順次」「分岐」「反復」という三つの基本があるという事と、「分岐(if文)」の内容を学んでいきました。今回は同じ処理を繰り返す「反復(for文)」の内容を学んでいきます。
Pythonの「for文」は2種類あります。
回数を指定して繰り返すfor文
1つ目は「回数を指定して繰り返すfor文」です。これは「回数」を決めて「繰り返す処理」を指示します。このとき、回数をカウントするための「カウント変数」も指定します。
書式:for文(回数を指定)
for カウント変数 in range(回数):
繰り返す処理
例として「5x0~5x9の10個の掛け算をするプログラム」を作ってみましょう。
ここで使われているrangeとは、連続する整数のリストを自動で生成する関数です。for文とrange関数を組み合わせることで、任意の回数だけループできます。
今回のプログラムでは0~9までの数を繰り返すという命令になっています。
一言メモ
これ試しにrange(1000)でやったみたら凄い速さで0~999まで計算してくれました。range関数は(5,10)を入力すると5~9までの数字を繰り返し処理するなど任意の範囲を指定することもできるみたいですね。
リストのすべての要素について繰り返すfor文
2つ目は「リストのすべての要素について繰り返すfor文」です。これは「リスト」と「繰り返す処理」を指示します。この時、リストから取り出した要素を一時的に入れて使うための「要素を入れる関数」も指定します。
書式:for文(リストを指定)
for 要素を入れる関数 in リスト:
繰り返す処理
例として「リストの中身を表示させるプログラム」を作ってみましょう。
リストは「変数=[ ]」で作ります。今回はscorelistという変数に「64,100,78,80,72」のリストを代入しました。
リストの中身が表示されました。
リストの中の点数を足すfor文
次は上記のプログラムを少し変えて「リスト(scorelist)の中に入っている点数の合計を求めるプログラム」を作ってみましょう。
リストはそのままで、「total」という変数にまず0を代入、そこから繰り返しのfor文で「total」にリストを足していきます。この時、合計値にまたtotalという変数を使っていますが変数は新たに上書きすることが可能です。
for文の入れ子
for文の「繰り返す処理」のところに更にfor文を入れることができます。「繰り返しの中で繰り返しを行う」という二重の繰り返しです。これを「for文の入れ子」といいます。
書式:for文(入れ子)
for カウント変数1 in range(回数):
for カウント変数2 in range(回数):
繰り返す処理
for文の入れ子では外側のfor文のカウントが1つ進むたびに「内側のfor文がすべて繰り返し終わるまで繰り返す」ということを行います。
カウント変数1が1進むとカウント変数2のカウントをすべてを繰り返して、またカウント変数1が1進むとカウント変数2をすべて繰り返すということですね。
言葉で説明してもわかりづらいので例として「0~9までの整数同士を掛け合わせられるプログラム」を作ってみましょう。
出力結果は途中省略しています。0x0=0~9x9=81までを繰り返す行うプログラムになりました。
まとめ
今回はfor文について学んでいきました。リストの合計を出す関数は自分が作りたいものにも使えそうな感じです。
for文はrangeの他にも便利な関数が使えそうなので活用していきたいですね。
プログラムで考えるときの3つの基本とif文
R5.2月からPythonの勉強をしている初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
プログラムで考えるときの3つの基本
複雑そうに見えるプログラムも基本的には下記の3つの組み合わせで出来ています。
- 順次
- 分岐
- 反復
プログラムを考えるときも、整理して組み合わせることが大事です。
一つずつ見ていきましょう。
1.順次
プログラムは上から順番に実行していきます。これを「順次」と言います。当たり前のことのように思えますが、このルールで考えることで「処理の順番」を意識することができます。
2.分岐
「もしも△△なら○○をする」場合は「分岐」を使います。条件によって「処理をするかしないかの選択」を行ったり「場所分け」を行ったりします。
Pythonでは「if文(後述)」を使います。
3.反復
同じ処理を繰り返す時は「反復」を使います。Pythonでは「for文(詳しくは次回記事で)」を使います。「回数を指定した繰り返し」や「リストの要素をすべて調べる繰り返し」を行うことができます。
一言メモ
複雑なプログラムも大きく分けて3つの組み合わせで構成されているんですね。そう考えるとプログラミングをしていて詰まった時も自分がやりたい事がどれかを考えるのが大事そうな気がします。
もしも~なら実行する if文
「分岐」を行う時は「if文」を使います。条件によって処理を行ったり行わなかったりします。
if文は「もしも△△だったら」の部分と、「○○をする」の部分に分けて書きます。
if 条件式:
条件式が正しい時にする処理
else:
条件式が正しくない時にする処理
試しに「もしもscoreが80点以上だったら”やったね!次もこの調子だ”と表示されるプログラム」を作ってみましょう。
プログラム
結果
1行目は「score」という変数に整数90を代入する。
2行目からif文「もしもscoreが80点以上だったら以下の処理を行う。
というプログラムですね。このプログラムは80点以上の時は「やったね!次もこの調子だ」と表示されますが、80点未満の時は何も表示されません。
そうでない時の処理を書く。
if文ではさらに「そうでなかったら□□をする」という処理の追加もできます。「if else文」を使います。
プログラム
結果
先ほどのプログラムに追加して「80点未満だったら”残念でした”と表示」する処理を追加しています。更にscoreも「60点」に修正しています。
一言メモ
if文はかなり使いそうですね。if文にはさらに条件を追加することができて「条件Aだったら処理1をして、そうでない場合にもしも条件Bだったら処理2をして、そうでない場合は処理3をする」という2つの条件によって3つの処理の分岐を行うこともできるようです。どんどん頭がグチャグチャになってきました…。
まとめ
今回は「プログラムの3つの基本」と「if文」について学んでいきました。まだなんとかついていける内容ですね。
反復の「for文」については次回記事で詳しく学んでいきたいと思います。
自分がやりたいことにも使えそうで楽しくなってきました。
変数
先日からPythonの勉強をしている初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
変数とは
変数とはデータの入れ物のことを言います。変数にデータを一時的に保管しておいたり、計算の結果を入れたりするのです。
Pythonではほかのプログラミング言語と違って、変数をとてもシンプルに作ることができます。「変数=値」と書くだけで、変数を作ることができるのです。例えば、変数aに10を入れるなら「a=10」とだけ書きます。
作った変数の中身にアクセスしたい時は「変数名」を使います。
例えば、変数aの中身を表示するなら「print(a)」と書いて中身にアクセスします。
aに10を代入して、aを表示させる命令を実行したら10と表示されるというプログラムですね。
一言メモ
中学生の頃に数学で変数ありましたね。xやyが変数で=を挟んで右左にいったりするとどうこうなるからみたいな式を解くやつ。あれパズルを解いているみたいで結構面白かったような気がします。(はるか遠い記憶)
まぁ、そんなイメージで変数はすんなり頭に入りました。
データの種類
変数に入れることのできるデータには、「数値」「文字」など色々な種類があります。これを「データ型」と言います。
多くのプログラミング言語では、これらのデータ型に注意しながらプログラムを作る必要があるのですが、Pythonではあまり意識することなく扱うことができるようになっています。
どのデータ型も変数だけで作れるのです。
一言メモ
データの種類をあまり意識せず使うことができるようですが、変数にどんな種類のデータが入っているかの意識は大事なようですね。データ型をあまり意識せずとも使えるということもPythonが初心者向けと言われている理由なんでしょうか。
データ型を変換する
文字列と整数は足すことができません。例えば文字列「こんにちは」と整数「23」は足すことができません。それと同じように人間が文字列として入力した「100」と整数「23」は足すことができません。
しかし、「ユーザーが入力した文字列で計算したい場合」や「ネットからダウンロードした文字列で計算したい場合」など文字列を数値として計算したい時があります。
そんな時は「データ型を変換する命令」を使って同じデータ型へ変換して計算します。
書式:データ型を変換する命令
数値(整数型) 「int」 個数や順番を扱う。
数値(数値浮動小数点数型) 「float」 一般的な計算で扱う。
文字列型 「str」 文字(列)を扱う時に扱う。
試しに文字列「”100”」と整数「23」の足し算をしてみます。
エラーになりました。
そこで「int()」を使って文字列を整数に変換してから計算をします。
計算することができました。
ちなみに数値に変換できない文字列(こんにちは、など)で行うとエラーになります。
上記のようなエラーが起こりそうな時は「あらかじめチェックしておく」ことで防ぐことができます。isdigit()という命令を使えば「その変数は正しく数値に変換できるのか?」とチェックすることができるのです。変換できるときはTrue、できないときはFalseが返ってきます。
これを使って、「”こんにちは”と整数23の足し算をする」というプログラムを実行してみましょう。さらに、数値に変換できないときは「数値じゃないよ!」と表示されます。これを実行すれば「数値じゃないよ!」と表示され、エラーにならなくなります。
このようにプログラムではエラーで終了しないように工夫することが大事なのです。
一言メモ
最後のif文についてはのちのち出てくるので今回で覚えなくてもよいかもですね。文字列か数値かの意識は結構大事な気がします。気付かずにエラーになる事って結構多そうです。
まとめ
今回は変数について学んでいきました。少しプログラムっぽくなって面白いですね。
変数をどうやって覚えやすいものにするかって結構大事な気がします。書籍の中では英単語の頭文字を取っていることが多いです。のちのち出てきますが「i」に代入していることが多くて「なんでだろう?」って思っています。
Pythonを触ってみた
Pythonの勉強をしている初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
Pythonを触ってみた
Pythonを触ってみました。書籍では「IDLE(アイドル)」を使う方法を紹介していたのでIDLEで触ってみました。
画面には色々表示されていますが、左に「>>>」と表示されています。これは「プロンプト」と言います。IDLEが「さぁ、なんでも命令してください!」といっている状況です。
一言メモ
Pythonの勉強を始める前に勉強方法を色々調べている時に「独学だと初心者は開発環境の構築で挫折する可能性がある」と書いてある記事をよく見たのですが今のところ正直「?」です。他の書籍をちらっと読むとIDLE以外にもPythonを動かす方法があるようですね。慣れてきたらIDLE以外も触ってみようと思います。
命令を実行してみる
簡単な命令として「print()」があります。()の中に値を入れると、その値を表示してくれます。
早速入力してみましょう。「print(1+1)」
「2」と答えてくれました。
「+ 足し算」以外にも「- 引き算」「* 掛け算」「/ 割り算」「// 割り算(小数点単位切り捨て)」「% 余りを表示する。」があります。この記号を「演算子」と言います。
文字も表示させてみる
文字列を表示させるには文字の両側を「’(シングルクォーテーション)」か「”(ダブルクォーテーション)」で囲んで記述します。どちらを使っても構いませんが、両側で同じ記号を使います。
「print("Hello,world")」
入力するのはやはり定番のこれ。「Hello,world」。やっぱりこれですよ。
ちなみに、クォーテーションは最初に囲った方で文字列になるのでprint(”私は’おはよう’と言った”)という場合は「私は’おはよう’と言った」と表示されます。
一言メモ
「Hello,world」はプログラミング未経験の自分でも知っているくらい有名な言葉ですよね。自分はBUMP OF CHICKENの曲で知りました。良い曲です。(20年来のBUMPファン。)
調べてみると「Hello World」はブライアン・カーニハンとデニス・リッチーによるC言語解説書「プログラミング言語C」(通称K&R)に由来すると言われているようです。
「こんにちは、世界」とはワクワクするようないい言葉です。何かが生み出されそうな大きな可能性を感じます。
文字列と数値を組み合わせて表示する
print文の()の中を「,(カンマ)」で区切ると、複数の値を並べて表示できます。
「print("答えは",10+20)」と入力してみましょう。
「答えは 30」と表示されました。
一言メモ
コンピュータの世界では「文字」と「文字列」では少し意味が違うようです。
例えば「おはよう」だったら「お」「は」「よ」「う」の一つ一つのことを文字と言って、「おはよう」と繋げた状態のことを文字列と言うようです。データの扱い方が違うので注意。
まとめ
今回は簡単な値・文字列を表示させてみました。これから勉強を重ねていけばどんどん色々なことができるようになるのはワクワクしますね。どんなこともまずは一歩から。どんどん出来ることを増やしていきたいですね。
Pythonの特長3つ
先日からPythonの勉強をしている初心者です。
勉強した内容を備忘メモ程度にアウトプットしていきます。
参考書籍はこちら。
(さすがに全てまるまる写してしまうとまずいので部分的に抽出していきます。)
・Pythonには3つの特長がある
Pythonは他のプログラミング言語と比べて大きく3つの特長があります。
- プログラムがシンプル
- ライブラリが豊富
- 試行錯誤がやりやすい
一つずつ見ていきましょう。
1.プログラムがシンプル
Pythonは処理のまとまりをインデント(字下げ)を使って書くのが特長。この決まりのおかげで誰が見ても読みやすいプログラムになっています。
一言メモ
インデントはWordを触っているとよく出てきますよね。あれ結構便利です。プログラムでも自動で字下げインデントつきますね。まだ勉強始めて数日の自分は「:」つけるの忘れがちですが。「:」つけないと自動で字下げインデントにならず自分でスペースを入力する羽目に…。
Pythonの文法はシンプルということでPythonの文法とJavaの文法の比較をちょっと見てみたのですが、JavaはPythonと比べるとだいぶ複雑そうで頭がクラクラしました。エンジニアってすごい…。
2.ライブラリが豊富
標準ライブラリが充実しています。外部のライブラリも充実しています。
ライブラリを使う時は「import ライブラリ名」で呼び出して使います。
一言メモ
初心者の自分には「ライブラリってなんぞや?」という感じなんですが、ライブラリで調べると「特殊な機能を持った関数やクラスを一つにまとめたもの」だそうです。
これでもまだいまいちピンと来ない…。
おそらくなんですが、一から全て自分でプログラムを組むと大変なので、拡張機能みたいなものを使って誰か頭の良い人が作った便利なプログラムを単語一つで呼び出せちゃう的なものだと思っています。
間違ってたらごめんなさい…。
3.試行錯誤がやりやすい。
Pythonはプログラムを書いたらすぐ実行できる「インタープリタ言語」です。試行錯誤がやりやすい言語なので初心者にも新しいものを生み出す開発者にも向いています。
これに対してJavaやCなどは「コンパイラ言語」と言って、プログラムを実行ファイルに変換する必要があり手間がかかります。その分、実行時の処理が速いという利点があります。
一言メモ
Javaは仮想マシンというのがあるらしく、インタープリタ言語とコンパイラ言語の中間のようなのですがどうなのでしょう。
インタープリタ言語は他にはBASIC、JavaScript、Rubyなどあるようです。
まとめ
Python3つの特長について見ていきました。Pythonは最近人気の高い言語のようでYouTubeやInstagramにも使われているようですね。(インタープリタ言語なのに処理が遅いと感じたことがないよう気が…。)
最近話題になっているAIなんかにもPythonが使われているとか。
自分もPythonを使ってやってみたいことが沢山あるので早くプログラムを組めるように勉強していきたいです。
プログラミング初心者がPythonの勉強を始める
皆さま初めまして。現在、税理士事務所に8年勤めている30代独身男性まるおです。
いきなりですが、今日からPythonの勉強内容をブログに残していきたいと思います。
というのも、最近仕事をしていても何も成長を感じられず閉塞感が強く、税法の勉強も飽きてきてしまい税法の本を読んでももう全く頭に入らず、「これはいかん、何か違うことを勉強して息抜きしたい(あわよくば副業になれば)」と思い、自分が今興味があることはなんだろうと考えました。
(メンタリストDaiGoさんが仕事と全く違う分野の勉強をすると息抜きになると言っていたので。笑)
自分が最近興味があることを考えたところ、プログラミング。
なぜ興味があったかと言うと、YouTubeの動画でホリエモンさん(堀江貴文さん)が「プログラミングは超簡単、誰でもできる、プログラミングは今売り手市場だから誰でも稼げる」みたいなことを言っていました。
プログラミングスクールを経営しているマコなり社長とのコラボ動画だったと思います。
ホリエモンさんは東大に現役合格できるほど頭が良く努力できる方なのでその言葉を鵜呑みにするわけではないのですが、「プログラミングかぁ、そういえば高校の頃にBASICというプログラミング言語ちょっとだけ学んだけど面白かったなぁ、機会があったらまた勉強したいなぁ」という安直な理由でした。
まぁ、この動画を見たのは2年前くらいだったのですが。
動画を見た当時は「自分は今税法の勉強でいっぱいいっぱいだからプログラミングを学ぶ時間はないなぁ」とどこか逃げ腰でした。
しかし、今は税法もとりあえずこれまで積み重ねたものだけでなんとか仕事ができるレベルまでにはきているので、これを機に違う分野の勉強を始めたいと思ったのです。
そんなフワッとした理由ですがプログラミングの勉強を確定申告という一年で一番忙しい時期に始めます。笑
やる言語はPython。
色々調べた結果、Pythonが一番初心者向けという情報が多かったので。
購入した教本はこれ。
森巧尚さんのPython1年生(第2版)。
実はこのブログを開設する前に一度最後まで読んでいます。
コードを真似して書いたりして大体12時間くらいかな?
なんとなーくPythonで出来ることを理解しました。
この本の目的はあくまでPythonで出来ることを紹介して興味を持ってもらうというだけで、これを読んで自分で何か作れるようになる目的の本ではないと思います。
なので次のステップに進むために2~3年生も購入しました。
これはまだこれから読んでいきます。
自分の今の目的はタイピングゲームなどのデスクトップアプリを作ることなので一冊だけでも良かった気がしますが…。
税法も所得税、法人税、消費税しか実務で使わないけど、相続税も勉強しておくと色々便利だったのでそういう感覚で視野を広げるために購入しました。
本当は↑のもあるんだけど近場の本屋には置いてなかった…。
とりあえず、テキストを1周しただけでは到底覚えきれないのでここからあと2周くらい読んでちゃんと知識として蓄えていきたいです。
テキストにアウトプットする場面がないので他の場面でアウトプットしていかなければ。
ということで、これからアウトプットの場としてブログを利用していきたいと思うのでよろしくお願いします。