2017-02-19 19 views
0

매개 변수로 나눗셈 문제를 입력하려고하고 있는데 응답이 < 인 경우 항상 0이됩니다. 왜 이런 일이 발생하는지 알지만 어떻게해야하는지 잘 모르겠습니다. 이것을 고쳐서 십진수로 대답하십시오.입력 매개 변수로 나누기 0으로 나누기

def division(x): print x "x"는 1/2이며, 코드 인쇄 "0.5"

내가 JES 버전 5.020을 사용하고 있습니다. 모든 지침을 많이 주시면 감사하겠습니다!

+0

이의 논리를 추가'데프 divison()' – Juggernaut

+0

나도 몰라 무슨 뜻인지 . 내가 읽을 수있는 기사가 있습니까? –

답변

0

은 float() 함수를 사용합니다. 이 않는 모든 인쇄가 입력되면

5/2 = 2
플로트 (5)/플로트 (2) = 모든 2.5

+0

입력이 이미 분할되었다고 생각하기 때문에 이것을 float() 함수와 함께 사용할 수 없습니다. –

+0

함수에 넣을 숫자에 대해 float를 사용하십시오. ex x = float (x) def division (x) : print (x) – Phonzi

+0

기본적으로 숫자를 부동 소수점으로 변환 한 다음 함수에 넣습니다. – Phonzi

0

먼저 분할라는 기능을 아무런 문제가 없다 .

실제 문제가 생겼습니다. 당신은 파이썬 2를 사용하고 있습니다. 파이썬 2에서 정수의 나눗셈은 항상 정수입니다. 따라서 1/3 (0.33과 같아야 함)은 단지 0입니다.

해결 방법은 하나 이상의 숫자를 실수로 변환하는 것입니다. 이것은 다음과 같은 방법으로 수행 할 수 있습니다

  1. float(1)/3
  2. 1.0/3

그리고 숫자가 함수에 전달하기 전에 네, 현재 설정에서,이 부문이 발생합니다. 따라서 함수가 완벽하게 작동하면 입력을 변경해야합니다.

편집 :

은 입력을 변경하고 정수의 포인트 부문 부동 지원할 필요가없는 경우가 미래 모듈을 사용합니다. 이 코드의 시작 부분에이 줄을 추가 파이썬 2

에 파이썬의 일부 3 개 기능을 제공합니다 :

from __future__ import division 
+0

내가 할 수있는 일이 가능한 것일까 요? 나누기가 발생하기 전에는 입력을 부동 소수점 숫자로 변환 할 수 없습니다. 사용자가 매개 변수 "1/2"을 지정하고 함수가 0 대신 .5임을 알기를 원합니다. –

+0

가능하지만 왜 그렇게하고 싶은지 이해할 수 없습니다. 숫자 입력은 숫자 일 것이고 숫자의 분수 표현은 아닙니다. 최소한 그것이 프로그래밍 언어가 가정합니다. 사용자가 언어에서 지원하지 않는 표현으로 숫자를 입력 할 수있게하려면 문자열로 입력 한 다음 원하는대로 입력을 처리해야합니다. 하지만 운좋게도 작은 수정으로 원하는 결과를 얻을 수 있습니다. 내 편집 된 답변을 참조하십시오. – shish023

+0

그래,'from __future__ import division'을 시도했지만로드되지 않고 유효하지 않은 구문 오류가 발생합니다. 여기에서 어디로 가야할지 모르겠습니다. –