Python & Ruby

함수 (function)

함수란 무엇인가?

함수 만들기

Python

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

Ruby

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

실행결과

aaa

Python | Ruby 

리턴값

Python

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

Ruby

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

실행결과

aaa

Python | Ruby 

입력값

 Python

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

Ruby

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

실행결과

aaa

Python | Ruby

여러개의 입력값

 Python

def make_string(str, num):
    return str*num
print(make_string('b', 3))

Ruby

def make_string(str, num)
    return str*num
end
puts(make_string('b', 3))

실행결과

aaa

Python | Ruby

로그인 애플리케이션 (루비)

puts("아이디를 입력해주세요")
input_id = gets.chomp()

def login(_id)
  members = ['egoing', 'k8805', 'leezche']
  for member in members do
      if member == _id
          return true
      end
  end
  return false
end

if login(input_id)
  puts('Hello, '+input_id)
else
  puts('Who are you?')
end

 ideone.com

로그인 애플리케이션 (파이썬)

input_id = input("아이디를 입력해주세요.\n")
def login(_id):
    members = ['egoing', 'k8805', 'leezche']
    for member in members:
        if member == _id:
            return True
    return False
if login(input_id):
    print('Hello, '+input_id)
else:
    print('Who are you?')

ideone.com

참고

github.com

댓글

댓글 본문
작성자
비밀번호
  1. 박상준
    저도 처음에 똑같은 생각을 했었는데
    파이썬을 기준으로 입력값 강의를 다시 생각해보다가 알게되었습니다.

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

    이 강의에서 우리는 a라는 함수에 변수를 num으로 정의하여 a(100)을 프린트했을때 a*100이 되는 것을 알 수있습니다. 이처럼 로그인에서도 def login(_id)는 login이라는 함수에 변수를 _id로 지정한것이고
    if login(input_id)는 _id라는 변수에 input_id를 적용한 것이므로 결과값이 잘나오게됩니다.(a(100)을 적용한 것과 같음) 따라서 login(_id) 에 _id는 그저 변수를 지칭하기때문에 login(a)로 정의하고 if member == a:라고 함수를 바꿔도 결과값은 동일합니다. 답변이 길어졌는데 도움이 되셨으면 좋겠습니다.
    대화보기
    • 이정일
      질문이 있는데요~ def login(_id)에 사용한 _id변수명과 입력받은 input_id 는 변수 명이 다른데 def login(_id)가 어떻게 작동되는지 이해가 안되네요..

      입력값을 받아서 작동되게 되니 같은 변수명을 사용해야 하지 않나요?
    • techlistwoo
      「여러개의 입력값」의 「실행결과」는...
      bbb 가 되겠군요 ^^
      좋은 강좌 잘 보고 있습니다 ^^
    • JustStudy
      고맙습니다
    • user0123
      PHP 언어를 1년동안 배우다 와서 그런지
      for in 문이 새롭네요.
      쉽게 이해 되었습니다 ㅎㅎ
    • 냐옹이
      아주 설명을 잘하시네요. 쉽게 이해가 됩니다.
      보통은 좀 더 어렵게 설명하더라구요..
      고맙습니다.
    • 검사무운
      잘 봤습니다. 감사합니다.
      아무리도 몇번은 돌려봐야겠네요.
    • 개인적인 생각입니다만 if문에서 함수 호출을 하여 그 값을 리턴 받아서 다시 처리 하는 것보다는
      로그인 함수에서 member와 id값을 대조하여 프린트 함수를 내부에서 호출해주는게 좀 더 이해하기 쉽고 용이하지 않을까 생각이 듭니다. 아래와 같이 파이썬 코드를 작성해보았습니다.

      input_id = input("아이디를 입력해주세요.\n")
      def login(_id):
      members = ['egoing', 'k8805', 'leezche']
      for member in members:
      if member == _id:
      print('hello, '+input_id)
      import sys
      sys.exit()
      print('who are you?')
      login(input_id)


      들여쓰기가 안되네요 print('who are you') 문은 for 루프 문과 같은 선상의 들여쓰기 입니다.
    • 흠흠
      이부분을 이해하는데 3일이 걸렸습니다 ㅠ..(마지막코드) 대충보고 넘어가려했지만 코드를 외우고 왜 그렇게 동작하는지 이해하는데 3일이 걸렸네요. 저처럼 독학으로 혼자 처음으로 프로그래밍언어를 배우는사람은 여기서 막히는분들이 꽤 계실것같네요. 포기하지마세요!
    • 예. 들여쓰기를 해야 합니다. 파이썬에서는 다른 프로그래밍 언어처럼 int main(void){int var = 824; return 0;} 처럼 들여쓰기를 하지 않아 읽기 힘들어지는것을 방지하기 위해서 들여쓰기를 해야합니다. : 표기 아래서부터요.
      p.s 저랑 닉네임이 같으시네요 ㅎㅎ
      대화보기
      • 안녕하세요 파이썬의 함수가 들여쓰기 를 인식한다고 했는데 파이썬의 모든 구문은 들여쓰기을 통하여 정의가 되는건가요?
      • sigakorea
        이고잉님, "여러개의 입력값"의 실행결과는 bbb 입니다. ^^
        항상 수고해 주셔서 감사합니다.
      • Frank
        고맙습니다. ^^
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기