저도 아랫분들과 같이 매우 감사하게 생각합니다. 제가 여태 컴퓨터 관련 책을 끝까지 독파한 적이 없었는데 본 강의를 들으니 쉽게 진도가 나갑니다. 그 동안 컴퓨터 없이 눈으로 공부하다가 오늘부터 노트북으로 해봅니다. 전에는 컴퓨터로 같이 하다 보니 지쳐서 포기하였는데.. 이 강의를 눈으로 보다 보니 할 수 있겠다는 생각이 들었습니다. 특히 강의가 10분 내외로 짧아서 부담이 없습니다 저는 한번에 5개 정도 강의를 듣곤 했는데.. 이제 부터는 실습하면서 하고 있습니다. 매우 감사하게 생각합니다.
정말 편하게 들을 수 있는 강의 입니다. 소리 조금 줄이고 이어폰으로 들으면 약간 ASMR? 느낌도 나고 그럼에도 눈이 감기지 않는 이유는 고퀄의 자막 ex) 당당... 당당... 저 역시 강의 들으면서도 이게 무슨소리야 나올 정도로 당최 이해가 안가네요 (당!당!) 더불어 ASMR인데도 졸리지 않는 이유 - 책을 보면 쓸데없는 얘기들이 많아서 지루할 수 있겠... 중략... 그래서 책을 꼬~옥 한번 읽어 보시기 바랍니다. 쓸데 없지만 꼭 읽어보아라~ 프로그램 강의 인데도 가끔 어리 둥절하게 만드는 이야기등등 여튼 강의 감사합니다. 아직 이것 저것 모두 둘러 보진 못했지만 후에라도 따라 코딩하면서 조그만 프로그램 만들어가며 실전에 조금 더 가까운, 좀 더 많은 이야기 들려 주셨으면 하는 바람 입니다 - 감사합니다.
p219의 param_example.py에서 def test(a, b=10, c=100) : print(a+b+c) 여기서, 라인 5의 test(10,20,30)은 그 전까지의 설명에 의하면 이렇게 하면 안 되는 것 아닌지요? b와 c는 기본매개변수이므로 그 값을 바꾸려면 반드시 기본매개변수 이름을 지정해서 값을 입력해야 하지 않나 싶은데요. test(10, b=20, c=30)을 해봤는데 실행결과가 똑같이 60으로 나옵니다. 매개변수 이름을 지정해서 값을 입력하지 않아도 라인5처럼 결과는 마찬가지인 이유가 무엇인지요?
OKJH 기본 매개 변수는 그냥 그 위치에만 놓아주시면 들어갑니다. - 가변 매개변수와 기본 매개변수가 조합되어 있는 경우 - 기본 매개 변수 입력해야 하는 것이 너무 많아서 그냥 내가 원하는 것만 바로 입력하고 싶은 경우 에만 키워드 매개 변수 형태로 써주시면 됩니다.
@@윤인성 그러면 또 의아한 게 P.217에의 구문을 아래와 같이 일부 변형을 해봤습니다. def print_n_times(*values, n=2): for i in range(n): for value in values: print(value) print() print_n_times("안녕하세요", 3) ================================ 결과값========================= 안녕하세요 3 안녕하세요 3 ==================================== 위와 같이 결과가 나오는데 말씀해주신 것과 같이 '기본 매개 변수는 그 위치에 놓아주면 들어간다'고 한다면 n=3이 되어서 최종적인 결과값은 아래와 같이 나와야 하는 거 아닌가요? 안녕하세요 안녕하세요 안녕하세요
직접해보는 손코딩 219쪽 param_example.py에서 test(10,20,30) 일 때 왜 b랑 c 값에 20과 30이 들어가는지 알 수 있을까요?? 일반 매개변수 a에 10이 들어가고 b와 c는 위에 기본값으로 설정해놓은대로 10과 100이 들어가야 되는 거 아닌지 해서요!
P.217에의 구문을 아래와 같이 일부 변형을 해봤습니다. def print_n_times(*values, n=2): for i in range(n): for value in values: print(value) print() print_n_times("안녕하세요", 3) ================================ 결과값========================= 안녕하세요 3 안녕하세요 3 ==================================== 댓글중에 '기본 매개 변수는 그 위치에 놓아주면 들어간다'고 한다면 n=3이 되어서 최종적인 결과값은 아래와 같이 나와야 하는 거 아닌가요? 안녕하세요 안녕하세요 안녕하세요 아니면 '기본매개변수'와 '키워드 매개변수' 는 겉으로 볼 때는 같은 형태(A=00 형식)이나, 엄연히 다른 특성(기본매개변수는 해당 위치에 값만 넣어도 들어가고, 키워드매개변수는 A=00의 형태로 입력해야만 들어감(?))의 매개변수로 판단하여 1. 매개변수 자리에 '일반 매개변수' 또는 'A = 00 형태의 기본 매개변수'로만 구성된 경우에는 'A = 00'식의 형태를 '기본매개변수'로 생각해서, 함수 호출 시 'A=PP'식으로 다른 위치에 입력하거나, 해당 매개변수 자리에 PP 값을 입력해도 A라는 매개변수는 PP의 값을 갖게 되는 것으로 이해하고 2. 매개변수 자리에 '가변매개변수'와 'A = 00 형태의 기본 매개변수'로 구성된 경우는 'A = 00'식의 형태를 '키워드 매개변수'로 생각해서, 함수 호출 시 'A=PP'식으로 위치와 상관없이 입력해야만 A라는 매개변수는 PP의 값을 같게 되는 것으로 이해하면 되는 것일까요?
가변 매개변수가 앞에 와버리면, 단순한 지정 방법[지금처럼 2를 그냥 놓는 방법]으로는 그 뒤에 매개변수 값을 전달할 수 없습니다[가변 매개변수의 것으로 취급됩니다]. 참고적으로 이런 함수를 지금 원하는 형태로 실행하고 싶으시면, print_n_times("안녕하세요", n=3) 같은 형태로 실행해주셔야 합니다! [그래서 print("", "", "", end="")처럼 print 함수도 end를 키워드 매개변수로 집어 넣어주는 것입니다!]
print(value, ..., sep=' ', end=' ', 등등) 라고 정의가 되어있습니다. value는 가변변수, sep과 end는 기본변수인건 알겠습니다. 그런데 그 사이에 있는 ...은 뭔가요? 또한 value에 *value라고 정의가 안되어있어도 그냥 써보면서 이거는 가변변수겠네라고 예상하면 되는건가요?
def function(매개변수1, 매개변수2, 기본매개변수1=2, *가변매개변수, 기본매개변수2=1,): print(매개변수1, 매개변수2) print(가변매개변수) print(기본매개변수1, 기본매개변수2) function(1,2,3,4,5,6,7,8,9) 이런 코드에서 기본 매개변수가 가변매개변수 앞에 있으면 출력값이 1 2 (4, 5, 6, 7, 8, 9) 3 2 가 되는데 기본매개변수1에는 2 값을 줬는데 3이 출력되는 이유가 무엇인가요?
안녕하세요, 두 가지 질문이 있습니다. Q1. 가변매개변수를 '*'로 구분하는데, def function(*가변매개변수): print(가변매개변수) function(1, 2, 3) 라고 작성하면 (1, 2, 3) 를 출력하고, def function(*가변매개변수): print(*가변매개변수) function(1, 2, 3) 라고 작성하면 1 2 3 를 출력하는데, 둘이 어떤 차이점이 있는 건가요? Q2. 키워드 매개변수는 비파괴적이라고 말할 수 있나요?
1. 리스트 등의 반복 가능한 객체 앞에 *를 붙이시면 이건 언 패킹 연산자라는 다른 연산자로 활용됩니다. 많이 쓰이지는 않는데 test(1,2,3)으로 호출할 수 있는 아이가 있을 때 이를 test(*[1,2,3])으로 호출하면 리스트의 요소가 각각의 매개변수로 나뉘어 들어갑니다. [지금처럼 그냥 출력하시면 각각을 띄어쓰기로 구분해서 출력합니다] 2. 파괴적 비파괴적은 함수 내부에서 무슨 처리를 하냐에 따라서 구분되는 것이라, 매개변수로 어떤 형태를 쓰느냐는 관계가 없습니다![파괴적일 수도 있고, 비파괴적일 수도 있습니다].
파이썬 버전을 확인해보셔야 할 것 같습니다. python 명령어를 치면 → 인터랙티브 셸이 뜰 때 위에 버전이 적혀있습니다. 혹시 2.X버전이 아닌지 확인해주세요! 원래 파이썬은 3버전부터 전세계 모든 언어가 되는데 지금 오류를 보면 내부적으로 뭔가가 꼬여서 그런 것 같기도 합니다 😂 한글로 코딩하는 경우는 사실 극히 드물어서 → 버전만 맞는다면 일단 영어 매개변수로 진행하셔도 괜찮습니다!
@@hyeonhoonlee4520 소스코드는 이미 파이썬을 설치할 때 됩니다. 자동완성기능이 즉시 작동하는 것이 아니라 대기해보시거나, 파이썬 확장 프로그램을 재설치 해보시거나 해도 괜찮을 것 같습니다. 환경 문제는 정확하게 답변드리기가 힘들어서(대부분 되는데 일부 안 되는 경우 무엇이 문제인지 알기 힘들다보니), 확실하게 답변 못드리는 점은 양해 부탁드립니다.
안녕하세요. p219 키워드 매개변수 예제 문제에서 (*values, n=2)를 (*values, n) 로 변경하였더니 결과가 동일하게 출력되어 기본 매개변수가 가변 매개변수보다 뒤에 있어도 키워드 매개변수가 우선순위가 더 높다고 생각되어 키워드>가변>기본 이라고 이해했습니다. 그러나 (n, *values), (n=3, "1","2") 조합으로 실행했을땐 keyword argument 에러가 발생합니다. 제가 생각한 우선순위에 오류가 있나요? 에러 발생원인은 무엇인가요?
키워드 매개변수를 __키워드를 넣어 호출하는 형태로 사용하실 때[현재 보여주신 것에서 "n=3" 같은 형태]__는 반드시 함수의 끝 부분에 모아서 사용해주셔야 합니다. 따라서 앞에 넣으면 "위치가 뒤에 따라와야 한다"라는 오류가 발생합니다. 키워드 매개변수라는 녀석이 특이하게 나중에 추가된 문법이라, 이상한 예외가 굉장히 많은 편입니다 'ㅁ' , 그냥 오류가 발생할 때는 "하아 얘네 왜 이렇게 만들었어"하면서 상콤하게 그러려니 하고 넘어가주셔도 괜찮을 것 같습니다 'ㅁ' ...!!! + 추가: def print_n_times(*values, n):으로 변경한 뒤에 print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 2)으로도 호출해보시면 좋을 것 같습니다 'ㅁ' ...!
저도 아랫분들과 같이 매우 감사하게 생각합니다. 제가 여태 컴퓨터 관련 책을 끝까지 독파한 적이 없었는데 본 강의를 들으니 쉽게 진도가 나갑니다. 그 동안 컴퓨터 없이 눈으로 공부하다가 오늘부터 노트북으로 해봅니다. 전에는 컴퓨터로 같이 하다 보니 지쳐서 포기하였는데.. 이 강의를 눈으로 보다 보니 할 수 있겠다는 생각이 들었습니다. 특히 강의가 10분 내외로 짧아서 부담이 없습니다 저는 한번에 5개 정도 강의를 듣곤 했는데.. 이제 부터는 실습하면서 하고 있습니다. 매우 감사하게 생각합니다.
안경 쓰신건 지적으로 생기셨고, 안경 벗으신 건 잘생기셨네요..! 이거 구버전 다 듣고 새롭게 찍으신 신버전으로 복습하려구요 감사합니다.!!
수고 하셨습니다.^^
언제 따라가나 했는데
벌써 여기까지 왔네요
너무 쉽게 강의 해 주셔서
이해 하기가 좋습니다.
감사합니다.^^
10년된 개발자인데도 파이썬을 모르니 배워야 하는군요. 너무 좋은 강의 감사합니다.
3번반복하고오겠습니다
뇌가 외우기를 거부할 뻔 했는데 지금까지 공부했으니 포기 않고 끝까지 가보겠습니다! 감사합니다!
친절히 설명해 주신덕분에 독학으로 한달은 족히 걸릴 내용을 한주도 안되어 공부 하고 있습니다.
감사합니다.
정말 편하게 들을 수 있는 강의 입니다.
소리 조금 줄이고 이어폰으로 들으면 약간 ASMR? 느낌도 나고
그럼에도 눈이 감기지 않는 이유는 고퀄의 자막 ex) 당당... 당당...
저 역시 강의 들으면서도 이게 무슨소리야 나올 정도로 당최 이해가 안가네요 (당!당!)
더불어 ASMR인데도 졸리지 않는 이유
- 책을 보면 쓸데없는 얘기들이 많아서 지루할 수 있겠... 중략... 그래서 책을 꼬~옥 한번 읽어 보시기 바랍니다.
쓸데 없지만 꼭 읽어보아라~ 프로그램 강의 인데도 가끔 어리 둥절하게 만드는 이야기등등
여튼 강의 감사합니다. 아직 이것 저것 모두 둘러 보진 못했지만 후에라도
따라 코딩하면서 조그만 프로그램 만들어가며 실전에 조금 더 가까운, 좀 더 많은 이야기 들려 주셨으면
하는 바람 입니다
- 감사합니다.
print 쓰면 자동 줄바꿈 되는게 기본 매개변수가 줄바꿈이어서 였구나! 개념팍팍잡힙니다.
2:36에서, 일반매개변수, 기본매개변수와 달리 가변매개변수는 소괄호()에 묶인채로 출력되는 이유는 무엇인가요?
여러 개의 자료형이 함께 묶여있는 튜플이기 때문입니다. 튜플은 강의 찍은지가 좀 되서 잘 기억이 안 나지만, 아마 곧 이어지는 강의에서 다룹니다.
@@윤인성 감사합니다:)
감사합니다.
감사합니다
명강의 감사합니다
p219의 param_example.py에서
def test(a, b=10, c=100) :
print(a+b+c)
여기서,
라인 5의 test(10,20,30)은 그 전까지의 설명에 의하면 이렇게 하면 안 되는 것 아닌지요?
b와 c는 기본매개변수이므로 그 값을 바꾸려면 반드시 기본매개변수 이름을 지정해서 값을 입력해야 하지 않나 싶은데요.
test(10, b=20, c=30)을 해봤는데
실행결과가 똑같이 60으로 나옵니다.
매개변수 이름을 지정해서 값을 입력하지 않아도 라인5처럼 결과는 마찬가지인 이유가 무엇인지요?
OKJH 기본 매개 변수는 그냥 그 위치에만 놓아주시면 들어갑니다.
- 가변 매개변수와 기본 매개변수가 조합되어 있는 경우
- 기본 매개 변수 입력해야 하는 것이 너무 많아서 그냥 내가 원하는 것만 바로 입력하고 싶은 경우
에만 키워드 매개 변수 형태로 써주시면 됩니다.
@@윤인성 감사합니다.
@@윤인성 저도 똑같은 질문 하려고 했는데요 결국 test(10, 20,30) 과 test(10, b=20, c=30)과 값이 같네요 저는 처음에 test(10,20,30)은 일반매개변수 a에 값이 너무 많아서 오류가 생긴다고 생각했습니다
@@jaehyuckyeo5618 저도 똑같은 질문ㅋㅋㅋㅋㅋ 감사해요
@@윤인성 그러면 또 의아한 게 P.217에의 구문을 아래와 같이 일부 변형을 해봤습니다.
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", 3)
================================ 결과값=========================
안녕하세요
3
안녕하세요
3
====================================
위와 같이 결과가 나오는데
말씀해주신 것과 같이 '기본 매개 변수는 그 위치에 놓아주면 들어간다'고 한다면
n=3이 되어서 최종적인 결과값은 아래와 같이 나와야 하는 거 아닌가요?
안녕하세요
안녕하세요
안녕하세요
감사합니다. ^^
직접해보는 손코딩 219쪽 param_example.py에서 test(10,20,30) 일 때 왜 b랑 c 값에 20과 30이 들어가는지 알 수 있을까요?? 일반 매개변수 a에 10이 들어가고 b와 c는 위에 기본값으로 설정해놓은대로 10과 100이 들어가야 되는 거 아닌지 해서요!
일반 매개변수 뒤에 값은 저절로 기본 매개변수 값에 들어가는 건가요??
기본 매개변수에 값을 지정해버리시면, 그 값이 들어갑니다(입력 안 할 때 기본 매개변수 값이 들어갑니다).
P.217에의 구문을 아래와 같이 일부 변형을 해봤습니다.
def print_n_times(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", 3)
================================ 결과값=========================
안녕하세요
3
안녕하세요
3
====================================
댓글중에 '기본 매개 변수는 그 위치에 놓아주면 들어간다'고 한다면
n=3이 되어서 최종적인 결과값은 아래와 같이 나와야 하는 거 아닌가요?
안녕하세요
안녕하세요
안녕하세요
아니면 '기본매개변수'와 '키워드 매개변수' 는 겉으로 볼 때는 같은 형태(A=00 형식)이나,
엄연히 다른 특성(기본매개변수는 해당 위치에 값만 넣어도 들어가고, 키워드매개변수는 A=00의 형태로 입력해야만 들어감(?))의 매개변수로 판단하여
1. 매개변수 자리에 '일반 매개변수' 또는 'A = 00 형태의 기본 매개변수'로만 구성된 경우에는 'A = 00'식의 형태를 '기본매개변수'로 생각해서,
함수 호출 시 'A=PP'식으로 다른 위치에 입력하거나, 해당 매개변수 자리에 PP 값을 입력해도 A라는 매개변수는 PP의 값을 갖게 되는 것으로 이해하고
2. 매개변수 자리에 '가변매개변수'와 'A = 00 형태의 기본 매개변수'로 구성된 경우는 'A = 00'식의 형태를 '키워드 매개변수'로 생각해서,
함수 호출 시 'A=PP'식으로 위치와 상관없이 입력해야만 A라는 매개변수는 PP의 값을 같게 되는 것으로 이해하면 되는 것일까요?
가변 매개변수가 앞에 와버리면, 단순한 지정 방법[지금처럼 2를 그냥 놓는 방법]으로는 그 뒤에 매개변수 값을 전달할 수 없습니다[가변 매개변수의 것으로 취급됩니다].
참고적으로 이런 함수를 지금 원하는 형태로 실행하고 싶으시면,
print_n_times("안녕하세요", n=3)
같은 형태로 실행해주셔야 합니다!
[그래서 print("", "", "", end="")처럼 print 함수도 end를 키워드 매개변수로 집어 넣어주는 것입니다!]
책 219p에 여러함수 호출형태라는 칸에 기본형태에 10 20 30 이 들어가 기본매개변수의 값을 바꾸어 줬는데 2:22 에서 설명해주실때는 바뀌지 않는이유가 원래는 바껴야하는데 가변매개변수가 앞에서 가로막고 있기 때문에 그런가요?
넵! 그렇습니다!
def print_n_times(values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3)
책에 있는 예제를 입력해보니...
Traceback (most recent call last):
File "c:\Users\Administrator\Desktop\Python\0609-02.py", line 7, in
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3)
TypeError: print_n_times() got multiple values for argument 'n'
라고 에러가 뜨는데, 이게 무슨 말일까요 ㅠㅠ
함수 선언부[def 뒤]에 매개변수를 잘못 입력하셨습니다! values를 가변매개변수로 입력해주세요!
@@윤인성 아 되네요! 감사합니다!
print(value, ..., sep=' ', end='
', 등등)
라고 정의가 되어있습니다.
value는 가변변수, sep과 end는 기본변수인건 알겠습니다. 그런데 그 사이에 있는 ...은 뭔가요? 또한 value에 *value라고 정의가 안되어있어도 그냥 써보면서 이거는 가변변수겠네라고 예상하면 되는건가요?
넵! 설명으로는 저렇게 쓰는 경우가 일반적입니다!
@@윤인성 ...은 어떤 뜻인가요?
@@hello_sungwon 생략 기호로 거기에 가변 매개변수 넣을 수 있다는 의미입니다
def function(매개변수1, 매개변수2, 기본매개변수1=2, *가변매개변수, 기본매개변수2=1,):
print(매개변수1, 매개변수2)
print(가변매개변수)
print(기본매개변수1, 기본매개변수2)
function(1,2,3,4,5,6,7,8,9)
이런 코드에서 기본 매개변수가 가변매개변수 앞에 있으면 출력값이
1 2
(4, 5, 6, 7, 8, 9)
3 2
가 되는데 기본매개변수1에는 2 값을 줬는데 3이 출력되는 이유가 무엇인가요?
2를 주어도,
function(1, 2, 3을 할 때 그냥 3이 들어갑니다.
가변매개변수 출력은 튜플형태로 출력됐는데.. 이유가 뭔가요??
yisangwoo1972 그냥 "그렇게 설계되어있기 때문입니다"이외에는 드릴 수 있는 말이 없을 것 같습니다 @_@ ...!
윤인성 답변 감사드립니다.. 그냥 외워야 할 부분이군요^^
질문있습니다! 강의에서처럼 print()함수의 자동 완성 기능이 나오면 좋겠는데 제 visual studio로 코딩을 하면 선생님처럼 저런 기능이 나오지 않는데 자동 완성 기능을 사용하려면 어떻게 해야하나요??
ps. 강의 너무 잘보고 있습니다 감사합니다..!
Visual Studio Code가 이 기능을 처음 불러올 때 시간이 약간 걸립니다.
다른 분들도 "강의를 듣다보니 어느 순간부터 되었다"라는 경우가 많아서
일단 그냥 진행해보시는 것을 추천드립니다!
@@윤인성 알겠습니다 감사합니다!!
안녕하세요, 두 가지 질문이 있습니다.
Q1. 가변매개변수를 '*'로 구분하는데,
def function(*가변매개변수):
print(가변매개변수)
function(1, 2, 3)
라고 작성하면
(1, 2, 3)
를 출력하고,
def function(*가변매개변수):
print(*가변매개변수)
function(1, 2, 3)
라고 작성하면
1 2 3
를 출력하는데, 둘이 어떤 차이점이 있는 건가요?
Q2. 키워드 매개변수는 비파괴적이라고 말할 수 있나요?
1. 리스트 등의 반복 가능한 객체 앞에 *를 붙이시면
이건 언 패킹 연산자라는 다른 연산자로 활용됩니다. 많이 쓰이지는 않는데
test(1,2,3)으로 호출할 수 있는 아이가 있을 때
이를 test(*[1,2,3])으로 호출하면 리스트의 요소가 각각의 매개변수로 나뉘어 들어갑니다.
[지금처럼 그냥 출력하시면 각각을 띄어쓰기로 구분해서 출력합니다]
2. 파괴적 비파괴적은 함수 내부에서 무슨 처리를 하냐에 따라서 구분되는 것이라,
매개변수로 어떤 형태를 쓰느냐는 관계가 없습니다![파괴적일 수도 있고, 비파괴적일 수도 있습니다].
질문있습니다! 227pg 3번 문항의 객관식 4번이 왜 오류가 안나는지 이해가 되지 않습니다. 기본매개변수-가변매개변수로 함수가 정의되어있는데요..?(저는 일반-가변-기본매개변수 순으로 변수가 정의되어야한다고 알고 있습니다)
저도 왜 이런 식으로 언어가 설계된 것인지 이해는 안 되지만,
앞의 기본 매개변수가 의미만 없어진 것이고 + 실행에는 아무 문제 없습니다!
지금 말씀해주신 순서로 쓰는 것이 일반적입니다!
[한 번 코드를 입력해보자! 라는 느낌의 문제로 생각해주시면 좋을 것 같습니다]
그냥 매개 변수를 아주 간단하게 정리하면
함수 외부에서 함수 내부로 값을 전달하는 것으로만 정리해도 될까요.
넵! 정확합니다!
파이참으로 코딩해보고있는데 함수선언할때 매개변수이름을 영어로 하면 실행이되고 한글로 하면 실행이안되는데 원래이런건가요??
선생님이 한거랑 똑같이 코딩해보았는데
ModuleNotfoundError : No module named 'unicodedata' 라고 오류명이 떠서 매개변수이름을 영어로 바꾸었는데 실행이되었습니다
파이썬 버전을 확인해보셔야 할 것 같습니다.
python 명령어를 치면 → 인터랙티브 셸이 뜰 때 위에 버전이 적혀있습니다. 혹시 2.X버전이 아닌지 확인해주세요!
원래 파이썬은 3버전부터 전세계 모든 언어가 되는데 지금 오류를 보면 내부적으로 뭔가가 꼬여서 그런 것 같기도 합니다 😂
한글로 코딩하는 경우는 사실 극히 드물어서
→ 버전만 맞는다면 일단 영어 매개변수로 진행하셔도 괜찮습니다!
버전은 3.9입니다 ㅜ 일단 영어로 진행해야될것같네요 감사합니다!!!!
가변매개변수 리턴값이 ()에 넣어져 있는데요 신경 안써도 되나요??
정확하게 어떤 코드이신지 알려주실 수 있을까요!
라이브러리에 있는 함수를 사용하려면, 추가적인 다운로드가 필요한가요?
print()함수처럼 비주얼스튜디오코드에서 "print("만 쳐도 매개변수에 대한 설명이 나오는데,
라이브러리에 있는 함수를 입력해보아도 매개변수에 대한 설명이 나오지 않네요...;;
라이브러리에 있는 함수가 어떤 함수를 의미하는지 더 자세하게 알려주실 수 있을까요?
일단 비주얼 스튜디오 코드가 자동 완성 기능을 위해 데이터를 읽을 때 시간이 걸리므로 조금 대기하면서 해보시기 바랍니다.
@@윤인성 예를들어, docs.python.org/3/library/random.html 여기 있는 첫함수인, random.seed(를 입력해도 자동 완성 기능이 나오지 않습니다. 혹시, 이 페이지의 맨 위에 있는 Source code란걸 다운 받아야하나요?
@@hyeonhoonlee4520 소스코드는 이미 파이썬을 설치할 때 됩니다. 자동완성기능이 즉시 작동하는 것이 아니라 대기해보시거나, 파이썬 확장 프로그램을 재설치 해보시거나 해도 괜찮을 것 같습니다. 환경 문제는 정확하게 답변드리기가 힘들어서(대부분 되는데 일부 안 되는 경우 무엇이 문제인지 알기 힘들다보니), 확실하게 답변 못드리는 점은 양해 부탁드립니다.
윤인성 더 진도를 나가보니, p261의 예제처럼,
"import random"을 입력하고, 그 다음 줄에 "random.seed("를 입력하니 자동완성이 되네요;;
import라는게 무언갈 불러오는 건가 봅니다...?
@@hyeonhoonlee4520 앗 안 읽으셨었군요 @_@ ...! 당연히 읽으셨을 것이라 생각했는데.... 일단 진도대로 쭉 나가시는 것을 추천드립니다.
안녕하세요. p219 키워드 매개변수 예제 문제에서 (*values, n=2)를 (*values, n) 로 변경하였더니 결과가 동일하게 출력되어 기본 매개변수가 가변 매개변수보다 뒤에 있어도 키워드 매개변수가 우선순위가 더 높다고 생각되어 키워드>가변>기본 이라고 이해했습니다. 그러나 (n, *values), (n=3, "1","2") 조합으로 실행했을땐 keyword argument 에러가 발생합니다. 제가 생각한 우선순위에 오류가 있나요? 에러 발생원인은 무엇인가요?
키워드 매개변수를 __키워드를 넣어 호출하는 형태로 사용하실 때[현재 보여주신 것에서 "n=3" 같은 형태]__는 반드시 함수의 끝 부분에 모아서 사용해주셔야 합니다. 따라서 앞에 넣으면 "위치가 뒤에 따라와야 한다"라는 오류가 발생합니다.
키워드 매개변수라는 녀석이 특이하게 나중에 추가된 문법이라, 이상한 예외가 굉장히 많은 편입니다 'ㅁ' , 그냥 오류가 발생할 때는 "하아 얘네 왜 이렇게 만들었어"하면서 상콤하게 그러려니 하고 넘어가주셔도 괜찮을 것 같습니다 'ㅁ' ...!!!
+ 추가: def print_n_times(*values, n):으로 변경한 뒤에 print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 2)으로도 호출해보시면 좋을 것 같습니다 'ㅁ' ...!
영상에 나오는 예시에서 가변매개변수를 출력하는 부분에는 결과가 ()괄호로 묶여있는데 이것은 왜 그런건가요??
튜플이라서 그렇습니다! 튜플은 둥근 괄호로 감싸진 것으로 보입니다!
@@윤인성 항상 친절한 답변 감사합니다!!!