2017-12-31 56 views
-1

이것은 기본적인 질문처럼 보일 수 있지만 혼란 스럽습니다. 다음 두 예제는 비슷한 방식으로 작동합니다 (입력이 같다고 가정). 사용자에게 숫자를 묻는 메시지를 표시하고 숫자에 5를 곱한 다음 대답을 반환합니다.입력 대 입력 함수 - 입력이없는 함수 - Python

제 질문은, 왜 그리고 언제 처음 두 번째 예제를 선택하겠습니까? (그 반대). 좀 더 일반적인 용어로, 왜 함수 내에서 인수가 주어지는 것과는 반대로 인수가있는 함수가 있어야합니다. 그 말이 맞는다면. 이것이 내가 사과하는 나쁜 예일 경우, 나는이 문제를 둘러싸고 머리를 감싸려고 노력하고 있습니다.

감사

인수 :

def func(): 
    x = int(input('Enter a number:')) 
    y = x * 5 
    print(y) 

func() 

한 인수 :

def func_2(y): 
    x = int(input('Enter a number:')) 
    y = x * 5 
    return y 

print(func_2(6)) 
+2

두 번째 버전은 의미가 없습니다. 인수'y'가 있지만 함수에서 사용되지 않았습니다. – abccd

+1

두 번째 예제에서'y'는 아무 가치가 없습니다. 결국 y = x * 5에서'y'를 계산하게됩니다. 첫 번째 예가 더 정확합니다. –

+0

유일한 다른 주목할만한 차이점은 print 문이 전자의 함수 안에 있다는 것입니다.'print'는 후자에 대한 함수의 반환 값을 출력합니다. – abccd

답변

1

좋은 질문!

기본적으로 두 함수의 차이점은 첫 번째 함수가 사용자에게 계산과 표시를 처리한다는 것입니다. 두 번째 함수는 계산 만 처리합니다. (정정 번째 함수는 사용자 입력을 수신 처리, I는 변경 것 ... 같은 :) 제 기능 사용

def func_2(x): 
    y = x * 5 
return y 

x = int(input('Enter a number:')) 
print(func_2(x)) 

이유 :

첫째 이유 : 재사용

함수에서 여러 번 값을 가져와 결과를 항상 인쇄하고 싶지는 않다고 가정 해 봅시다. 결과가 사용자에게 인쇄되는 경우도 있지만, 결과가 파일로 출력되는 경우도 있습니다. 계산과 표현을 분리하면 나중에 시간을 절약 할 수 있습니다.

두 번째 이유 : 재귀

당신은 재귀 함수를 호출 할 수 있습니다. 만 계산에 대한 귀하의 기능을 유지하는 것은이 같은 일을 수행 할 수 있습니다 - 여기 계승을 계산하는 함수를 만드는 예입니다

def factorial(n): 
    if n == 1: 
     return 1 
    else: 
     return n * factorial(n-1) 

(구글은 "재귀"그것은 멋지다)

세 번째 이유는 : 좋은 연습

내 의견의 종류,하지만 사람들이 동의 할 것 같아요. 코드의 여러 측면을 구분할 수있게되면 문제 해결, 재사용 및 다른 사람들이 쉽게 읽을 수 있습니다 ... 그리고 아마도 ...

+0

또한 추가로, 나는 사용자로부터의 입력을 받아들이는 것을 분리 할 것이다. – varlogtim