ゆーじぇいブログ

ゆーじぇいブログ

プログラミングとか色々

RubyとPythonの違いをまとめてみた!

f:id:jyouj:20181124165234j:plain

 今まで、Pythonばかり触っていたけれど、他の言語も触ってみたいなーと思い、Progate(Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート])で一通りRubyを学んでみました。そこで、RubyPythonの書き方の違うところをまとめてみようと思いました。例文は「Bill Lubanovic著 『入門 Python3』(オライリー・ジャパン発行)」から使わせてもらい、必要に応じてRubyで書き換えてみようかと思います。

 まだRubyはProgateで一通り触っただけなので、書籍とかで新たに知識を得たら、追記していこうかと思います。

 環境:Python 3.6.3
    Ruby 2.5.1

繰り返し処理

 Pythonでは

rabbits = ["Flopsy", "Mopsy", "Cottontail", "Peter"]

for rabbit in rabbits:
      print(rabbit)

 となりますが、一方Rubyでは、

rabbits = ["Flopsy", "Mopsy", "Cottontail", "Peter"]

rabbits.each do |rabbit|
       puts rabbit
end

 Pythonをしていると、Rubyで最後にendをつけるのになかなか慣れません。あと、「:」をつけないというのも違和感がありますが、勉強していったら慣れてくるかな。

条件処理

 Pythonでは

color = "puce"
if color == "red":
       print("It's a tomato")
elif color == "green":
       print("It's a green pepper")
else:
       print("I've never heard of the color")        

 一方、Rubyでは

color = "puce"
if color == "red"
       puts "It's a tomato"
elsif color == "green"
       puts "It's a green pepper"
else
       puts "I've never heard of the color"  
end

 これに関しては大きく変わっているという印象はありませんね。

importの仕方

 Pythonでは

import a

 Rubyでは

require "a"

関数

 Pythonで作った関数を呼び出すには

def agree():
      # 省略
agree()

def echo(anything):
      # 省略
echo('Rumplestiltskin')

 Rubyでは

def agree
     # 省略
end
agree

def echo(anything)
     # 省略
end
echo('Rumplestiltskin')

 RubyPythonもそんなに変わりませんね。

クラス

 Pythonでは

class Person():
      def __init__(self, name):
             self.name = name

hunter = Person('Elmer Fudd')

 Rubyでは

class Person
     attr_accessor :name
     def initialize(name)
            self.name = name
     end
end

hunter = Person.new('Elmer Fudd')

まとめ

 考え方自体は変わっていないので、書き方を覚えたら、Rubyできそうかなーと思います。次はDjangoと比べながら、Railsを触っていこうかなと思います。

 新たに知識が加わったら、追記します。
 
 Twitterアカウント:じぇい👨‍💻 (@jyouj__) | Twitter