본문 바로가기
[Python & Ruby]

[Python & Ruby] 함수 (Function)

by Hevton 2020. 12. 16.
반응형

[ 함수 정의 ]

 

Python :

def a3():
    print('aaa')
a3()

 

Ruby :

def a3()
    puts('aaa')
end
a3()

 

 

Output :

aaa

 알게된 점 :

파이썬과 루비는 함수를 정의할 때 def 라는 키워드를 사용한다.

파이썬은 역시나 : 와 함께 탭으로 구분하고, 루비는 역시나 end로 구분한다.

 

 

[ 함수 리턴 ]

 

Python :

def a3():
    return 'aaa'
print(a3())

 

Ruby : 

def a3()
    return 'aaa'
end
puts(a3())

 

 

Output :

aaa

알게된 점 :

파이썬과 루비의 함수는 자바스크립트에서의 함수처럼, 리턴값의 유무에 상관없이 함수의 헤드 정의가 똑같다.

 

 

 

[ 함수 입력 인자 ]

 

Python :

def a(num):
    return 'a'*num
print(a(3))

 

Ruby : 

def a(num)
    return 'a'*num
end
puts(a(3))

 

 

Output :

aaa

 

 

 

[ 함수 입력 인자 여러개 ]

 

Python :

def make_string(str, num):
    return str*num;
print(make_string('a', 10))

 

Ruby :

def make_string(str, num)
    return str*num;
end
puts(make_string('a', 10))

 

 

Output :

aaaaaaaaaa

 

 

[ 로그인 예제 구현 ]

 

Python :

input_id = input("Input ID\n")
# members = ['Hevton', 'Pyro', 'Hammer'] 파이썬은 여기에 넣어도 실행됨.

def login(mId):
    members = ['Hevton', 'Pyro', 'Hammer']
    for member in members:
        if(mId == member):
            return True
    return False

if(login(input_id)):
  print("Hello, "+input_id)
else:
  print("Who Are you?")

 

Ruby :

puts("Input ID")
input_id = gets.chomp()
# members = ['Hevton', 'Pyro', 'Hammer'] 루비는 여기에 넣으면 실행안됨.

def login(mId)
  members = ['Hevton', 'Pyro', 'Hammer']
  for member in members do
      if(mId == member)
          return true
      end
  end
  return false
end


if(login(input_id))
  puts("Hello, "+input_id)
else
  puts("Who Are you?")
end

 

 

알게된 점 :

주석에 나타냈듯이,

파이썬에서는 함수 외부의 변수(members)에 대해 사용이(참조가) 가능한데

루비는 함수 안에 넣어줘야만 가능하더라. (혹은 특정 키워드를 붙여줘야만 가능한가봄. 위 예제대로는 안됨)

 

 

출처 - opentutorials.org/

반응형

'[Python & Ruby]' 카테고리의 다른 글

[Python & Ruby] Block in Ruby  (0) 2020.12.18
[Python & Ruby] 함수에서의 다양한 생략 - Ruby  (0) 2020.12.18
[Python & Ruby] 반복문 2  (0) 2020.12.16
[Python & Ruby] 반복문  (0) 2020.12.12
[Python & Ruby] 사용설명서  (0) 2020.12.12