rubyとpythonの基本的なやつ対応表メモ


pythonのこれってrubyの何にあたるの?ということをざっくり書いていきます。あくまでメモです。
rubyをちょっと(1ヶ月程度)学んだ人がprogateのpythonをやって学んだことが基本です。

配列、ハッシュ

ruby python
配列 リスト
ハッシュ 辞書

名前が違うだけで、記述方法は一緒。

each文

ruby

オブジェクト.each do |変数|
  実行する処理1
  実行する処理2
end

python


for 変数 in オブジェクト:
    実行する処理1
    実行する処理2

「:」忘れがち
半角4つ分インデントが重要。これがないとfor文の中身だと認識されない。
hamlみたいに、pythonはインデントの有無が意味を持ちます。

if文

ruby


if 条件式1 then
  条件式1が真の時に実行する処理
elsif 条件式2 then
  条件式1が偽で条件式2が真の時に実行する処理
elsif 条件式3 then
  条件式1及び条件式2が偽で条件式3が真の時に実行する処理
else
  全ての条件式が偽の時に実行する処理
end

python


if 条件式1:
    条件式1が真の時に実行する処理
elif 条件式2:
    条件式2が真の時に実行する処理
elif 条件式3:
    条件式3が真の時に実行する処理
else:
    全ての条件式が偽の時に実行する処理

elseifじゃなくてelsifじゃなくてelif
正直覚えにくい

while文

ruby


while 条件式 do
  実行する処理1
  実行する処理2
end

python


while 条件式:
    実行する処理1
    実行する処理2

continuebreakが使える。

関数

ruby

#定義
def 関数名(引数1、引数2、…)
  処理1
  処理2
end

#実行
関数名(引数)

python

#定義
def 関数名(引数1引数2、…):
    処理1
    処理2

#実行
関数名(引数)

モジュールの呼び出し

ruby

#ファイルを読み込む
require 'ファイルのURI' 

python

#sample.pyを読み込む
import sample

#sample.pyのクラスを読み込む
from sample import クラス名

モジュール名.関数()と書くことで、モジュール内の関数を実行可能

クラス

ruby

#クラスの継承
class 子クラス < 親クラス
end

#Sampleというクラスを定義
def クラス名
  def メソッド名
    処理
  end
end

#インスタンスの作成
sample_instance = Sample.new

#初期値の設定
def initialize(引数)
  処理
end

python

#クラスの継承
class 新しいクラス名(元となるクラス名):

#Sampleというクラスを定義
class Sample:
    処理

#インスタンスの作成
sample_instance = Sample()

#初期値の設定
def initialize(self,引数):
    処理

クラス名を大文字から始めるのは変わらない

メソッド

ruby

#定義
def メソッド名
  処理
end

#呼び出し
メソッド名

python

#定義
def メソッド名(self,引数):
    処理

#呼び出し
インスタンス.メソッド名(引数)

第1引数には必ずselfを使用。selfには、インスタンス自身が代入されている。呼び出す際の引数は、selfは記載しない。