本授業で扱う範囲では、Ruby と Python はほとんど同じだが、 微妙な構文上の違いがある。
Ruby | Python | |
---|---|---|
実行方法 |
普通にターミナルから実行する。
$ ruby sample.rb |
普通にターミナルから実行する。
$ python sample.py |
構文 |
Rubyでは、
関数定義 / if / while / for で
コロン : が必要ない。
各文の終わりにはend が必要。
関数呼び出しにはカッコ () をつける必要はない。
プログラム中のコメントは # で始める。
# 0からn-1までの数を表示する。 def f(n) for i in 0..(n-1) puts i if i % 2 == 0 puts "even" # 偶数 else puts "odd" # 奇数 end end end |
Pythonでは、
関数定義 / if / while / for で
コロン : が必要。
文の終わりはインデントにより表現される。
関数呼び出しにはカッコ () が必要。
プログラム中のコメントは # で始める。
# 0からn-1までの数を表示する。 def f(n): for i in range(n): print(i) if i % 2 == 0: print("even") # 偶数 else: print("odd") # 奇数 |
字下げ |
Rubyでは、字下げ(インデント) は必要ない。
たとえば、以下のプログラムは正しく動く。
def f(n) for i in 0..n puts i if i % 2 == 0 puts "even" else puts "odd" end end end |
Pythonでは、字下げ(インデント) が必要。
以下のプログラムは動かない。
インデントは、普通スペース 4個分ずつおこなう。
def f(n): for i in range(n): print(i) if i % 2 == 0: print("even") else: print("odd") |
基本的な計算 |
a = 2 b = a + 3 c = (a * b) % 5割り算は、対象が整数の場合は整数となり (商)、 対象が実数の場合は実数となる。 14 / 5 # 2 14.0 / 5.0 # 2.8 |
a = 2 b = a + 3 c = (a * b) % 5割り算は、 // 演算子を使った場合は整数となり (商)、
/ 演算子を使った場合は実数となる。
14 // 5 # 2 14 / 5 # 2.8 |
配列 |
a = [5,9,4,0] a[3] = 7 x = a[0] n = a.length |
a = [5,9,4,0] a[3] = 7 x = a[0] n = len(a) |
文字列の表示 |
w = "donkey ears" puts "King Midas has "+w+" !" |
w = "donkey ears" print("King Midas has "+w+" !") または print("King Midas has", w, "!")Pythonでは、カンマで文字列の間にスペースが入る。 |
文字列の入力 |
puts "name?" name = gets() |
name = input("name?") |
文字列←→整数 |
"123".to_i 456.to_s |
int("123") str(456) |
文字←→文字コード |
"A".ord 65.chr |
ord("A") chr(65) |
if文 |
if n < 0 puts "negative" elsif 0 < n puts "positive" else puts "zero" end |
if n < 0: print("negative") elif 0 < n: print("positive") else: print("zero") |
while文 |
n = 0 x = 16 while 0 < x n = n + 1 x = x / 2 end |
n = 0 x = 16 while 0 < x: n = n + 1 x = x // 2 |
for文 |
a = [5,9,4,0] for i in 0..3 puts a[i] end |
a = [5,9,4,0] for i in range(4): print(a[i]) |