2017-04-05 3 views
1

파이썬 함수에서 2 개의 변수를 정의하고이를 float으로 명시 적으로 정의하려고합니다. 그러나 함수 매개 변수에서 정의하려고하면 구문 오류가 발생합니다.Python 함수에서 명시 적으로 데이터 유형 정의

원하는 출력을 얻도록 도와주세요. 우리는 우리가 함께 번호를 추가하는 가정이 시점에서 z = float(x)+ float(y)

def add(float (x) , float (y)) : 
    z = (x+y) 
    return (print ("The required Sum is: ", z)) 

add (5, 8) 
+2

아니요, 당신은 파이썬에서 그런 일을 할 수 없습니다. 왜 그걸 원할거야? –

+0

[다른 언어에는 "변수", Python에는 "이름"] (http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#other-languages-have-variables)이 있습니다. 이 중요한 주제에 대해 더 자세히 알고 싶다면이 기사가 도움이 될 것입니다 : [베테랑 이름과 가치에 관한 사실과 신화] (http://nedbatchelder.com/text/names.html), SO 베테랑 Ned Batchelder . –

답변

0

변경 기능 z = float(x+y) 다음은

는 코드입니다.

우리는 항상 수레 작업을하고 있습니다. 인수를 함께 추가하기 전에 인수를 부동으로 변환하십시오. 이 작업은 float() 함수를 사용하여 수행 할 수 있습니다.

좋아, 이제 상관없이 들어온다는 플로트

def add(x, y): 
     z = float(x)+ float(y) 
     print "The required Sum is: {}".format(z) 
     return z 

    add (5, 8) 

그러나 무엇 & b는 문자열의 경우로 변환 있는지 확실하지 않습니다 보자? 그것을 돌볼 필요가 있습니다. 그런데

def add(x, y) 
    try: 
     a = float(x) 
     b = float(y) 
    except ValueError: 
     return None 
    else: 
     return True 

, 파이썬의 데이터 유형을 점검 할 필요가

def addSum(x,y): 
    return x+y 

addSum(2.2, 5.6) 
7.8 
addSum(float(2), float(5)) 
7.0 
addSum(2, 5) 
7 
addSum("Hello ", "World!!") 
'Hello World' 
3

파이썬을 훨씬 간단하게없는 것은 , 이름이 아닌 가지는 형태를 연결하는 강력한 형식의 동적 언어이다 . 발신자가 특정 유형의 데이터를 제공하도록하려면 해당 기능 내에서 명시적인 확인을 추가해야합니다.

최근에 type annotations이 언어에 추가되었습니다. 이제 인수 유형과 리턴 값을 포함하여 구문 론적으로 올바른 함수 스펙을 작성할 수 있습니다. 당신의 예제에 대한 주석 버전이 구문 만입니다 것을 생각

def add(x: float, y: float) -> float: 
    return x+y 

참고가 될 것입니다. 파이썬 인터프리터의 어떤 것도 이것에 해당하지 않는다. 그들이 아직 초기 단계 임에도 불구하고 목표를 달성하는 데 도움이되는 mypy과 같은 외부 도구가 있습니다.

관련 문제