def say(a):
return 'hi'
a=4
b=say(a)
print(b)
return 'hi'
a=b
b=say(a)
print(b)
return 'hi'
a=4
b=say(a)
print(b)
이렇게 하면 hi 가 출력되는데
return 'hi'
a=b
b=say(a)
print(b)
이렇게하면
왜 오류만 나오는걸까요?
a매개변수에 b와 같은 문자는 안되고 숫자만 넣어야하는 문법 법칙이 있는건가요?
오류 메세지는 아래와 같이 나왔습니다
C:\anaconda3\python.exe C:/Users/.PyCharmCE2018.3/config/scratches/scratch.py
Traceback (most recent call last):
File "C:/Users/.PyCharmCE2018.3/config/scratches/scratch.py", line 3, in
a=b
NameError: name 'b' is not defined
Process finished with exit code 1
a와 b둘다 타입이 안정해짐 2번째껀 그러니까 당연 오류지.
타입이라는게 인수가 들어가야 한다는 뜻?
이거 알려면 탬플릿이나 타입 디덕션이라는 거를 좀 알아야되는데 c++에서 나온 개념이라 요즘 파이썬 친구들은 잘 모를수있을거같다
아예 감 안온것 같으니 정리해주면1. a = 4컴파일러는 a가 4임을 통해 a가 int라는 형식임을 deduction 한다.2. b = say(a)컴파일러는 함수 string say(int a) 라는 것을 만든 후b의 형식을 string으로 deduction한다.3. a = ba와 b타입 모두 정해져 있지 않기에 컴파일러는
type deduction에 실패하고 컴파일 실패한다.
감사합니다 파이썬은 타입이 생략되어있기에 say(a) 를 시작으로 치환해주는게 오류가 나온다는거였군요
아니 타입이 없는 b를 시작으로 치환해주는 문법이라 오류
a=b줄에서 b가 선언안된 심볼이라서 나오는 오류고 네 의도대로 코딩하려면 a='b'임
그러네요 감사합니다
혹시 코딩이 처음인 사람이 파이썬 코딩을 배우기에 '열혈강의 파이썬' 강의와 '점프투파이썬' 중 어떤게 더 나을지 혹시 아실까요?
(둘 다 본 적 없어서 잘 모르겠지만) 처음 시작하는 거면 둘다 큰차이는 없을거 같고 시작하기에는 적당해 보임 근데 그 책으로 끝내지 말고 모르는건 여기저기 물어보고 찾아보고 해야지
그렇군요 점프투파이썬 함수부분에서 몇일째 헤매고 있어서요 자세한 설명이 좀 부족한거 같기도한데 아주 기초적인 자세한 설명까지 해주는 파이썬 교재나 강의는 오히려 양에 질려버릴거 같기도하고 그런 교재는 없기도할거 같고,,.,그냥 점프투파이썬 양이 적당해보이니 이러저리 물어봐가면서 해야겠네요 코드도 직접 쳐넣고 실행시켜보고