간단한 산술 연산을 수행하는 프로그램을 작성하려고합니다. 나는 프로그램이이 개 번호를 사용자에게 메시지를 표시 한 다음 다섯 개 결과를 계산하려면 :파이썬 3 : 기본 산술 연산
- 합을
- 차이
- 제품
- 몫 양의 정수에 따라
- 부동 소수점 분할.
지금, 파이썬 2에서, 일반적으로 숫자 문자열과 입력이 raw_input을 것을 기억 해요. 그러나 나는 단지 Python 3을 배우고 있으며, 입력은 기본적으로 문자열이며 숫자에 대해 원하는 숫자의 유형을 지정해야합니다. 즉 int (input()) 또는 float (input()) .
What is the first number? 4
What is the second number? 2.5
The sum is 6.5
The difference is 1.5
The product is 8.0
The integer quotient is 2
The floating-point quotient is 1.6
내가 에이 코드를 입력합니다 파이썬 2 :
그래서, 예를 들어, 내가 (입력 4 및 2.5을 사용하여) 정확히 출력을 갖고 싶어한다고 가정하자
x=input ("What is the first number? ")
y=input ("What is the second number? ")
print "The sum is", x+y
print "The difference is", x-y
print "The product is", x*y
print "The integer quotient is", int(x)/int(y)
print "The floating-point quotient is", float(x)/float(y)
그러나 완료 할 수 없습니다. Python 3. 내 두 번째 입력 (Y)에 의해 정의 된 플로트 아닌 INT 4.5을, 동일하기 때문에이 오류 메시지가, 분명히
x = int(input("What is the first number? "))
y = int(input("What is the second number? "))
print("The sum is: ", x+y)
print("The difference is: ", x-y)
print("The product is: ", x*y)
print("The integer quotient is: ", x/y)
print("The floating-point quotient is: ", x/y)
: 이것은 내가 사용하고있는 (잘못된) 코드 내 입력. 부동 소수점 지수에 대해 float (x)/float (y)를 두는 것은 어렵지 않으므로 (모순) (따라서 오류). 대신 1.6 (
x = float(input("What is the first number? "))
y = float(input("What is the second number? "))
그러나이 경우, 내 제품 (안 10), 내 정수 지수 10.0을 얻을 것이다
는 부동입니다 :나는 물론 대신 이런 INT의 떠 넣어 수 of 2)
나는 파이썬 3에서 입력을위한 일반 타입 번호를 요구할 수 없다는 것을 정말로 안타깝게 느낀다 (float 또는 int인지 지정할 필요없이). 따라서, 나는 그러한 단순한 프로그램에 머물러있어 어떤 해법/설명을 크게 고맙게 생각할 것입니다.
'input()'은 "numbers in general"가 아니 었습니다. 파이썬 인터프리터에서 평가할 때 객체를 반환하는 것이 었습니다. 'else (2)'를'input()'프롬프트에 삽입하면 정수 '1'이 반환됩니다. – millimoose
그것은 또한 끔찍한 안전하지 않은 생각이었고 당신이 일반적으로 원하는 것이 아니 었습니다. 그래서 그것을 변경했습니다. – user2357112
기본적으로 변경 사항은 사용자가 예상하고있는 입력을 알고 있어야하거나 사용자가 직접 입력을 검사하고 직접 결정해야합니다. 'input()'에서 얻은 문자열을 여전히'eval()'할 수 있으며 재미있는 일을하지 못하도록 예방 조치를 취하십시오. 더 나은 방법은 ['ast.literal_eval()'] (http://docs.python.org/3.3/library/ast.html#ast.literal_eval)을 사용하는 것입니다. . – millimoose