10강까지 본 제 지식으로는 리턴문은 def add(a, b): sum = a + b return sum print(add(30, 12)) 이런식으로 코드가 있을때 프린트 함수부분에서 sum을 부른다고 이해 했고요 프린트를 함수 안에서 사용하면 따로 프린트라고 적지 않아도 되는 것 같네요.. ㅠㅠ
현재 러플이 아닌 구름ide로 리눅스환경에서 파이썬파일을 실행시키는 학생입니다. 제 나름대로 함수를 만들어서 응용해서 실행해 보았는데 오류가 떴습니다. def add(a): b = input("a와 더할 값 입력하시오 : ") c = a + b print(c) return(c) print(add(10)) 이렇게 작성하고 컴파일후 실행하였는데, a와 더할 값 입력하시오 : 5 Traceback (most recent call last): File "./c.py", line 11, in print(add(10)) File "./c.py", line 7, in add c = a + b TypeError: unsupported operand type(s) for +: 'int' and 'str' 이런 에러가 뜹니다. b에서 입력값을 받을때 문자형으로 받아져서 정수형인 a와 더하기가 안된다는 소리같은데... 러플이 아닌 실제 파이썬개발 환경에서는 변수type을 정의해주어야 하나요?
파이썬에서는 함수의 마무리를 return으로 확정하지 않는 경우에는
def minus(a,b):
sum = a - b
print(sum)
minus(10,20)
이렇게 쓰면 minus(10,20)도 minus(a,b)함수의 안에 들어가버려서 원하는 값이 나오지않습니다.
그러나 줄바꿈으로 minus를 앞으로 당겨서 이렇게 수정하면
def minus(a,b):
sum = a - b
print(sum)
minus(10,20)
정상적으로 함수가 돌아가는 것으로 보아, 파이썬의 사용자 정의 함수의 종료는 줄바꿈으로도 표현되는 것인가요?
c언어에서는 이렇지 않았던것 같은데.. 헷갈립니다.
Return을 하나 안하나 값이 똑같이 나오는데 return을 쓰는 이유가 뭔가요?
함수에서의 return과 print의 차이점은 뭔가요??
10강까지 본 제 지식으로는 리턴문은
def add(a, b):
sum = a + b
return sum
print(add(30, 12))
이런식으로 코드가 있을때
프린트 함수부분에서 sum을 부른다고 이해 했고요
프린트를 함수 안에서 사용하면 따로 프린트라고 적지 않아도 되는 것 같네요.. ㅠㅠ
return 은 말그대로 함수의 결과값을 도출해내도록 하는 것이고
print는 입력된 정수를 그대로 뽑아내도록 하는 것입니다.
궁금한게 있어요~
함수를 간결하게 하는게 깔끔해 보이긴한데..그게 왜 중요하다고 하셧는데, 왜 중요한가요?
간결하게 안 하면 뭐가 문제인가요?
나중에 프로그램이 커졌을 때, 코드가 스파게티처럼 알아보기 어렵고 유지보수가 어려워지는 문제가 발생할 수 있어요!
현재 러플이 아닌 구름ide로 리눅스환경에서 파이썬파일을 실행시키는 학생입니다.
제 나름대로 함수를 만들어서 응용해서 실행해 보았는데 오류가 떴습니다.
def add(a):
b = input("a와 더할 값 입력하시오 : ")
c = a + b
print(c)
return(c)
print(add(10))
이렇게 작성하고 컴파일후 실행하였는데,
a와 더할 값 입력하시오 : 5
Traceback (most recent call last):
File "./c.py", line 11, in
print(add(10))
File "./c.py", line 7, in add
c = a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'
이런 에러가 뜹니다. b에서 입력값을 받을때 문자형으로 받아져서 정수형인 a와 더하기가 안된다는 소리같은데...
러플이 아닌 실제 파이썬개발 환경에서는 변수type을 정의해주어야 하나요?
미리 정해진 정수와 input으로 입력받은 정수의 합을 출력하기 위해서는 어떻게 해야하나요?
맞습니다~ 입력 값을 받은 b는 기본적으로 '문자열' 자료형이 되기 때문에, 사칙연산에 사용하기 위해서는 이를 다시 '수' 자료형으로 바꾸어 주어야 합니다. 따라서 int(input("a와 더할 값 입력하시오 : ")) 이렇게 바꾸어 주시면, 오류가 없을 겁니다~