Python基礎学習②

こんばんは。

前回print()関数を使って画面に出力するところまでいきました。

そこからさくさくと本書の学習を進め、データ型の基本、制御構文、関数の作り方まで進みました。

データ型にはC/C++になかったタプル型やら辞書型など見慣れぬ単語がありましたが、全体的にはC/C++の型より圧倒的に少ないなという印象を受けました。

C/C++では数値の型だけでもint ,short int,long int,unsigned int 等々まだまだたくさんありましたが、Pythonではint,float,あと複素数型の3つのみとのこと。(複素数型は紹介だけで、解説はされてなかったです)。

C/C++みたいに各型のバイト数までは載っていなかったので、細かいことは気にするなということでしょうか。
それにしても選択肢が少ないのは初学者にとってはいいことですね!
C/C++の型は何を使うのが最適なのか多すぎて分からないですもの・・・

制御構文についてはif-else文、for文、while文とそこまで変わりはないっぽいですね。あ、elif文という見慣れぬものはありましたね。
ifとelseの条件の中間という立場の文ですのでそこまで変わったものではなかったです。

関数についてはC++のクラスのメンバ関数みたいだなといった印象を受けました。普通の関数にデフォルト引数を設定できるのと、通常の自分で定義した変数で「変数.関数()」の形で使えるのでそう思いました。

Pythonデータ型定義や関数定義はどちらかというとC++のクラスの考え方で作られているのかな?
例でいうとPythonのstr型はC++のstringクラス、Pythonのリスト型はC++のvectorクラスみたいなね。

まぁなんにせよ、C/C++学習のときは関数定義のところで躓いていましたが、Python学習では難なく理解することができました。

この調子で進んでいくぞ~。

 


Python基礎学習①

おはようございます。

初めて朝にブログを書く気がします。
5時起きを目指していつも起きるのですが、大体6時くらいになってしまいます。

今日はなぜか4時に目が覚めたのでそのまま起きて朝から勉強し、ひと段落着いたので、ブログ更新します。

Pythonの基礎的な文法等学ぶ為にはまず環境作りから入らなければなりません。

先日買った参考書でも環境作りについて紹介されていました。

しかし、Webで調べてみるとPythonのIDEで最優良なのは「PyCharm」との情報が多数ありました。

どうせ使うなら最優良のものがいいので、「PyCharm」を使うことにしました。

【Python入門】PyCharmが最強おすすめのIDEだ!

こちらの記事を参考にインストールしました。
この記事通りにすると日本語化にもできたので、おすすめです。

またライブラリパッケージとして「Anaconda」というものもWebでの評価が高かった為、インストールしてみました。

これで環境は整いましたので、早速使用してみました。

VisualStudioと似通った感じですが、VisualStudioとは違ってコンパイル方法も分かりやすく、またコンパイル結果も下部にぱぱっと表示され、今のところは使いやすいなといった印象です。

ひとまず、最初に習う文法としては文字の出力ということで「HelloWorld」を出力してみましたが、すごく簡単ですね。

print()だけでいいんですね。

C/C++は#includeやらmain関数やら書いた後にprint関数で出力でしたので、手間が全然違う。

Pythonはプログラミング入門に最適な言語というのをどこかの記事で見ましたが、こういう文法的なところが簡単ということなんですかね。

結局ある程度のレベルまでいったらプログラムの組み方等に悩むことになるので簡単なのは最初だけでしょうね・・・(笑)

しかし、こんな感じでほかの文法も簡単なコードでいいのであれば、文法間違いに悩まずコーディングに集中できそうですね!

C/C++の文法はある程度理解しているはずなので、これほど簡単な文法ならばさくさく学習が進みそうです。

さくさく進めていきます!


Pythonを始めてみた

こんばんは。

先日、子供と「Scratch」をしたことで、「C/C++」以外の言語に興味がわきました。

そして「C/C++」以外で兼ねてから興味を持っていたプログラミング言語
「Python」を始めてみることにしました。

このブログのテーマでもある人工知能作りですが、今人工知能やAIプログラミングで流行っている言語がこの「Python」
私はその流行りに乗らずに「C/C++」を学習していたのですが、どうも人工知能作りにまで発展しそうにないので、「C/C++」での人工知能作りはいったん諦めます。

その代わり人工知能作りの情報や書籍が豊富にある「Python」で再度チャレンジしていきたいと思っています!

早速入門書を買ってきました。

ひとまずは本書で「Python」の言語の仕様を学ぶとして、そこから先をどのように学習していくかが重要ですね。

「C/C++」を勉強していたときは言語仕様をさらりと学んだあと、人工知能とは関係のないアプリの作成やら、再度言語仕様の学習をしたりと、まぁそれはそれは計画的な学習とはいかなかったので、今回はその反省を生かし、ある程度は計画的に順序立てて学習していきたいと思っています。

そこで情報豊富なことを利用し、いろいろと調べてみたところ、以下のサイトの学習の仕方が理に適っていそうでした。

追記 Pythonや機械学習がオンライン上で学べるAI Academyをnoteでも書きましたが、3/17日からほとんどのコンテンツを永続的に無料で利用できるよう致しましたので、是非この記事と合わせて使って頂けますと幸いです! ...

こちらの記事を書いた方は
「AI Academy」
https://aiacademy.jp/
というAIプログラミングの学習サイトを運営しているとのことで、このサービスも並行して利用しつつ(もちろん無料版でw)学習を進めていきたいと思います。

少しばかり本サイトを利用してみましたが、学習コンテンツがすごく豊富でこの全てを吸収すればこのサイトだけでAIプログラマーになれそうな感じです。

私は覚えが悪いので、書籍とWebのさまざまな情報も利用しつつ学習をしていきます(笑)

「C/C++」の学習も楽しんでいましたが、「C/C++」だけでは人工知能作成という目標があまりにも遠すぎると感じていましたので、これからの「Python」学習で気持ち新たに頑張り、そして楽しんで目標に向かっていきたいと思います!


Scratchを試してみた②

こんばんは。

Scratchを使って子供と簡単なプログラミングをしておりましたが、サンプルプログラムを完成させました。

子供からしたら慣れないマウス操作に苦労していましたが、最後まで諦めずに完成できました。

子供も「次は何作るの!?」と飽きた感じではなさそうでしたので、また別のサンプルプログラムでも一緒に作ってみようと思います。

この調子で子供にプログラミング勉強をさせていけば、将来有望な人材になりそうですなw

私も負けじとがんばらなければ。


Scratchを試してみた

こんばんは。

テレビ番組やネットニュースを見ていると、多々目にする。子供のプログラミング必修化。

私は現在独学でプログラミングを学び中ですが、私の子供(6歳)もいずれ学ばなければならないわけです。

いずれ学ぶのであれば、今から覚えさせておけば役に立つのではないか!?
子供と一緒にプログラミングを勉強することで私の勉強にも役に立つのではないか!?

そんな考えが私の中で芽生えて、嫁さんに相談してみたところ、「やらせてみれば?」とのこと!

そして子供に「やるか!?」と聞いたところ「やってみたい!」と言ったので、子供向けのプログラミング言語「Scratch」を試してみました。この言語の存在は前から知っていて、試してみたいと思っていたのです!

どうすれば「Scratch」が始められるのか調べたところ、Webサイト内で簡単に始められました。

私は「C/C++」から入ったので、プログラミングを始めるまでにすごく準備に時間がかかる印象を持っていましたが、「Scratch」は準備なしで始められるのに驚きました。

そしてとりあえず操作方法を見て、適当に操作してみましたが、ものすごく簡単にプログラムが組める。

あらかじめ用意されているブロックを組むだけで、キャラクターが動かせたり、繰り返し処理をしたり、なんと簡単にできること・・・

「C/C++」ではここまでいくのに何日かかったことやら・・・(笑)
今でもまともにここまでプログラム組む自信はない・・・!!!orz

しかしながら、簡単にプログラムは組めるとはいえ、子供と一緒にやっていくうえで、いきなり子供に「やれ!」って言ってもできないことは明白だし、私もばりばりプログラミングができるわけでもないし、教科書が必要だと感じました。

そこで「親子で学ぶ プログラミング超入門」という本を参考にしてみました。

こちらの参考書はその名の通り、昨今のプログラミング必修化に向けて親子でプログラミングを学ぶことを推奨している本です。

サンプルのゲームプログラムを一緒に作っていく過程で「Scratch」の使い方、プログラミングの考え方を学んでいこうという、子供にとってもやさしい一冊だと感じたので、こちらにしました。

多少「Scratch」の画面構成が変更にはなっていましたが、それほど大きく違いはなく、現状進められております。

しかし、私の理想ではマウスもキーボードも使わず、MyPC「Surface」のタッチパネルだけで「Scratch」をしたかったのですが、どうにもタッチでコード部分のドラッグ&ドロップができないみたいなので、仕方なくマウスを使っております。

私の子供もタッチパネルの操作ならある程度できるのですが、マウスは使ったことがなく、また手も小さいのですごくやり辛そうでした。タッチパネルで出来るようになってくれ~~~~

今回初めて「Scratch」を体験してみて、非常にプログラミングが楽しく感じられました。まぁ私はこれでも一応「C/C++」を1年以上勉強していますのでプログラミングの基本的なことは抑えている(と思っています)のでそう感じたのかもしれませんが、子供も分からないなりにゲームがひとつひとつ完成していく様子が楽しそうでした。

「C/C++」のようにプログラムを組む際のコーディングに時間がかからない分、プログラムの動きや制御のみに注力できるので、これはこれで自分の考えを体現するツールとして、今後も活用できそうです。

今まで「C/C++」しか興味はなかったのですが、「Scratch」に触れてみて、楽しかったこともあり、その他のプログラミング言語にも非常に興味がわきました。

またいつの日か、試してみようと思います。


体重記録プログラム作成③

こんばんは。

体重記録プログラムですが、いろいろと試行錯誤しながらなんとか形になりました。

上記のコードでひとまずは体重記録、履歴表示、履歴消去をすることが出来ました。

ただ前回の記事であったように日付についてはうまくビルドに通らない為、そこは今回は諦めました。

頑張った部分としては体重履歴消去のコーディングですかね!
どうやれば良いのかを考えながら参考書を読んでいた時に<vector>が使えるのではないかと思いつき、ネットで検索してみたところ、ファイルのデータを動的配列に詰め込むコードを発見。

そちらを参考にさせてもらい、<vector>のメンバ関数である、pop_backを使い、末尾のデータを削除し、再度ファイルに書き込む方法を使いました。

他にもやりようはあるのかもしれませんが、この方法しか思いつきませんでした。

あとは入力の際に数値以外が入力された場合などのエラー処理についても実装したかったのですが、そこまでは出来ていません。

ひとまず形にはなったということで、次のプログラム作成に移りたいと思います!

しかしながら、今回のプログラム作成はプライベートでいろいろあり、約1か月くらいしていたわけですが、どこまで作成していたか、どうやって作成しようと思っていたのか、思い出すために無駄な時間を費やしてしまいました。

今後はプログラム作成の前に大まかな設計図でも作ったほうが良いと思いました。

ちなみに今回のプログラムの設計図をフローチャート的にしてみました。

ざっくりこんな感じですかね。こういった図にしてみると頭の中の考えが整理できて、しかも時間がたった後も見直せるのでいいですよね。

今私が行っている仕事でもいきなり作業ではなく、お客さんの要求仕様書に沿って作業の準備し、実作業しますしね。

自分でプログラムを作成するのにまだ参考書は手放せない状態ですが、ひとつひとつ壁を乗り越えていってる感じが楽しいです。

さて、次はどんなプログラムに挑戦してみましょう。


体重記録プログラム作成②

こんばんは。

また少し更新間隔が空いてしまいました。

twitterのほうで少しツイートしたのですが、マイホーム計画がなくなりそうになってしまい、かなり凹んでました。

が、まぁいつまでもうじうじしていても仕方ないので、今は目の前のことだけ見ていこうと思います。

ぼちぼちと体重記録プログラムの作成をしていましたが、なかなかうまくいかないもので。

ファイルに書き込む、読み込む、不必要なデータを削除する、時間を表示する、等簡単にできそうなものだと思いましたが、うまくいかず・・・

ただファイルに関しては先ほどいい案が思い浮かんだので、これからそれを試したいと思います!

問題は時間の表示の方です。

ファイルに書き込む際に日時を合わせて表示したく、調べてみたところcpprefjpにやりたいことのコードがまるまる載っていたので、そのままパクりましたw

が、しかしまるまるパクったにも関わらず、ビルドが通らない・・・

エラー内容的に#include<ctime>がうまくインクルードされていないのではと思うのですが、これを調べても検索結果がいまいちなんですよね。

VC++17の問題?それとも私の環境の問題?

そんな感じで時間についてはひとまず気にせずファイル操作で思いついた方法を実装してみます。


体重記録プログラム作成①

こんばんは。

簡単に作れるプログラムですが、自分の体重を記録してくれるプログラムを作ってみようと思います。これくらいであれば、今持っている知識でも作れるのではないかな!

以下がプログラムの構成です。

~プログラムのあらすじ~

  1. 初期画面表示
  2. 体重記録、体重履歴表示、体重履歴消去を選択させる
  3. 2.で体重記録を選択→現在の時刻を表示し、体重を入力させる
  4. 2.で体重履歴表示を選択→過去に入力した体重を一覧表示させる
  5. 2.で体重履歴消去を選択→直近の体重履歴を消去する

今回はクラスを使ってプログラムを作成してみようと思います。

以前作成していた献立決めるプログラムではクラスを使いませんでしたが、クラスに慣れるために、使ってみることにしました。

今回も「猫でもわかるC++」を参考にここまではコーディングしてみました。
まだまだ作成途中ですが、一応動きますw

ここから以下の部分の修正をしていきたいと思います。

  • 日時を表示させる
  • 体重履歴を表示させる
  • 体重履歴消去部分の作成

細かい部分の作りこみは行いません!
思うような動きをするプログラムが作成できれば良しとします!

それではまた


基本的な知識を脳に定着させよう

こんばんは。

プログラミング学習ですが、基礎的なことをまたまた学び直しております。

というのも、献立決めるプログラムの改善点を改善しようとしたのですが、「あれ・・・どうすればよかったんだっけ?」となってしまい、全然手が進みませんでした。

なんだかんだで1年ほど勉強をしてきたのに、1カ月勉強をさぼっただけで、こんなにも忘れるものなんだなと・・・

これは単純に学んだことが定着していないのだろう・・・

ただ参考書を読み返すと、思い出したり、今まで理解できなかったところが理解出来たりとするので、これはこれで楽しくあります。

最近「アウトプット大全」という自己啓発本を読んでいるのですが、この本はものすごく納得できたり、ためになることが書いてあり、その中でも以下の点は心に刺さりました。

 

  • インプット:アウトプットの比率はインプット3:アウトプット7が脳の定着が良い。
  • インプットとアウトプットをすると疑問が生まれる。なぜを突き詰めると気付きが見える。なぜを解決することが成長
  • 1日をぼーっとしていると無駄に過ごしたように感じるが、これは脳が「これからの自分をより良いものにしていくための準備」をしている。
  • インプットして行動しなければ、それは自己満足
  • チャレンジするのが怖いのは目標や課題の難易度が高すぎる危険領域に突入している。何もチャレンジせず、快適領域にいれば、自己成長はないので、がんばれば達成できる学習領域で自己成長をしていくと良い。
  • 睡眠時間は6時間未満は睡眠不足。7時間以上の睡眠は脳には必須

ざっくりと書き出してみましたが、この中でもぼーっとすることと睡眠時間については私にとって目から鱗の情報でした。

私もよくぼーっとしたり、睡眠時間は7時間半は寝ないと快適に起きれず、「こんなんじゃだめだ」と思っていたので、この文章を見たときはこれは必要なことだったんだと思えてうれしかったです。

ただこの本によるとインプットのみでは自己満足だと言っているので、プログラミング学習においても、参考書を読むだけではだめだということですね。

プログラミングの参考書ではプログラム例が載っていて、それを打ち込んではいますが、たぶんこういったことではないのでしょう。

得た知識を使って実際にプログラムを自分で考えて、作れということでしょう。

先日作っていた献立決めるプログラムのように、プログラムはぐちゃぐちゃでも自分で動くプログラムを組んで、脳に落とし込むことが重要なのですね!

というわけで、基本的な知識を自分に定着させるため、献立決めるプログラムの改善はひとまず置いておいて、簡単に作れるプログラムをとりあえずたくさん作ってみたいと思います。


twitterを始めてみた

こんばんは。

また更新が滞ってしまいました。

献立決めるプログラムの改良をしようとしたところまでは良かったのですが、途中飲み会が続いたり、漫画にはまってしまったり・・・(笑)

「ダイヤのエース」って漫画がたまたま実家にあり、読み始めてしまったが最後、一気に読んでしまいました。

いや~いいですよね~。何かに打ち込めるって。

またこの漫画、すごい練習のシーンがあるんですよね~。でもその努力が試合で発揮できず、また努力するみたいな。
基礎体力や基礎知識を反復練習して身に着け、試合で勝つために戦略戦術を考える。そして試合に臨み、勝負する。試合後は反省点を見つめ直し、改善するようにまた練習。

このマインドは野球などのスポーツに限らず、何においても重要なことだなと漫画を読みながら感じていました。

と、まぁそんなこんなで勉強が疎かになってしまったわけです(笑)

ここからまた心を入れ替えて勉強していく次第であります!

心を入れ替えるついでに環境も多少変えようと思い立ち、twitterも始めてみました。
twitterではブログに書くことでもないふとしたことをつぶやいていこうと思います。

私も一歩一歩と歩幅は小さくとも、目標に向かって努力して行き続けたいと思います。


スポンサーリンク
広告1
広告1