RubyとPythonの違いをまとめてみた!
今まで、Pythonばかり触っていたけれど、他の言語も触ってみたいなーと思い、Progate(Progate | プログラミングの入門なら基礎から学べるProgate[プロゲート])で一通りRubyを学んでみました。そこで、RubyとPythonの書き方の違うところをまとめてみようと思いました。例文は「Bill Lubanovic著 『入門 Python3』(オライリー・ジャパン発行)」から使わせてもらい、必要に応じてRubyで書き換えてみようかと思います。
まだRubyはProgateで一通り触っただけなので、書籍とかで新たに知識を得たら、追記していこうかと思います。
繰り返し処理
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
これに関しては大きく変わっているという印象はありませんね。
関数
Pythonで作った関数を呼び出すには
def agree(): # 省略 agree() def echo(anything): # 省略 echo('Rumplestiltskin')
Rubyでは
def agree # 省略 end agree def echo(anything) # 省略 end echo('Rumplestiltskin')
クラス
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