本授業で扱う範囲では、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])
|