読者です 読者をやめる 読者になる 読者になる

ぷろぐらみんぐ!

プログラマーを目指して勉強する大学生のブログ

Ubuntu 16.04 LTSでPython3の開発環境を構築する

こんにちは!

 

今回はUbuntu 16.04 LTSPython3の開発環境を構築していきます!

 

f:id:fujigg7:20170427212640p:plain 

 

Pythonという言語は、最近話題のAIと関係が深いらしいです。

私は将来人工知能に関連する仕事に就きたいと考えているので、気合を入れて頑張っていこうと思います。

 

では早速始めていきましょう!

 

LinuxにはもともとPythonが入っているのですが、Python2.xがデフォルトになっていると思います。

 

Python2は数年後にサポートが切れるらしく、これからはPython3がメインとなるらしいです。

さらに、バージョン2で書かれたプログラムは、バージョン3では動かないこともあるそうです。

簡単に言うと、バージョン2と3は別の言語みたいなものという感じですかね。

ですので今からPythonを勉強される方は、特別な事情がない限りPython3を勉強したほうがいいと思います。

 

もうすでにPython3をインストール済みの方は、端末を開いて、「Python3」と打ち込むことでPython3を起動させることが出来ます!

 

私のPCにもPython3は入っているのですが、デフォルトをPython3にすることが出来ませんでした。

なので今回はAnacondaをインストールします。

AnacondaはPythonの機能拡張版みたいなものらしいです。

  

f:id:fujigg7:20170427212501p:plain

 

それでは早速インストールしていきます。

 

Download Anaconda Now! | Continuum

 

上のリンクをクリックして、公式サイトに飛びます。

 

 

f:id:fujigg7:20170426232615p:plain

 

自分のPC環境にあったほうをクリックして、インストーラーをダウンロード。

 

ダウンロードが完了したら、次に端末を開きます。

 

f:id:fujigg7:20170426232924p:plain

 

Anacondaが保存されてあるフォルダに移動します。

移動の方法は、「cd フォルダ名」と入力して、エンターを押せば移動できます。

移動ができたら、「bash ダウンロードしたファイル名」を入力してエンター

すると、ライセンスを読んで同意してね!と言われるので、エンターを押して読んでいきます。

 

f:id:fujigg7:20170426233445p:plain

 

エンターを長押しし続けるとこんなことになります。(笑)

ライセンスに同意するなら「yes」、同意しないなら「no」を入力して、エンター。

 

 

以上でインストール完了です!

ちゃんと出来ているか確認してみましょう!

 

端末を開いて、「python -V」と入力します。

 

f:id:fujigg7:20170426233826p:plain

 

しっかりAnacondaがインストールされてますね!

 

Python3を起動するときは、端末に「python」と入力します。

 

f:id:fujigg7:20170427211526p:plain

 

以上で開発環境の構築は終了です。

お疲れさまでした。

 

文字変数?文字列配列? C#10

こんにちは!

 

前回からかなり間が空いてしまいました。

あんまり時間が経つと勉強したことを忘れてしまうので、できるだけ短期間で終わらせたいと思います。

 

 

さて、今回は文字の扱い方からやっていきます!

 

文字変数と文字列配列

  • C言語には文字列変数は無いが、文字変数(1文字だけ)ならある。
  • 文字変数は下のようにして宣言する。

f:id:fujigg7:20170312043135p:plain

  • 文字変数の出力変換指定子は%c。
  • char型では文字を数字に置き換えて記憶している。
  • なので、文字や数字を数値に置き換えて計算することもできる。
  • 文字や数字を数値として知りたい場合は、文字や数字から '0' を引く。
  • C言語で文字列を扱いたい場合は文字変数の配列を作る。
  • 文字列の文字数を数えるために、文字列の最後にEOSと呼ばれる文字を付ける。
  • C言語でのEOSは\0で、\0は数値としては0。
  • " " で囲まれた文字列を文字列リテラルという。
  • printf関数で文字列を表示させるには%s指定子を使う。
  • 数字を数値に変換したい場合はatoi関数を使う。
  • atoi関数を使うにはstdlib.hを#includeしなければならない。
  • atoi関数は下のようにして使う。

f:id:fujigg7:20170318062943p:plain

  • 数字ではない文字列をatoi関数で変換した場合は0に変換される。
  • 文字列をコピーしたい場合はstrcpy関数を使う。
  • strcpy関数を使うにはstring.hを#includeしなければならない。
  • strcpy関数は下のようにして使う。

 f:id:fujigg7:20170318063252p:plain

  • 配列に格納されている文字列を結合するにはstrcat関数を使う。
  • strcat関数を使うにはstring.hを#includeしなければならない。
  • strcat関数は下のようにして使う。

f:id:fujigg7:20170318064550p:plain

  • あらゆる種類の文字列を合成できるsprintf関数を覚えておくと便利。
  • sprintf関数を使う時はstdio.hを#includeしなければならない。
  • sprintf関数は下のようにして使う。

f:id:fujigg7:20170318065429p:plain

  • scanf関数で文字列を入力するプログラムを書く時、配列名の前に&は付けない。

f:id:fujigg7:20170318065906p:plain

  • 文字列の数を数える場合はstrlen関数を使う。
  • strlen関数を使う時はstring.hを#includeしなければならない。
  • strlen関数は下のようにして使う。

f:id:fujigg7:20170318070338p:plain

  • 文字配列同士を比較する場合は、 == 演算子は使うことが出来ない。
  • 2つの文字配列が同じかどうか比較する時にはstrcmp関数を使う。
  • strcmp関数は2つの文字列が同じだった場合は0を返す。
  • strcmp関数を使うにはstring.hを#includeしなければならない。
  • strcmp関数端のようにして使う。

f:id:fujigg7:20170318071156p:plain

 

長文になってしまいました。

これでも少し飛ばしてるんですけどね笑

 

最後のstrcmp関数のところで、比較した文字列が違っていた場合は何を返すのかな?と思ったので、プログラムを書いてみました。

 

f:id:fujigg7:20170318072713p:plain

 

文字は適当です。

違う文字を比較した結果、何故か7が返ってきました。

文字を変えても7だったので決まっているのかな?

 

ここまで来たら練習問題です。

 

f:id:fujigg7:20170318074006p:plain

 

解答例ではstrcat関数を使っていました。

でもまぁsprintf関数の方が楽でいいですね。

stdio.hで使えるのも便利です。

 

それにしても、「stdio.hを#includeする」というところ、なんかかっこいいですね笑

いまいち日本語でなんと言えばいいのかわからなかったので、今回はそのまま書きました。

 

苦Cもそろそろ終わりが見えてきました。

これが終わったら、次はどうしようかな。

 

それでは。