Rubyの学習中ですが、ProgateもCODEPREPも終えてしまいました。
そうすると、何か作成したいプログラムない限りコードを書かなくなってしまいます。
そこで、CODEPREPのPython演習問題をRubyで記述してみることにしました。
Pythonについても一緒に学習できるので個人的には一石二鳥な感じです。
PythonもRubyも両方扱えて悪い事はありません。
Ruby用の問題集がなくても他の課題で代替すれば勉強が可能なので、ほぼ無限に学習が出来ることに気づきました。
もちろん、回答などはありませんが処理した結果を確認すればいいだけです。
今度はPythonの学習についても紹介していきたいですね。
特に私のようにインフラエンジニア寄りのSEは尚更たくさんコードを書かないと覚えられません。
シェルスクリプトやバッチよりも少し難易度が上がるため、慣れるまでに時間がかかるかもしれません。
また、シェルスクリプトやバッチはOS上で扱えるコマンドを前提とした処理なので、その点はスクリプト言語やプログラミング言語とは大きく知識が異なります。
前置きが長くなりましたが、実際に紹介していきたいと思います。
Pythonの走行距離問題
冒頭で記載した通り、CODEPREPのPython演習問題を使ってコードを書いていきます。
Pythonの基礎学習も終わっていて、両方でコードを書きながら進めていきます。
たまに知識が絡まりますが、違いを抑えていくのも悪くないところです。
この演習では、クラスCarを定義して、Initializeメソッドを利用して生成するインスタンスに初期値に燃料と燃焼効率を引き渡します。
その後、reachableメソッドを呼び出すときに距離を指定することで、現在の燃料と燃料効率でその距離を走行しきれるかを判別する問題です。
以下、回答事例ですがほぼ解答と一緒かもしれません。
Python解答例
class Car:
def __init__(self, fuel, fuel_consumption):
self.fuel = fuel
self.fuel_consumption = fuel_consumption
def reachable(self, distance):
return distance <= self.fuel * self.fuel_consumption
car = Car(100, 10)
print(car.reachable(100))
Ruby解答例
class Car
attr_accessor :fuel
attr_accessor :fuel_consumption
def initialize(fuel, fuel_consumption)
@fuel = fuel
@fuel_consumption = fuel_consumption
end
def reachable(distance)
limit_distance = fuel_consumption * fuel
return distance > limit_distance
end
end
car = Car.new(100, 10)
puts car.reachable(100)
Atomなどを使って実際に実行してみると、解答通りの挙動か正確に確認できますね。
比較的、簡単な問題ですが2~3日に一回はコードを書かないと忘れそうなので他の言語の演習を使ってRubyの学習を継続したいと思います。