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. 악어
    2020.2.23 완료
  2. riversik
    2020.02.14
    완료
  3. 칩과데일
    함수에서 점점어려워지는군요... ㅠㅠ
  4. 컴린이24세
    01.31 완료
  5. 내일은 코딩왕
    완료 감사합니다
  6. 셜리
    완료
  7. 도전차차차
    20191025 완료
  8. 정 준상
    2019/10/12 완료
  9. 가재준
    20190926 완료
  10. 20190818 완료
  11. 허니비
    190807
  12. 미스터안영미
    19.08.06
  13. Perpect
    함수정의{def login(id)}가 되면 그부분을 메모리에 저장해뒀다가
    함수호출{login(input_id)}이 될때, 참조한다고 알고있어요.

    예를들어 영어사전을 읽고 영어공부를 한다고 치면,
    사전을 읽고 영어공부를 하는 상황에서 단어의 뜻을 찾고 싶을 때 다시 사전을 찾는게 아니라
    (언급하신 처음->끝->중간->끝)
    사전을 읽고 영어공부를 하는 상황에서 단어의 뜻을 찾고 싶을 때 자기 뇌(메모리)속에서 찾는거죠
    (처음->끝->메모리(중간아님)->끝)
    대화보기
    • Ray Kim
      잘 듣고 있었다고 생각했는 데 막상 혼자 코드를 작성 해 보려니 조금 문제가 있네요! 이고잉님 말씀대로 천천히 반복해서 한번더 함수파트를 보는게 좋을 것 같아요!
    • Yongsung Kwon
      감사합니다!!
    • 얼그레이
      190602 감사합니다! 여기까지 오니 슬슬 for in문과 def 등 많은 개념이 나와서 헷갈리네요
      그치만 너무 재밌는 거 같아요! 앞으로도 힘내서 완강하겠습니다 :)
    • Sunday
      감사합니다.
    • 임희동
      다시 읽어보니 참 바보같은 질문이네요. 하지만 궁금하긴 하네요 ㅎㅎ
      대화보기
      • 임희동
        좀 바보같은 질문일 수 있지만!

        함수를 정의할 때는 변수를 id로 잡고, 즉 login(id)
        마지막에 결과값을 받는 함수는 변수를 input_id 즉, login(input_id)로 잡으면
        컴퓨터 입장에서는 입력된 값은 input_id로 처리되니, 이 login(input_id)에 어떤 값을 주기 위해서
        그 위에 정의된 함수 login(id)로 되돌아 갔다가 값을 가지고 내려오는 건가요?

        컴퓨터 입장에서 생각하려다보니... 처음->끝(끝에 왔다가 함수가 정의안된걸 알게됨)->중간(이곳에서 함수의 정의에 따라 값을 내놓음)->끝 이런 식으로 되는건가 싶어서요. ㅎㅎㅎ
      • hs4351
        190514 완료 감사합니다
      • wiseman
        190418 1136
      • 190410 1544
        완료. 감사합니다
      • Hotak Choi
        190406 이번꺼는 기네요!!
      • 김동현
        루비에서 매개변수값에 들어갈 수 있는 값들이 뭐가 잇죠?
      • 190330완료! 감사합니다
      • 호두
        고맙습니다.
      • CarryKim
        잘 봤습니다^^
      • LeeHope
        19.3.9 완료! 감사합니다
      • hystu2009
        생생하고 명확한 강의에, 감사의 말씀 올립니다.^^
      • kmw8462
        감사합니다.
      • 주재윤
        이해 OK!!!
      • 주재윤
        이해 OK!!!
      • 헬로우
        이해 되었습니다. !!
      • 김정석
        이해 감사 !
      • HyoSub Shin
        그렇다고 해주세요... 하실 때 빵터졌네요ㅋㅋㅋ

        인간미..
      • 루이보스라떼
        18.11.25.
      • 닐반
        2018. 10. 10.
      • 김수
        20180906 고마워용
      • 양디비
        2018-08-19 함수 완료! 강의 감사합니다.
      • jinnie0820
        Done!
      • 유닉스가이
        Thank you
      • 해릭
        180711 감사합니다.
      • 준혁짱짱맨
        시작 합니다!!
      • Ji Yeoun Park
        2018.6.24 감사합니다. 381번
      • Junbeom Jeong
        잘 봤습니다. 6월 17일 완료
      • Jaeduk Jang
        완료했습니다. 감사합니다.
      • 저도 배우는 입장이라 잘은 모르지만...return 가르쳐주실 때, return값이 나오고 나면 함수가 종료(?)된다고 하셨는데 그래서 exit을 안 붙여도 괜찮은 것 같습니다. 그리고 true가 리턴값으로 나오고 나면 함수는 종료되니까 false는 적용되지 않는 것이구요.
        대화보기
        • 궁금궁금
          def login(_id)

          members = ['egoing', 'k8805', 'leezche']

          for member in members do

          if member == _id

          return true

          end

          end

          return false

          end


          궁금한게 이 코드에서는 왜 return true 다음에 exit 을 쓰지 않나요? 이전 강의에서는 exit을 사용해서 그 다음에 오는 코드가 적용되지 않고 종료되도록 했는데 왜 여기에서는 안 하는지 답이 나오지 않네요ㅠㅠ 이렇게 코드를 쓴다면 return false도 같이 적용될 것 같아 혼선이 생길 것 같은데 강의 상에서는 문제 없이 작동하는 것이 신기합니다
        • 다람쥐
          감사합니다.
        • ddogagi
          음 저는 원래 다른언어를 사용하는 사람이고,
          루비를 공부하려고 듣고 있는사람이라, 루비에서의 규칙은 아직 잘 모르겠지만요..

          함수(메소드)의 경우,
          입력 값은 어떤 형태로 받고, 리턴 값으로 어떤 형태를 드릴께요 하고 약속을 해요.
          약속은 일관성이 있어야 하구요
          (누가 어떤식으로 사용할 지 모르니까, 리턴값은 배열로 드릴께요, 아님, 문자열로 드릴께요,
          boolean형태(true/false)로 드릴께요 란 식으로, 물론, 복합 형태도 있어요!)
          어떤 경우는 리턴값을 주고, 어떤 경우는 안주고 하면,
          함수를 사용하는 쪽에선 무슨 값이 돌아올지 몰라서 당황하게 되잖아요~

          단순 return만 적은경우는, null값을 준건지, false값을 준건지 알 수 없구요
          (이건, 앞으로 프로그램 하다보면 무슨 말인지 알 수 있으실 거에요)

          이번의 경우는 아이디가 있으면 안녕, 없으면, 누구세요 하고 물어보는 처리이지만,

          만약, 아이디가 없는경우, 아이디를 입력해주세요 하는 처리를 할 경우는,
          if !login(input_id)
          puts('아이디를 입력해주세요')
          end
          이런식으로 false인가 아닌가만 알고싶은 경우도 있을수도 있구요

          함수를 작성할 때에는 지금 당장만 사용하는게 아니라 범용성도 생각하면서 작성해야 돼요~
          한번만 쓰고 말 처리라면, 굳이 함수를 만들 필요가 없으니까요
          대화보기
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기