2012-11-26 2 views
0

저는 python을 배우고 있습니다.이 코드가 정확히 무엇을하는지 이해할 수 없었습니다. 예기치 않은 결과를주었습니다. 누구든지 이걸 설명해 주시겠습니까?python 유용한 함수 설명

#! /usr/bin/python 


dx = int(raw_input("ENTER THE VALUE dx:")) 
dy = int(raw_input("ENTER THE VALUE dy:")) 

def distance(x1, y1, x2, y2): 
    dx = x2 - x1 
    dy = y2 - y1 
    print "dx is", dx 
    print "dy is", dy 
    return 0.0 

print distance 

감사합니다.

+1

잘못되었거나 불완전합니다. 함수의 인쇄물에는 매개 변수 (...)가 있어야하며 x와 y는 어디에서 가져오고 있습니까? –

답변

1

절대로 함수를 호출하지 않기 때문에 아무 것도하지 않습니다. 그것은 단지 유용하지 않은 함수 정의의 메모리 주소를 출력합니다.

print distance()을 작성했다면 dx 및 dy를 인쇄하지만 0.0을 인쇄 할 수도 있습니다. 그 이유는 함수에서 반환하는 것이기 때문입니다.

0

무엇을 기대합니까?

이 함수를 호출하는 것을 의미합니다. print distance(x1, x2, y1, y2)이지만, 이는 반환하는 값이므로 0.0이됩니다. 또한 사용자에게 답변을 묻는 것 (예 : dxdy) 인 반면 기능에는 x1, x2, y1, y2이 필요합니다.

def distance(x1, y1, x2, y2): 
    dx = x2 - x1 
    dy = y2 - y1 
    print "dx is", dx 
    print "dy is", dy 

x1 = int(raw_input("ENTER THE VALUE x1:")) 
x2 = int(raw_input("ENTER THE VALUE x2:")) 
y1 = int(raw_input("ENTER THE VALUE y1:")) 
y2 = int(raw_input("ENTER THE VALUE y2:")) 

distance(x1, x2, y1, y2) 
0

음, 코드의 첫 번째 두 라인은 두 개의 값, dxdy 읽기 : 정확히 무엇을 기대 모르고, 여기 당신이 원하는 것을 할 수있는 몇 가지 코드입니다. 다음으로 x1, y1, x2, y2의 두 점의 거리를 계산 (아마도 인쇄 및 반환)하는 것이 목적이지만 그 대신 항상 0.0을 반환하는 함수를 정의합니다.

마지막 문장에서는 아마도 괄호가 빠졌을 것입니다. 왜냐하면 print distance은 함수 객체에 대한 정보를 인쇄하기 때문에 <function distance at 0xZZZZZZZZZ>과 같습니다.

유익한 함수는 값을 반환 하나, 그래서 아마, 당신이하고 싶었던 것은 다음과 같다 : I는 입력 변수의 이름을 변경

px1 = int(raw_input("X1:")) 
py1 = int(raw_input("Y1:")) 
px2 = int(raw_input("X2:")) 
py2 = int(raw_input("Y2:")) 

def distance(x1,y1,x2,y2): 
    dx = x2 - x1 
    dy = y2 - y1 
    return dx, dy # return a tuple with the first element being dx and the second dy 

print distance(px1,py1,px2,py2) 

어떤 함수가하는 일은 더 분명하다 있도록 .

짧은 답변 : "fruitful"함수는 사용할 수있는 값을 반환합니다.