혼자 공부하는 파이썬 34강 - 리턴

Поделиться
HTML-код
  • Опубликовано: 25 сен 2024
  • 리턴과 5-1절 확인 문제를 다룹니다. 어렵지는 않을 것이라 생각합니다.

Комментарии • 160

  • @chapssaldduckzonmat
    @chapssaldduckzonmat 5 лет назад +4

    드디어 제가 연습문제를 스스로 풀게되었습니다.
    아침부터 지금까지 다 세세하게 살펴보고 또 쓰고,
    잊어버린 내용을 다시듣고를 반복해서 어떻게 쓰는지 알아냈습니다. 감사합니다. 나머지강의들도 잘 듣겠습니다.

  • @김영진-m8o3h
    @김영진-m8o3h 5 лет назад +3

    강의 너무 자세하게 해주시는거 같아요 완전 초보입장에서 해주시는거 같아서 너무 좋네요 감사합니다

    • @윤인성
      @윤인성  5 лет назад

      감사합니다...!

    • @essaywon5035
      @essaywon5035 3 года назад

      저는 이정도도 머리가 지끈한데 어느정도 학습하면 저도 님처럼 될까요??(진지)

  • @조성현-q4l
    @조성현-q4l 3 года назад +1

    대본을 준비해서 강의하시는 줄은 이번 강의에서야 알았네요. 감사합니다.

  • @JUN-mg6um
    @JUN-mg6um 4 года назад +1

    함수에서 def뒤에 들어가는 sum_all, mul 등은 그 자체로는 아무 의미가 없고 밑에서 함수를 만들어주는거 맞나요??예를 들어서 a부터 b까지 전부 합하는 함수를 만든다 할때 sum_all이라 하든 xxxx라 하든 상관 없는거죠?

  • @paullee8078
    @paullee8078 3 года назад

    안녕하세요.
    함수와 관련해서 궁금한 것이 몇 가지 있어서 질문합니다.
    1.책 218 페이지의 키워드 매개변수에 대해서 질문합니다.
    여기서 print() 함수 안에 있는 value는 가변 매개변수인데 앞에 왜 *이 없나요?
    2.책 221 페이지의 리턴에서 자료없이 리턴하기에 대해서 질문합니다.
    직접 해 보는 손 코딩에서 "A 위치입니다."만 출력하고 프로그램을 종료시키려면 그냥 print("B 위치입니다.") 이 부분을
    쓰지않으면 될 텐데 왜 굳이 return 키워드를 사용하는 것인가요?
    3.책 227 페이지의 확인문제 3번에 대해서 질문합니다.
    앞에서 216 페이지의 기본 매개변수가 가변 매개변수보다 앞에 올 때에서 기본 매개변수가 가변 매개변수보다 앞에 오면 오류가
    발생한다고 나와 있습니다. 그런데 확인문제 3번의 답이 1번이고 1번에서 왜 오류가 나는지는 이해가 됩니다.
    하지만 4번도 기본 매개변수가 가변 매개변수의 앞에 왔기 때문에, 오류가 나지 않나요?
    질문이 좀 길고 많았는데 항상 친절하게 답변해 주셔서 감사합니다. 행복한 설날 보내세요 :-)

    • @윤인성
      @윤인성  3 года назад

      1. 이는 단순한 표기입니다[실제 코드가 아니라].
      표기로는 뒤의 value, ...이 더 가변 매개변수라는걸 쉽게 이해할 수 있어서 이렇게 표기해주는 편입니다.
      2. return이 어떤 역할을 하는지 보기 위한 연습용 예제입니다.
      3. 4번은 아무 의미는 없는데, 실제로 작성해보면 오류는 발생하지 않습니다! 직접 코드를 입력해보는 것을 추천드립니다!

  • @곽동욱-g1q
    @곽동욱-g1q 2 года назад

    1.페이지 220쪽까지는 리턴을 쓰지않아도 함수명() 만해줘도 출력이 되던데 왜 리턴값을 쓸떄는 리턴도 쓰고 프린트도 쓰는건가요?
    2.221페이지는 마지막 함수 호출을 한뒤 print를 쓰지 않았는데 왜 222페이지는 print를 썼나요??

    • @윤인성
      @윤인성  2 года назад +1

      파일을 작성해서 코드을 실행할 때 출력을 하고 싶으시면 반드시 print 함수를 사용해주셔야 합니다.
      사용하지 않아도 출력되는 곳은 파이썬 인터렉티브 셸로서 "한 줄 코드를 간단하게 실행해볼 수 있는 공간"입니다(앞이 >>>로 나오는 곳). 여기는 한 줄 코드 테스트 목적이라서, 테스트하기 쉽게 자동적으로 마지막 줄을 print 함수로 감싸서 출력해줍니다.

  • @탁준혁-s4k
    @탁준혁-s4k 4 года назад +1

    4:37에서 return 변수 라는 것을 빼게 되면 출력결과가 none이 나오는 이유가 무엇인가요? return이라는 것이 원래 있던 곳으로 되돌아가라는 의미인것은 알겠는데 함수 선언과정에서 무슨 역할을 하는 것인지 이해가 잘 안됩니다 ㅠㅠ설명 부탁드려요

    • @윤인성
      @윤인성  4 года назад +1

      return 키워드 자체가 단순하게 돌아가는 것이 아니라, "값을 들고 돌아가라!"라는 역할을 합니다. 따라서 return 뒤에 아무 것도 넣지 않으면, 아무 것도 들고 돌아가지 않아서 None이 나오는 것입니다.

    • @essaywon5035
      @essaywon5035 3 года назад

      @@윤인성 오!!

  • @강동건-n1i
    @강동건-n1i 3 года назад +2

    제가 머신러닝쪽에 관심이 있어서 그걸배워보려하는데
    기본편만 끝내고 판다스를 배우면 많이 힘들까요?

    • @윤인성
      @윤인성  3 года назад +1

      판다스는 그냥 뒤의 모듈만 보고 지금 단계에서 넘어가셔도 어느 정도 될 것입니다!
      [판다스보다 지금 반복문 함수가 더 어렵습니다][물론 판다스를 또 활용하려면 그게 필요하겠지만]

  • @유지태-l9s
    @유지태-l9s 4 года назад +8

    "츤데레 함수"

  • @김민경-y7d
    @김민경-y7d 3 года назад

    1. 문제 3번 중 보기 1번 질문입니다.
    가변 매개변수 뒤에 일반 매개변수가 와서 오류가 나는 건가요?
    2. 문제 3번 중 보기 2번 질문입니다.
    가변 매개변수 뒤에 기본 매개변수가 왔습니다.
    그런데 왜 오류가 나지 않는지 이해가 잘 되지 않습니다.
    *values가 1,2,3,4,5를 인식하고 valueA=10이랑 valueB=20은 그냥 무시되는 값인가요?
    3. return이랑 print()의 차이를 잘 모르겠습니다.
    문제 2번에 정답대로 안 하고
    def mul(*values):
    a=1
    for i in values:
    a*=i
    print(a)
    print(mul(5,7,9,10))
    이렇게 코딩을 하면 왜 코딩 결과가
    3150
    None
    이렇게 나오나요...?

    • @윤인성
      @윤인성  3 года назад

      1.2. 넵 맞습니다.
      3. print는 출력하는 것이고
      return은 값만 돌려주는 것입니다.
      값만 돌려주므로 더 많은 곳에 활용할 수 있습니다.
      현재 인터랙티브 셸에서 실행하셔서
      그냥 return도 출력하는 것처럼 보일 수 있는데요.
      이는 인터랙티브 셸이 한 줄의 마지막 줄에 값이 있을 경우 print로 무조건 감싸서 출력해주기 때문입니다 실제 상용 제품으로 만들면[파일로 만들면], 출력되지 않습니다.
      None을 출력하는 이유는 함수에서 아무 것도 리턴하지 않은 것을 print로 출력하기 때문입니다.

  • @차재선-n9p
    @차재선-n9p 4 года назад +1

    안녕하세요 선생님 return 함수가 잘이해가 안되는데요 ㅠ
    혹시 확인문제 2번 #을 붙여서 순서를 설명해주는 강의가 있을까요....
    def mul(*values):
    변수=1
    for i in values: #1 여기서 5 들어감 #4 7이들어감
    변수 *= i #2 여기서 5*1=5 #5 변수를 뭘 넣어야되는지 모르겠습니다
    return 변수 #3 5의값을 들고 나옴 여기서 5는 어디로가는지 모르겟습니다.
    print(mul(5,7,9,10))

    • @윤인성
      @윤인성  4 года назад +1

      return은 함수가 아니라 키워드(이자 구문)입니다.
      for 반복문 내부에서 들여쓰기가 하나이므로[지금 표기해주신 위치부터]
      1번째 for 반복 5로 #1#2
      2번째 for 반복 7로 #3#4
      3번째 for 반복 9로 #5#6
      4번째 for 반복 10으로 #7#8
      이 모두 돌고 난 후 그 다음 return 변수를 실행하고 #9
      마지막 print(mul(5,7,9,10))으로 돌아가서 #10
      출력하고 끝납니다!

    • @차재선-n9p
      @차재선-n9p 4 года назад

      @@윤인성 감사합니다 완전히 해결됬습니다 ㅠㅠ

  • @박재성-l3v
    @박재성-l3v 3 года назад

    강의 잘 듣고 있습니다. 이번 확인문제 2번에서 궁금한게 있어서 질문드립니다.
    가변 매개함수를 출력하게되면 ()형식으로 출력되던데 ()도 리스트와 딕셔너리처럼 사용해도 되는지 궁금합니다.
    현재 2번문제를 혼자 풀었을 때
    def mul(*values) :
    value = 1
    i = len(values)
    for p in range(i) :
    value = value*(values[p])

    return value
    print(mul(5,7,9, 10))
    와 같은식으로 함수를 정의해보았는데요 현재 문제에서는 잘 돌아가는데 오류가 발생할 수도 있는지 궁금해서 댓글을 써봅니다. 이런 식으로 함수를 구현해도 괜찮은가요?

    • @윤인성
      @윤인성  3 года назад

      넵 튜플이므로 리스트 비스무리하게 사용하시면 됩니다.
      프로그래밍은 사양 제한이 있지 않은한 돌아가기만 하면 되서 아무 문제 없습니다!

  • @user-rp8jf8kn8b
    @user-rp8jf8kn8b 2 года назад

    안녕하세요^^ 좋은강의 감사하게 듣고있습니다. 다름이 아니라 리턴의 의미가 이해가 잘 안되어서 질문을 드리게 되었습니다. 첫번째 질문은 4:19에서 return 변수를 입력하는 이유를 깨닫지 못하고 있습니다ㅠㅠ. 이전 212~220쪽 예제코드는 반복문을 써준 뒤 굳이 리턴을 안해주어도 결과값이 출력이 되는데, 왜 223쪽 쯤의 코드는 return을 안써주면 None이 출력이 되며 왜 꼭 써주어야 하는지 그 차이점을 모르겠습니다. 두번째 질문은, 가령 리턴 A 라는 것은, A를 들고 돌아가라는 뜻인데 그렇다면 return 변수에서, 변수는 0~100 까지 정수를 다 더한 값을 뜻하는게 맞나요?? ㅠㅠ 여기서도 왜 꼭 리턴을 써주어야 코드가 완성이 되는지 모르겠네요....

    • @윤인성
      @윤인성  2 года назад +1

      리턴은 "뒤의 값을 들고 함수를 호출한 쪽으로 돌아가라"라는 의미입니다.
      따라서 return을 안 쓰면, 아무 것도 안 들고 돌아가므로 None[아무 것도 없는 것]을 출력합니다.
      일단 그냥 출력이 목적이라면
      1. print()를 사용하면 되고
      2. 함수를 만들 필요도 없습니다.
      그래서 단순 출력 목적이라면 지금 말씀해주신 코드도 당연히 맞습니다
      그런데 함수를 만든다는 것은
      "코드 중복을 제거하기 위함(재사용을 위해서)"입니다.
      코드의 중복을 제거해서 함수를 만들기 위한 가장 중요한 포인트는
      - 함수가 외부에 영향을 주면 안 된다(이를 "함수가 독립적이다"이라고 표현합니다)
      - 즉 함수 내부에서 모든 처리가 끝나야 합니다.
      라고 할 수 있습니다.
      PS. 완전히 독립적인 함수를 "순수 함수"라고 표현하는데
      이런 함수를 만드는 것은 어렵지만,
      이런 함수를 만들 수 있게 최대한 노력하는 것이 좋습니다!
      PS. 프로그램의 크기가 커지면,
      그때는 크기를 자른다는 특별한 이유로 "종속 함수"를 만듭니다.
      하지만 그 전에는 순수 함수를 만들 수 있게 공부하는 것이 좋습니다!
      print() 함수를 사용한다는 것은
      함수가 함수 외부에 있는 "화면"과 통신한다는 의미입니다.
      따라서 함수의 독립성이 깨지고
      함수를 사용할 수 있는 상황에 제한이 생깁니다.
      출력을 하고자 하는 목적이 아니라,
      단순하게 "값"을 활용하고 싶을 때는
      해당 함수를 쓸 수 없게 되어 버리는 것입니다.
      그래서 책은 기본 공부를 위한 내용이므로
      "최대한 함수를 함수 답게 만드는 방법"을 설명드리는 것이라
      "독립적인 함수", "활용 가능성이 높은 함수"를 만들 수 있게
      return 키워드를 사용하는 형태로 설명드리고 + 이렇게 만들 수 있게 해달라고 이야기 하는 것입니다!

  • @HYUNJIN88
    @HYUNJIN88 2 года назад

    안녕하세요 강의 잘 보았습니다
    잘 모르겠는 부분이 있습니다 ㅠㅠ
    이해가 가지 않는 부분이 두가지인데요
    먼저 첫번째로는
    처리과정 중간에 리턴을 쓰면 그 밑은 버리고
    위에만 출력이 되는데
    그것도 리턴값이라고 하는건가요?
    아니면 리턴을 마지막에 쓰고 어떠한 값을
    입력하면 그 값까지 출력이 되는데
    그 값을 리턴값이라고 하는건가요?
    혹은 둘 다 리턴값이라고 하는건가요?
    두번째로는 썸 올 을 함수로 선언? 해서 진행해주시는데
    range 가 아니어도 범위가 지정이 되나요??
    ㅠㅠㅠㅠ 이해를 아예 잘못하고 있는지 혼란이 막 ㅠㅠ

    • @윤인성
      @윤인성  2 года назад

      "출력"이라는 행위는 print() 함수의 결과이지
      리턴과는 상관이 없습니다.
      __함수를 호출했을 때, 결과가 나오는 것__이 리턴입니다.
      .
      print(함수())했을 때 출력된다면
      함수()에서 어떤 결과를 만들어내고 있는 것입니다.
      "리턴 + 출력"이 같이 일어나는 중입니다.
      .
      함수는 우리가 직접 만드는 것입니다.
      아무 이름이나 지정해서 우리가 만드는 것입니다!

    • @HYUNJIN88
      @HYUNJIN88 2 года назад

      @@윤인성 고맙습니다!

  • @윤소영-o5l
    @윤소영-o5l 3 года назад +1

    연습문제 2번에 return을 tab 1번을 누르고 결과를 도출하면 3150인데, 2번을 누르고 결과가 나오면 5만 나옵니다. 혹시 이 둘 차이가 뭔지 알 수 있을까요?

    • @윤인성
      @윤인성  3 года назад

      전체 코드를 올려주실 수 있을까요?

  • @정민형-p3v
    @정민형-p3v 5 лет назад

    질문이있습니다!
    def sum_all(start,end) :
    output=0
    for i in range(start,end) :
    output += i
    return output
    print(sum_all(0,100))
    이렇게 했는데 왜 답이 0이 나오는건가요?

    • @윤인성
      @윤인성  5 лет назад

      return output이 반복문 내부에 있기 때문입니다.

  • @좋은사람-h7c
    @좋은사람-h7c 2 года назад +1

    마지막 문제에서 (*values)에 *은 어떤 의미로 사용되는건지 궁금합니다 *빼고 돌려보니 오류가 나네용

    • @윤인성
      @윤인성  2 года назад +1

      앗, 너무 간단하게 짚고 넘어왔던 부분이라
      다음 3분짜리 강의를 참고해보시면 좋을 것 같습니다!
      ruclips.net/video/7w7eXDXOlug/видео.html

  • @류상서
    @류상서 5 лет назад

    감사합니다.^^
    수고 하셨습니다.
    날씨가 너무너무 무덥습니다.
    건강 챙기세요^^

  • @michaelkim733
    @michaelkim733 4 года назад

    7:37 이 문항에서요, 가변 매개변수로 받은 값들을 for 문에 돌리는 과정이 있는데요, for 문에는 리스트 튜플 문자열등이 들어간다고 배웠는데, 가변 매개변수로 받은 값들은 문자열이되서 for문에 문자 하나하나씩 돌아가는건가요?

    • @윤인성
      @윤인성  4 года назад

      튜플이 되서 들어간다고 생각하시면 편할 것 같습니다.

  • @basketribo
    @basketribo 4 года назад

    질문 하나 남겨봅니다.
    def sum_all(start,end):
    변수 = 0
    for i in range(start, end+1):
    변수 += i
    print(변수)
    print(sum_all(1,100))
    위와 같이 코드를 입력하니
    5050
    None 이 출력되었는데 None이 왜 출력되었는지 알 수 있나요?

    • @윤인성
      @윤인성  4 года назад

      1. 현재 출력이 두 번 되는 이유는 print() 함수가 두 위치에 있기 때문입니다.
      2. 5050은 함수 내부에서 출력됩니다.
      3. 함수는 아무 것도 리턴하지 않으면 None이 결과로 나옵니다.
      4. 현재 함수는 아무 것도 리턴하지 않습니다.
      5. 근데 그걸 출력하니(sum_all(1, 100)), None이 출력되는 것입니다.

    • @basketribo
      @basketribo 4 года назад

      감사합니다 확인문제 3번에 1번 2번 3번은 이해가 되는데 4번 항목은 저는 가변매개변수가 기본매개변수보다 순서적으로 앞에 쓰여야 되는데 그렇지 않아서 오류가 발생한다고 생각하는데 왜 오류가 발생 안 하는지 알 수 있나요? 빠른 답변과 쏙쏙 이해들어오게 해주시는 설명 감사합니다!^^

    • @윤인성
      @윤인성  4 года назад

      @@basketribo 매개 변수에 값이 어떻게든 들어오면 __, (설계적으로 쓸데없는 일일 수는 있지만) 오류는 없습니다. 1번을 제외한 나머지 것들은 매개 변수를 전달했을 때 값이 어떠게든 들어가게 되므로 오류가 발생하지 않는 것입니다.

  • @김광원-p4b
    @김광원-p4b 4 года назад

    좋은 강의 감사합니다. 2번 문제에 질문이 있습니다.
    def mul(*values):
    output = 1
    for i in [values]:
    output*=i
    return output

    print(mul(5, 7, 9, 10))
    제가 이렇게 코드를 작성했는데요. 책 156쪽에 보면 반복할 수 있는 것에는 문자열, 리스트, 딕셔너리, 범위라고 설명이 되어 있습니다. 그래서 변수를 어떻게 해야 저 형태로 만들까 고민하다가 [ ]를 추가해서 리스트 형식으로 만들었는데 출력되는 값은 (5, 7, 9, 10) 이렇게 나오네요.. .ㅠㅠ 왜 이런건가요?? 그리고 강의나 책에서는 [ ] 추가하지 않았는데 왜 그런 건가요???

    • @윤인성
      @윤인성  4 года назад

      print() 함수를 사용해서 중간중간 결과를 확인해보시는 것을 추천합니다. mul 함수의 첫 번째 줄에서 values 출력, 반복문 내부에서 i를 출력해보시면, 왜 그렇게 나오는지 확인해보실 수 있을 것입니다.

    • @김광원-p4b
      @김광원-p4b 4 года назад

      @@윤인성 아 이해 했습니다!! 감사합니다~!

  • @매새-n8n
    @매새-n8n 3 года назад

    선생님 질문있습니다.
    def function(valueA, valueB, *values):
    pass
    print(function(1, 2, 3, 4, 5, 6))
    를 출력하면 none 이 나오네요 ㅜ.ㅜ
    저는
    valueA = 1, valueB =2 , 3, 4, 5, 6 이런 출력이 될거라 생각했습니다 ㅜ.ㅜ

    • @윤인성
      @윤인성  3 года назад

      함수 내부에서 그렇게 출력하라는 코드가 하나도 없으므로 당연해 None이 나옵니다.

  • @KyujinSim
    @KyujinSim 4 года назад

    정말 명강의에 실력이 쑥쑥 자라는거 같습니다. 감사합니다.

  • @jehyunhong2487
    @jehyunhong2487 3 года назад

    def sum_all(start,end):
    variable=0
    for i in range(start,end+1):
    variable+=i
    return variable

    print(sum_all(1,100))
    왜 여기에서 return variable을 입력하지 않으면 none이라고 나오는건가요?

    • @jehyunhong2487
      @jehyunhong2487 3 года назад

      그리고 왜 애초에 return이 이 식에서 필요한지 이해가 잘 돼지 않습니다 ㅠㅠ

    • @윤인성
      @윤인성  3 года назад

      함수의 결과를 만들어내기 위한 구문이 return 구문입니다. 그래서 그걸 안 넣으면 함수의 결과가 안 나옵니다.

  • @JW-up9cc
    @JW-up9cc 4 года назад

    확인문제 2번 질문있습니다.
    def mul(*values):
    mul1 = 1
    for i in values:
    mul1 *= i
    return mul1
    mul(5, 7, 9, 10)
    mul2=mul()
    print(mul2)
    위와 같이 작성하면 왜 결과값이 1이 나올까요? 아무리 봐도 이해가 가지 않네요..

    • @윤인성
      @윤인성  4 года назад

      mul2에 mul() 함수의 결과를 할당하는 부분을 실행할 때 매개 변수로 아무 것도 전달하지 않으셨기 때문입니다.
      함수의 실행 결과를 할당 없이 실행한 부분은 (현재 코드의 경우) 그냥 값만 계산하고 + 값을 어디 넣고 활용하지 않으니 = 값은 그냥 의미 없이 계산된 뒤 사라져버립니다.

    • @JW-up9cc
      @JW-up9cc 4 года назад

      @@윤인성 아아 무슨 말인지 이해했어요. 늦은 시간에 빠른 답변 정말 감사드립니다^^

  • @mg0011
    @mg0011 4 года назад

    sum_all(start,end) : 에서 start 와 end 대신 a,b 로 써도 되나요? 아니면 꼭 정해진 표현법인가요.. 완전 초보라... 꼭써야하는 값인지 임의로 표현한 값인지 ... 저런게 너무 어려워요 ㅠ

    • @윤인성
      @윤인성  4 года назад +1

      키워드를 제외한 모든 식별자는 마음대로 쓰셔도 됩니다. 오류가 난다고 세상이 멸망하고 그러는 것은 아니니, 이것 저것 바꿔보시면서 몸으로 느껴보시면 좋을 것이라 생각합니다!

  • @quantl9208
    @quantl9208 11 месяцев назад +1

    선생님 혹시 혼공파 시리즈 이후 다음 시리즈도 쓰실생각없나요? 혼공파 보고 너무 좋아서 그러는데 입문용 말고도, 나중에 독학러들이 정말 컴공과 이상의 퍼포먼스를 낼 수 있는 다양한 고급 기법이나 말 그대로 파이썬 잘 하는 방식이나 노하우, 다양한 실전 프로젝트 등이 녹아있는 책이 한권 있었으면 해서요. 꼭 선생님이 책 써주셨으면 합니다! 혼공파 같은책 시장에서 찾기가 너무 힘드네요ㅜㅜ

    • @윤인성
      @윤인성  11 месяцев назад

      비전공자 분들이 부족한 경우가 많은 초중고 수학과
      대학교 2학년 정도 때 배우는 알고리즘 절반 정도 다루는 책을 이번 주에 출간했습니다 :D
      강의도 많이는 아니지만 간단하게라도 올릴 예정입니다!

  • @탁준혁-s4k
    @탁준혁-s4k 4 года назад

    질문이 하나 더 있습니다! 7:50에서 변수*=i return 변수 라고 나눠서 쓰지 않고 한번에 return 변수*=i 라고 쓰면 안되는 이유가 무엇인가요?역시 여기서도 return의 정확한 사용방법이 헷갈립니다,,

    • @윤인성
      @윤인성  4 года назад

      그냥 파이썬이 해당 문법을 지원하지 않기 때문입니다(그래서 알고리즘 만들 때 좀 귀찮은 경우가 많습니다).
      언어에는 정확한 사용 방법이란 존재하지 않습니다. 그냥 표현해보고 상대방(프로그래밍 언어의 경우 컴퓨터)이 제대로 이해하지 못하면, 다른 표현 방법으로 써야한다고 계속해서 기억하는 과정을 반복할 뿐입니다.

  • @EliteKBS
    @EliteKBS 4 года назад

    안녕하세요. 선생님.
    함수 선언할 때, 꼭 리턴을 쓸 필요가 있나 싶어서 아래와 같이 sum_all 함수를 써 봤습니다.
    ---
    def sum_all(start, end):
    output = [] # 리스트 sum()함수 이용
    for i in range(start, end + 1):
    output.append(i)
    print(sum(output))
    print("0 to 100:", sum_all(0, 100))
    # 예상 결과 -> "0 to 100: 5050"
    # 실제 결과 -> "0 to 100: None"으로 출력됨. ???
    ---
    이러면 함수 sum_all()만 사용했을 때는, 예제와 같이 변수 반복과 리턴을 이용한 결과와 같은 값이 나오긴 하지만,
    p224 예제에서와 같이 print()함수에 sum_all()함수를 넣어서 그 결과를 보면 None이 나옵니다.
    이 None값은 왜 그리고 어디서 나온 건가요?

    • @윤인성
      @윤인성  4 года назад +1

      리턴을 안 하면 아무 것도 들고 나가지 않아서 None을 출력합니다.
      print는 화면에 출력한다 개념이고,
      리턴은 함수가 값을 갖고 나간다는 개념입니다.

    • @EliteKBS
      @EliteKBS 4 года назад

      @@윤인성 아하 return대신 print()함수를 포함하면, 출력하는 기능은 수행을 하지만, 함수값은 만들어내지 않고 함수가 끝나게 되는 거군요! 감사합니다 :))

  • @종고가루
    @종고가루 2 года назад

    가변매개변수를 넘겨 받을 때
    인수로 값을 입력하여 넘겨주는 것이 아닌
    input()함수로 입력 받은 값을 인수로 넘겨줄 수는 없을까요? 이렇게 해봤는데 error가 나네요.
    혹시 다른 방법이 있을까요?
    예) def func(*value)
    ~~~
    li =list(map(int,input().split()))
    print(li)

    • @윤인성
      @윤인성  2 года назад

      당연히 가능합니다. 전체 코드와 오류 내용을 올려주실 수 있을까요?

    • @종고가루
      @종고가루 2 года назад

      @@윤인성
      def func(*value):
      add=0
      for i in value:
      add += i
      return add
      li=list(map(int,input().split()))
      #print(func(li)) # 1번
      print(func(*li)) # 2번
      전체 코드입니다. 질문 드리기 전에 1번과 같이 호출했을 때 오류가 있었는데,
      2번과 같이 호출해보니 잘 실행이 되네요.
      왜 실행되는지는 잘 모르겠습니다.
      *li가 포인터 개념인가요? li에 있는 모든 요소를 의미하는 건가요?

    • @윤인성
      @윤인성  2 года назад

      ​ @박정미
      0. 파이썬에는 포인터 자체가 없습니다. 계통이 다른 프로그래밍 언어들은 문법을 연관시켜서 생각하지 않는 것이 좋습니다.
      1. 함수 호출하는 곳에 *을 쓰면
      전개 연산자입니다.
      *[1, 2, 3, 4]라고 입력하면
      1, 2, 3,4 전개되어서 매개변수로 들어갑니다.
      2. 함수 생성하는 곳에 *을 입력하면
      가변 매개변수입니다.
      *value라고 입력하면
      매개변수를 따로따로 입력했을 때 이를 리스트로 받아줍니다.
      3. 현재 코드에서
      li=list(map(int,input().split()))
      로 만들어지는 li는 리스트입니다.
      이걸 매개변수로 바로 넘기고 싶으시면
      def func(value):로 만들고
      func(li)로 호출해주시면 됩니다.
      4. 만약 def func(*value)로 만들면
      func(1, 2, 3, 4, 5)처럼 호출하셔야 합니다.
      5. def func(*value)로 만들 함수에
      리스트(li)를 전달하고 싶다면
      func(*li)로 써서 li를 전개해서 전달하셔야 합니다.
      만약 li = [1, 2, 3, 4, 5]라면
      func(*li)했을 때
      func(1, 2, 3, 4, 5)로 전개됩니다.

    • @종고가루
      @종고가루 2 года назад

      @@윤인성 자세한 설명 대단히 감사합니다~^^

  • @jin-whoanlee7412
    @jin-whoanlee7412 Год назад

    안녕하세요. 리턴에 대해서 감을 못잡아서 질문드려요. 너가 왔던 곳으로 돌아가,, 라고 설명하셨는데요, 너가 왔던 곳이 어디를 말하는건가요?

    • @윤인성
      @윤인성  Год назад

      "함수()" 형태로 호출했던 위치로 돌아가라는 의미입니다! 참고로 현재 이 강의는 개정판 강의가 완강되어 있는데, 2배 정도 더 자세하게 설명하니 그쪽 강의를 보시는걸 추천드립니다!

    • @jin-whoanlee7412
      @jin-whoanlee7412 Год назад

      @@윤인성 빠른 답변 정말 감사드려요. 추천해주신 영상도 보겠습니다!

  • @dohkim3470
    @dohkim3470 2 года назад

    감사히 잘보고 있습니다! 제가 맥북을 사용하다 윈도우 노트북으로 넘어와 다시 한번 문제를 풀어보았는데 맥북에선 되는데 윈도우 노트북으로는 안되어 질문드립니다. 문제2번에 for value in values를 할 때 "SyntaxError: invalid syntax" 에러가 뜹니다. 똑같은 코드로 맥북에서는 됩니다.. 뒤에 또다른 예시인 for student in students 도 systaxerror이라고 뜨는데 왜 그런것일까요??ㅠㅠ for ~ in 구문이 다 안되는것같습니다..

    • @윤인성
      @윤인성  2 года назад

      신텍스 에러는 코드를 잘못 입력할 때 뜨는 오류라서, 현재 주신 정보만으로는 "코드를 잘못 입력했다" 밖에 이야기 할 수 없을 것 같습니다. 전체 코드를 붙여주실 수 있을까요!

    • @dohkim3470
      @dohkim3470 2 года назад

      @@윤인성 제일 첫줄5줄이 전부였습니다. vscode를 껏다 키니 다시 되었습니다.. 항상 감사합니다!!

  • @TheLeeSangCuhl
    @TheLeeSangCuhl 3 года назад +1

    오... 이해가 쏙속됩니다 . 감사합니다^^

  • @ElElDA256
    @ElElDA256 2 года назад +2

    이해가 잘 되네요!

  • @최윤식-j7k
    @최윤식-j7k 2 года назад

    안녕하세요. 강의 잘 듣고 있습니다. 멍청한 질문 같아 부끄럽지만 연습문제 2번과 같은 사칙 연산을 할 때 변수 생성을 하는 이유가 무엇인지 궁금합니다.

    • @윤인성
      @윤인성  2 года назад

      변수를 생성하지 않고도 코드를 구현 하실 수 있다면 그렇게 만드셔도 됩니다! 근데 변수 선언 없이는 만들 수 없어서 사용한 것입니다!

  • @Luke-rb2hk
    @Luke-rb2hk 4 года назад

    질문있습니다! 확인문제 2번에서 return을 하면 애는 어디로 돌아가는건가요? 제가 차근차근 번호 매기며 풀어봤는데 리턴하면 #3으로 가는거 맞나요?
    확인문제2
    def mul(*values): #2 5,7,8,9가 들어감
    변수 = 1
    for i in values:
    #3 i 에 5가들어감 #6 i에 7이 들어감
    변수 *= i #4 5가 들어가면 5가 됨 #6 5*7
    return 변수 #5 1*5 = 5 #7 5*7 #8 5*7*8*9 = 3150
    print(mul(5,7,9,10)) #1

    • @윤인성
      @윤인성  4 года назад

      return하면 함수를 호출한 쪽으로 돌아가므로, 1번으로 돌아가게 됩니다...!

    • @Luke-rb2hk
      @Luke-rb2hk 4 года назад

      윤인성 아하 그러면 숫자가 저렇게 한번에 들어가는게 아니라 하나하나씩 들어가나요?

    • @윤인성
      @윤인성  4 года назад

      @@Luke-rb2hk 반복문 내부의 들여쓰기에서 반복이 들어가므로, "변수 *= i" 부분에서 지금 5, 7, 8에 적은 일이 일어납니다. 그리고 그 이후에 "return 변수"는 한 번 실행되고 함수를 튀어나옵니다...!

  • @hyomiechoi7015
    @hyomiechoi7015 4 года назад

    확인문제 3번에 선택지4번은 왜 오류가 안 나나요? 기본 매개변수가 가변 매개변수보다 앞에 올 때 오류가 나는 예시(216쪽) 과는 관련 없는 내용인가요? ㅜㅜ

    • @윤인성
      @윤인성  4 года назад

      216페이지에서 오류가 발생하는 이유는 n에 기본 값이 아니라 "안녕하세요"가 할당되어서 그렇습니다.
      - 기본매개변수가 가변 매개변수 앞에 올 때는 기본 매개변수가 의미가 없어진다는 예를 보여주는 코드입니다.
      사용하는 이유가 전혀 없지만, 내부에서 값을 잘못 사용하지 않는한 함수 선언 자체로는 오류가 발생하지 않습니다.

  • @뫄뫄마-q9g
    @뫄뫄마-q9g 3 года назад

    p227의 2번 문제에서 결과를 "(5,7,9,10)의 곱은 3150입니다."로 나오게 하고 싶은데 3150자리에 (5,7,9,10)이 입력됩니다 ㅜ
    뭐가 틀렸는지 봐주실 수 있으신가요?
    def mul(*values):
    output = 1
    for i in values:
    output *= i
    return output
    input = (5,7,9,10)
    print("{}의 곱은 {}입니다.".format(input, mul(input)))

    • @윤인성
      @윤인성  3 года назад

      mul(5,7,9,10)으로 호출하셔야 합니다.
      현재 코드는 그냥 매개변수로 튜플 하나 던져주는 코드입니다!

  • @gorani-in-the-house
    @gorani-in-the-house 3 года назад

    리턴 관련해서 두가지 질문이 있어 댓글 남깁니다!
    def sum_all(start,end):
    output=0
    for i in range(start, end+1):
    output+=i
    return output
    1.이 코드에서 return 뒤에 output을 안붙이면 값이 None이 출력되는데 왜 그러는지 이유가 궁금합니다
    2. 같은 챕터에
    def test(a, b=10, c=100):
    print(a+b+c)
    같은 함수는 정의할 때 return을 안써도 함수가 호출이 되는데 어떤 경우에 return을 써서 정의해야 하는지 궁금합니다.
    쌩초보자인데 덕분에 쉽게 잘 배우고 있습니다. 감사드려요😀

    • @윤인성
      @윤인성  3 года назад

      1. return 뒤에 아무것도 없으면 원래 None을 리턴하게 설계되어 있을 뿐입니다.
      2. 함수에서 값을 리턴하고 싶을 경우에만(호출한 위치로 값을 돌려줘야 할 때)(일반적으로 대부분의 경우), 리턴을 사용합니다.

  • @미기엘라이
    @미기엘라이 4 года назад +2

    마지막 문제에서 def mul(*values):를 정의하실 때 *을 붙이셨는데 *이 다변수를 입력 가능하게 해주나요?

    • @윤인성
      @윤인성  4 года назад +2

      넵!

    • @미기엘라이
      @미기엘라이 4 года назад +1

      @@윤인성 답변 감사 드립니다! 그리고 강의 잘 듣고 있습니다. 좋은 강의를 찍어서 올려주셔서 감사합니다!

  • @Giga-v1f
    @Giga-v1f 3 года назад +1

    1:24 에서 function()을 쓰면 결과가 A,B가 나오고
    print(function())이라 해야 리턴 된 값(A, B, 100)이 같이 나오는데
    funtion()과 print(function())의 차이가 뭔지 명확하게 잘 모르겠습니다 ㅠ

    • @윤인성
      @윤인성  3 года назад +2

      print()가 없으면 실제 코드에서는 출력되지 않습니다.
      print() 없이 출력되는 것은 그냥 간단한 코드 실행해보는 인터랙티브 셸에서 내부적으로 한 줄을 print()로 감싸서 출력해주기 때문입니다.

    • @Giga-v1f
      @Giga-v1f 3 года назад

      @@윤인성 정말 감사합니다!!

  • @bbossam_jjudy
    @bbossam_jjudy 3 года назад

    아래윗줄이나, 멀리 떨어져 있거나, 같은 문자가 선택되었을때, 동시에 적용되게 하려면 무슨 키를 누르는 것인지요? (기본은 다 선택되어도... 커서 있는 부분에만 입력이 되는데, 영상에서 윤인성님께서 하시는 것처럼 동시에 수정하거나 동시에 같은 값을 입력하려고 할때)

    • @윤인성
      @윤인성  3 года назад

      여러 개를 한꺼번에 수정하는건
      ctrl + f로 검색창 띄우고 + 왼쪽에 드롭다운 내려서 = 전체 수정 기능을 사용하는 것입니다!

    • @bbossam_jjudy
      @bbossam_jjudy 3 года назад

      @@윤인성 답변 감사드립니다. 검색창에 선택한 텍스타가 나오고, 아래 전체 바꾸기 기능을 말씀하시는 건지요?
      아무리 해도 동시에 안바뀌는것이, 제가 잘 이해 못하는것 같습니다.ㅠㅠ

  • @sangwoonoh7438
    @sangwoonoh7438 3 года назад

    코드 흐름 읽는 연습하면서 하고 있는데 아래처럼 작성했을때
    1)-------------------------------------------cnt변수와 리턴값이 for문에 들어가있는 경우
    def mul(*values):
    for value in values:
    cnt = 1
    cnt *= value
    return cnt
    print(mul(5, 7, 9, 10)) # 5 만 출력 하게되는 이유
    2)--------------------------------------------cnt변수만 for문에 들어있는 경우
    def mul(*values):
    for value in values:
    cnt = 1
    cnt *= value
    return cnt
    print(mul(5, 7, 9, 10)) # 10만 출력하게 되는 이유
    위 두개의 1), 2)번의 값이 다른지와
    3)-----------------------------------------------
    def mul(*values):
    cnt = 1
    for value in values:
    cnt *= value
    return cnt
    print(mul(5, 7, 9, 10))
    3)번과 1), 2) 번의 값이 왜 다르게 나오는지 잘 모르겠어서 질문드립니다.

    • @윤인성
      @윤인성  3 года назад

      1, 2번은 반복을 돌 때마다 cnt = 1로 cnt가 1로 바뀝니다.
      그래서 1 * 5, 1 * 7, 1 * 9, 1 * 10만 계속 계산될 뿐입니다!

    • @sangwoonoh7438
      @sangwoonoh7438 3 года назад

      @@윤인성 그렇군요 답변 감사합니다.

  • @AlvinMrLee
    @AlvinMrLee 3 года назад

    1:40쯤에 print(function())이렇게 치셨는데
    그냥 function()만쳐도 저 결과 값이 나오는데 왜 print()함수로 감싸신건가요??

    • @윤인성
      @윤인성  3 года назад +2

      리턴 값을 확인해보기 위한 용도입니다!

  • @donggeumlee8648
    @donggeumlee8648 4 года назад

    이전 강의에서도 글 남겼는데요.
    제 프로그램이 문제인지 저는
    def function():
    print("A")
    print("B")
    return 100
    function()을 입력하면
    결과값이
    A
    B
    이렇게만 나와요.
    뭐가 문제인지를 잘 모르겠네요;;

    • @윤인성
      @윤인성  4 года назад

      넵 그렇게 나오는 것이 맞습니다. 어떻게 실행 결과를 예측하셨는데, 어떻게 나와서 이상하다고 생각하는 것인지 조금 더 자세하게 설명해주실 수 있을까요?

  • @JieunKim-c9n
    @JieunKim-c9n 2 года назад

    return 이라는 개념에 대해 확실하게 잡혀있지 않은 것 같아서요ㅠㅠ 처음으로 돌아가는 거라고 했는데 혹시 변수의 개념을 다시 지정해주는 뜻도 가지고 있나요..?!

    • @윤인성
      @윤인성  2 года назад +1

      "원래 위치로 값을 들고 돌아가라"입니다!

  • @Sun-tr3iy
    @Sun-tr3iy 3 года назад +1

    라이브러리는 봐도 봐도 이해는 잘 안가는게... 아직 금방 이해하려면 멀었나봐요!! ㅠ 책에서 말씀하신대로 계속 보고 연습은 해보겠지만.. 좀 더 쉽게 라이브러리가 이해가게 하는 방법은 없는건가요? ㅎ

    • @윤인성
      @윤인성  3 года назад

      라이브러리 이해하는 영역이 아니라, 단순 암기 영역이라서 라이브러리를 많이 써보면 됩니다!
      다음 단계[인공지능 개발, 데이터 분석, 웹 개발 등]으로 넘어가보시면 됩니다.
      수 많은 함수들이 나오는데 영어 단어 외우듯 쭉 외우면 됩니다!

  • @서울꺼벙천사-i2m
    @서울꺼벙천사-i2m 3 года назад

    return은 함수 내부에서 사용하던 값을 외부로 전달하고
    함수를 호출하는 곳으로 간다
    라고 정리하면 되는 건가요?

    • @윤인성
      @윤인성  3 года назад +1

      넵 이것도 완벽합니다!

  • @보솜-f8e
    @보솜-f8e 4 года назад

    4:45에서 return 때문에 값이나오는건가요 아니면 print때문에 나오는건가용,,?

    • @보솜-f8e
      @보솜-f8e 4 года назад

      아 강의 돌려보니까 알겠습니당 리턴값을 들고 print 함수로 들어가는군요,,감사합니다!!

  • @honeybear5547
    @honeybear5547 5 лет назад

    확인문제 1번에 print(f(10)) 에서 f(10) 인 이유가 따로 있는건가요? 아니면 임의로 넣으신건가요..?

    • @윤인성
      @윤인성  5 лет назад

      문제에서 10을 넣어 냈으니, 만들 때도 10을 넣어서 결과를 확인합니다[딱히 그렇게 문제를 만든 이유는 없습니다...!]

    • @honeybear5547
      @honeybear5547 5 лет назад

      @@윤인성 감사합니다 방정식을 만든다고 문제에 쓰여있어서 식을 만드는건줄 알았는데 값넣어서 구해보는거였군요..!

  • @유지태-l9s
    @유지태-l9s 4 года назад

    pure function이 아닌건 뭔지 모르겠네요.. 같은변수를 넣었는데 결과가 다르게 나온다는게 가능한가요?

    • @윤인성
      @윤인성  4 года назад +4

      넵 'ㅁ' ...! 예를 들어 "날씨가져오기()"라는 함수가 있고, 이녀석이 외부(기상청 등)에서 데이터를 가져오게 된다면, 호출을 할 때마다 결과가 달라질 수 있습니다.
      파이썬은 거의 절차 지향적으로 개발을 해서 대부분 순수하게 개발을 하게 되는데, 다른 본격적인 객체지향 프로그래밍 언어들로 게임 같은 것들을 만들 때는 세계 안에서 각각의 객체들이 혼자 같은 것을 하는 것이 아니라, 서로 연동되어 상호작용을 하는 경우가 많은데, 이러한 때는 Pure Function이 아니게 됩니다(기본적으로 시간축이 함수 내부에서 끼게 되면 더 이상 Pure하지 않습니다).

    • @윤인성
      @윤인성  4 года назад +4

      위에 설명한 게임 관련 예로, 게임에서 인공지능이 대부분 그렇습니다. 예를 들어서
      - "적"이라는 객체가 있을 때
      - 매 시간(시점)마다 사용자 캐릭터가 어디 있는지 확인하고
      - 가까우면 근접 공격을 하고
      - 멀면 원거리 공격을 하는 등으로 작동한다면
      일반적으로 이 적을 움직이는 큰 함수는 Pure하지 않습니다.
      PS." 물론 데미지를 받았을 때 내 HP를 줄인다" 등은 고정적인 작용을 하는 작은 함수이므로 Pure합니다(항상 데미지 10주면, 데미지 10이 깍일 것이므로)(랜덤하게 깍여도 어쨌거나 일단 고정적인 작용을 하고 스스로 동작하니 Pure합니다).

  • @자카수-x3s
    @자카수-x3s 3 года назад

    확인문제에서
    return 변수 라는게 변수 *= i 로 돌아가라는 뜻인가요?

    • @윤인성
      @윤인성  3 года назад

      return은 함수를 호출한 부분으로 돌아가라는 의미입니다!!

  • @도리도리-h2v
    @도리도리-h2v 4 года назад

    파이참 사용중인데 왜 저는 return 뒤에 아무것도 없을 때 none 이라고 안 나올까요?

    • @윤인성
      @윤인성  4 года назад +1

      어떤 형태로 코드를 입력하신지 올려주실 수 있을까요?

  • @gban8083
    @gban8083 4 года назад

    선생님 책 p.224에 step=1 매개변수는 무엇을 뜻하는건가요?....ㅠㅠㅠ

    • @윤인성
      @윤인성  4 года назад +4

      그 매개 변수는 for 반복문 내부에서 사용되고 있습니다. for 반복문의 3번째 매개변수는
      1이면 0,1,2,3,4,5....
      2면 0,2,4,6,8...
      3이면 0,3,6,9....
      하고 증가하게 만듭니다!

  • @박재민-j3f
    @박재민-j3f 4 года назад

    6:00 에서 print(2*x +1) 이라고 해도 되는 건가요?

    • @윤인성
      @윤인성  4 года назад

      출력을 원하는 것이라면 그렇게 해도 되지만, 해당 예제는 함수를 만드는 예제이므로 함수를 사용한 것입니다.

  • @aaron-kim00
    @aaron-kim00 3 года назад

    Thanks

  • @123dasdc
    @123dasdc 2 года назад

    파이썬 독학중에 영상 접하게 되었는데 되게 깔끔하게 정리 잘해주시는것 같아요, 어떤 교재를 참조하시면서 하시나요?

    • @윤인성
      @윤인성  2 года назад

      책 이름이 "혼자 공부하는 파이썬"입니다!

    • @123dasdc
      @123dasdc 2 года назад

      @@윤인성 감사합니다! 출판년도와 버전은 어떤건가요?! 교재 보면서 맞춰 공부하고싶습니다!

    • @윤인성
      @윤인성  2 года назад

      @@123dasdc 2019년 6월에 출간된 것 하나입니다! 파이썬 버전은 3.7로 되어 있습니다. 이후 버전에 추가된 것 등은 채널에 요즘 올라오는 강의인 "파이썬 매일 코딩"을 참고해주세요!

    • @123dasdc
      @123dasdc 2 года назад

      @@윤인성 감사합니다!

  • @박재민-j3f
    @박재민-j3f 4 года назад

    근데 왜 리턴 다음에 어떤 값을 추가하면 함수를 print()를 이용해서 출력해야 하죠?

    • @윤인성
      @윤인성  4 года назад

      출력을 하고 싶을 때 그냥 print를 쓰는 것입니다.

  • @조형욱-q2r
    @조형욱-q2r 3 года назад +1

    여기부터 끝까직 설연휴동안 다 이해하고 들을수 있을까요?...

    • @윤인성
      @윤인성  3 года назад +1

      이미 개발을 많이 해보셨다면 가능하지만,
      일반적으로는 불가능합니다. 강의 전체가 대학교 1년 코스입니다.

  • @사랑해-i4y
    @사랑해-i4y 3 года назад

    아~~ 알듯 알듯 .... 100%로 이해가 되지는 않네요 이해 했다 싶어 강의 안보면서 되새겨 보면 모르겠고, 강의 들으면 또 이해되고, 아~~ 미치겠습니다 ㅠㅠ for 문과 range 에대한 이해도 부족으로 다시 for를 듣고 와야 겠습니다. ㅜㅜ

    • @윤인성
      @윤인성  3 года назад +1

      개인적으로는 50% 정도만 이해했다면, 일단 쭉 진행해보시고, 이후에 돌아와보시는 것을 추천합니다![반복문 함수가 책에서 제일 어렵고, 이후의 내용은 쉽다보니, 이후의 것 하고 돌아오면 부담이 좀 덜할 수 있습니다!]

    • @사랑해-i4y
      @사랑해-i4y 3 года назад

      @@윤인성 감사합니다 일단 전진 하겠습니다.

  • @highkick5315
    @highkick5315 4 года назад +1

    def 아래줄에 변수값을 설정하는데 그 의미가 잘 이해가안됩니다ㅠㅠ 조금만 도와주세요!!

    • @윤인성
      @윤인성  4 года назад +1

      함수 내부에서만 사용할 변수를 그냥 만들고 활용하는 것 뿐입니다. 어떤 부분이 이해가 안 되는지 조금 더 자세하게 설명해주실 수 있을까요?

    • @highkick5315
      @highkick5315 4 года назад

      @@윤인성 어떠한 변수를 만들고 이 변수를 리턴하는 형태로 코드를 작성한다고하셨는데 덧셈을 할 것이므로 덧셈에 영향을 주지 않는 초깃값으로 0을 초기화한다는 말씀이 어려워요.. 초기값이라는게.. ㅠㅠ 곱셈도 초깃값을 1로 하셨는데 이게 무슨 의미인지 모르겠습니다 주륵주륵 (머리가 멍청해서요 흑흑)

    • @highkick5315
      @highkick5315 4 года назад +1

      질문하고 보니까 이해됬씁니다 맙소사

    • @essaywon5035
      @essaywon5035 3 года назад

      @@highkick5315 귀엽고 똑또하시네요

  • @djswpqh3589
    @djswpqh3589 Год назад

    정말 감사합니다
    선생님 혹시 2번문제가 이해가 잘 안되요.... 알려주실수 있나요...

    • @윤인성
      @윤인성  Год назад

      """어떤 코드로 어떤 결과가 나올 것 같았는데,
      그렇게 나오지 않아서 이상하다"""를 알려주실 수 있을까요!
      그래야 어떤 부분이 이해가 되지 않는지 더 자세하게 답변드릴 수 있을 것 같습니다!
      추가적으로 혼자공부하는파이썬 강의는 현재 개정판이 훨씬 더 자세하게 나와 있습니다.
      강의 시간을 2배로 늘려 훨씬 자세하게 다루므로, 그쪽 강의를 보는걸 추천드립니다!

    • @djswpqh3589
      @djswpqh3589 Год назад

      @@윤인성 성생님 정말 감사합니다
      강의는 어디서 볼 수 있나요 ?
      구독해습니다

    • @윤인성
      @윤인성  Год назад

      유튜브 동영상 아래의 채널에 들어가시면, 가장 위 재생 목록에 있습니다!
      ruclips.net/user/c%EC%9C%A4%EC%9D%B8%EC%84%B1

  • @유진-w4f8r
    @유진-w4f8r 3 года назад

    return True 나 return False는 언제 사용하는 건가요?

    • @윤인성
      @윤인성  3 года назад

      상황에 따라서 맞게 쓰면 되는데, 예를 들어서
      def isList(매개변수):
      ..if type(매개변수) is list:
      ....return True
      ..else:
      ....return False
      PS. 물론 위의 코드는 더 짧게
      def isList(매개변수):
      ..return type(매개변수) is list
      로 만들 수도 있습니다.
      라고 만들면 어떤 변수가 리스트인지(이외에도 isDict, isNumber, isBoolean 등을 만들 수도 있습니다), 쉽게 확인할 수 있습니다.

    • @유진-w4f8r
      @유진-w4f8r 3 года назад

      @@윤인성 감사합니다! return True를 입력하면 출력되는 값이 참이라는 것을 표현한 건가요?

    • @윤인성
      @윤인성  3 года назад +1

      @@유진-w4f8r 출력이 아니라 리턴입니다!

  • @불티나-t4l
    @불티나-t4l 4 года назад

    모든강의를 몇번봐야 익숙해질까요 ㅠㅠ

    • @윤인성
      @윤인성  4 года назад

      현수 영어 학원 수업처럼 그냥 수업만으로는 익숙해지지지 않을 것이라 생각해요. 다양하게 써먹어봐야 익숙해집니다.

  • @seokmin7264
    @seokmin7264 3 года назад +1

    안녕하세요. 선생님!
    강의를 꾸준히 들으며 앞으로의 방향성에 대해 궁금한 점이 있어 댓글을 남깁니다.
    아래 주소는 얼마 전에 올라온 라인 신입 SW개발 공고입니다.
    careers.linecorp.com/ko/jobs/773
    공고를 보면 다음과 같은 직무(+우대사항)가 나와있습니다.
    LINE Messaging Platform Server
    : Java, Python, C, C++ 등의 프로그래밍 언어에 대한 활용 능력이 있는 분이면 좋습니다.
    Media Platform Backend Server
    : 최소한 한가지 프로그래밍 언어에 대한 활용 능력이 있는 분이면 좋습니다.
    아직은 충분한 준비가 되어있지 않아 지원을 못하지만 향후 파이썬이 숙달되고 나면 지원해볼 계획입니다.
    물론 입사하고나면 회사 시스템에 맞게 새로운 것을 또 배워야겠지만 파이썬이 숙달된 상태라면 업무를 수행하는데 지장이 없는지(SW개발 공고가 올라왔을 때 지원자로서 경쟁력을 갖추는 것지), 혹은 Java, C등 추가적으로 프로그래밍 언어를 배워야 하는 것인지 궁금합니다.
    기업 입장에선 지원자가 다룰줄 아는 프로그램이 많을수록 좋아하겠지만 비전공자로서 어느정도 준비를 해야할 지 가늠이 잡히지 않아 선생님께 도움을 요청합니다.
    이와 관련해 개인적인 견해를 말씀해주실 수 있습니까??
    감사합니다.

    • @윤인성
      @윤인성  3 года назад +1

      라인은 자바를 많이 사용하는 편입니다. 근데 기본적으로 라인 같은 it 대기업은 알고리즘 테스트로 1차에서 대부분 떨궈버려서 + 파이썬으로 알고리즘 시험 봐도 크게 문제 없기는 하며[파이썬에 쉬워서 속도가 중요하지 않다면 그냥 많이 쓰이고 신입 대부분이 둘 다 합니다] + 알고리즘 테스트 공부하시는 것을 추천드립니다![구글에 카카오톡 입사 시험 등을 치시면 어느 정도 난이도인지 확인해볼 수 있을 것입니다!]
      .
      저는 경력직으로 입사했었어서 그냥 대충 들어갔었는데
      신입은 면접에서는 포트폴리오도 좀 있어야 하는 것으로 압니다[요즘 경력자보다 신입들 실력이 워낙 짱짱해서]

    • @seokmin7264
      @seokmin7264 3 года назад

      @@윤인성 오,,자세하게 알려주셔서 감사합니다. 주변에 개발하는 친구가 한명도 없어서 궁금증을 해소해줄 수 있는 분이 선생님 밖에 안계시네요ㅠㅠ 정말 최곱니다. 너무 감사해요

  • @luvminnie1023
    @luvminnie1023 3 года назад

    a = input(print("start number 입력>"))
    b = input(print("end number 입력>"))
    start = int(a)
    end = int(b)
    def sum_all(start,end):
    x = 0
    for i in range(start,end+1):
    x+=i
    return x
    print(sum_all(start,end))
    ---------------------------------------------------------------------
    start number 입력>
    None234
    end number 입력>
    None2576
    3291915
    ----------------------------------------------------------
    코드를 실행하고 결과에 None이 리턴때문에 뜨는건가요? 왜뜨는지 자세히 알고 싶습니다
    또 None을 안띄우고 깔끔하게 코드수정 부탁드려봐도 될까요 항상감사합니다!

    • @윤인성
      @윤인성  3 года назад

      input(print())처럼 한 번에 입력하셔서 그렇습니다.
      책과 강의 그대로 따로따로
      print()
      a = input()
      라고 해주세요.