Pythonのmac(Mojave 10.14.5)へのインストール
私はmacを使っているので、こちらを参考にHomebrew + pyenvでv3系で最新の3.7.3をインストールしてみました。 ちなみに途中、うまくインストールが進行しなかったので、ここ を参考に解決しました。
前提
環境:macOS Mojave バージョン 10.14.5
Homebrewは最新版。
pyenvのインストール
$ brew pyenv install
~/.bash_profile に以下を追記
export PYENV_ROOT=${HOME}/.pyenv if [ -d "${PYENV_ROOT}" ]; then export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" fi
pyenvでインストール可能な一覧を確認
$ pyenv install -l Available versions: 2.1.3 2.2.3 2.3.7 (中略) 3.7.0 3.7-dev 3.7.1 3.7.2 3.7.3 3.8-dev (中略) stackless-3.4.2 stackless-3.4.7 stackless-3.5.4
pyenvで使用するバージョンのインストール
$ pyenv install 3.7.3
pyenvでインストールされたバージョンの確認
pyenvでインストールされたPythonは、~/.pyenv以下にインストールされる。 インストールされているバージョンを確認。
$ pyenv versions * system 3.7.3 (set by /Users/(ユーザ名)/.pyenv/version)
使用するバージョンを確定
$ pyenv global 3.7.3 $ pyenv versions system * 3.7.3 (set by /Users/(ユーザ名)/.pyenv/version) $ python --version Python 3.7.3
これでOK。
参考
Ruby3 - Rubyの基礎文法 - 条件分岐
概要
ここでは、Rubyの条件分岐の文法について見ていきます。
Rubyでの条件分岐には if
else
elsif
や unless
使います。case
も使えます。少し変わりどころだと、後置if
, 後置unless
もあります。
if文
まずは if
ですが、以下のように記述し、条件
が 真
の場合に 処理
が実行されます。
条件
が 真
でない場合は処理は実行されません。
if 条件 then 処理 end
ちなみに、then
は省略可能で、以下のようにも書けます。
if 条件 処理 end
こちらの方がスッキリしていますね。
実行例)
ifels1.rb
a = 10 if a > 5 then puts 'aは5より大きい' end
$ ruby ifels1.rb aは5より大きい
else文
if
は条件
に合致する場合でしたが、else
は条件
に合致しなかった場合に処理をさせたい場合に使います。
if 条件 then 処理1 else 処理2 end
この場合だと、 条件
に合致しなければ、処理2
の部分が実行されます。
実行例)
ifels2.rb
a = 3 if a > 5 then puts 'aは5より大きい' else puts 'aは5より大きくない' end
$ ruby ifels2.rb aは5より大きくない
elsif文
if
の条件は満たさなかった時に、その次に判定する条件を書きたい場合にはelsif
を使います。
ifels3.rb
a = 40 if a > 50 then puts 'aは50より大きい' elsif a > 20 then puts 'aは50より大きくはないが、20よりは大きい' else puts 'aは20以下' end
$ ruby ifels3.rb aは50より大きくはないが、20よりは大きい
unless文
if
の逆の構文になります。〜じゃなかったら処理を実行するといった感じです。
unless1.rb
a = 10 unless a > 10 then puts 'aは10より大きくない' end
$ ruby unless1.rb aは10より大きくない
ちなみにunless
にはelse
は付けられますが、elsif
は付けられません。
後置if, 後置unless
式の末尾にif 条件
や unless 条件
を置いて、条件
が真、または偽なら前部分の式を実行するというクールなやつです。利用はお好みで。
if_unless_modifier1.rb
a = 10 puts 'aは10以上です' if a >= 10
この場合だと puts 〜
の部分が実行されるかどうかは aの値による感じです。
$ ruby if_unless_modifier1.rb aは10以上です
if_unless_modifier2.rb
a = 10 puts 'aは10より大きくない' unless a > 10
$ ruby if_unless_modifier2.rb aは10より大きくない
case文
case
は複数の条件分岐を一気にこなしたい場合に利用します。case
の後に比較したい 値
を置いて、when
の後に置いた値
とマッチする場合、その処理
が実行されます。when
は複数配置でき、すべてのwhen
にマッチしなかった場合はelse
に書いた処理が実行されます。
case 値 when 値1 then 処理1 when 値2 then 処理2 else 処理その他 end
ちなみに、お察しの通りthen
は省略できます。
また、when
の後の値はカンマで区切ると複数指定できます。
case 値 when 値1, 値2 then 処理1 when 値3, 値4 then 処理2 else 処理その他 end
使用例)
case1.rb
age = 14 case age when 0, 1, 2 puts "赤ちゃん" when 3 .. 6 puts "幼児" when 7 .. 12 puts "小学生" when 13 .. 18 puts "中高生" else puts "大人!" end
$ ruby case1.rb 中高生
参考
ruby unless文にelsifはないよ。。。 - Qiita
関連記事
Ruby2 - Rubyの基礎文法
概要
ここではRubyの基礎文法についてまとめていきたいと思います。
文字列
文字列はシングルクォーテーション '
もしくはダブルクォーテーション "
で囲む。
puts 'Hello!' puts "Hello!"
文字列の連結
文字列を連結するには +
を使う。
puts 'あいう' + 'えお' # => あいうえお
コメント
コメントにはシャープ #
を使う。その行#の後ろ部分がコメントになる。
行の先頭に #
を置けば、まるまるコメント行になる。
# ここはコメント puts 'Hello!' # これもコメント
数値と様々な計算
Rubyで数値を扱うには、単に数値を書くだけ。
足し算は +
、引き算は -
、掛け算は *
、割り算は /
、余りは %
が使える。
puts 2 + 3 # => 5 puts 7 - 4 # => 3 puts 13 * 9 # => 117 puts 32 / 8 # => 4 puts 18 % 5 # => 3
条件分岐
条件分岐は別記事にしました。
Ruby3 - Rubyの基礎文法 - 条件分岐 - No Programming, No Life
関連記事
Ruby1 - プログラミング言語Rubyの概要
概要
- Rubyはオブジェクト指向のスクリプト言語
- 開発者は日本人の「まつもとゆきひろ」さん
- 有名なWebアプリケーションフレームワークとして、Ruby on Railsがある
- プログラマが楽しくプログラミングをできるようにという設計思想で作られている言語である
REPL
irb
コマンドにて。
実行例
$ irb irb(main):001:0> a = 10 => 10 irb(main):002:0> b = 20 => 20 irb(main):003:0> c = a + b => 30 irb(main):004:0> p c 30 => 30 irb(main):005:0>
ドキュメント
ri
コマンドにて。
例)
ri Array
参考サイト
https://dotinstall.com/lessons/basic_ruby_v3/37101
関連記事
アプリケーションの寿命について
当記事は こちら に転載しました。
コードを自動生成するか否か
メッセージIDのenumなどを作る際に、定義書から自動生成する場合がある。
こういったボイラープレートは自動生成で逃げるのが良いかもしれないのだが、その自動生成ツールなり、スクリプトなりが後からきちんと運用されなくなったりする場合を考えると、なかなか難しいところである。
また、例えば、定義一覧のような設計書から定義内容を自動生成するような場合、たとえば区分が一つ増えたときに、どういったプログラムコードに変換するのかといったようは、単純に設計書の修正だけでなく、最終的に生成されるプログラムコードのことも考えて、拡張してゆかなければならなくなる。
こういったことが、前述のように、運用されなくなる要因の一つでもあるように思う。
やはり、プログラムコードというのは職人の仕上げる飴細工のように繊細なものなのだと思う。
引き継ぎ者不在のシステム
私が前に携わっていたシステムで、専任して保守してい方が、会社を退職されるらしい。
体力のある会社であれが後任をすぐに立てられるんだろうけど、そこそこの規模の会社さんだとそうも行かないらしい。
私にも、元開発者だったということで、またお仕事の話がくるかも知れない。
偏りはあるかもしれないが、システム開発会社のような会社の週報が、紙ベースであったりと、色々と世の中まだまだだなぁと思うところはありますが、この引き継ぎ者不在のシステムの未来はどうなるんだろうか。