Python 3:基本算术运算

时间:2013-09-21 20:07:57

标签: python

我正在尝试编写一个程序来执行简单的算术运算。 我希望程序提示用户输入两个数字,然后计算五个 结果:

  • 总和
  • 差异
  • 产品
  • 根据整数
  • 的商
  • 浮点师。

现在,我记得在 Python 2 中,一般来说,字符串的raw_input和数字的输入。 但是,我只是学习 Python 3 ,输入默认是一个字符串,对于数字,我必须指定我希望拥有的数字类型:即int(input())或float(输入())。

所以,例如,让我们假设我想要完全具有此输出(使用输入4和2.5):

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

我会在 Python 2

中输入此代码
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 中完成它。这是我正在使用的(错误的)代码:

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)

显然,我收到一条错误消息,因为我的第二个输入(y)等于4.5,这是一个 float 而不是我输入定义的 int 。我没有费心为浮点商放置float(x)/ float(y),因为这也是矛盾的(因此是一个错误)。

我当然可以像这样放入float而不是int:

x = float(input("What is the first number? "))
y = float(input("What is the second number? "))

但是在这种情况下,我的产品会得到10.0(不是10),我的整数商是一个浮点数(1.6而不是2)

我发现在Python 3中我不能要求输入的通用类型号(无需指定它是浮点还是int),这真的令人沮丧。因此,我坚持这样简单的程序,并非常感谢任何解决方案/解释。

1 个答案:

答案 0 :(得分:3)

您可以尝试将输入解析为int,如果这不起作用,请将其视为float

def float_or_int(x):
    try:
        return int(x)
    except ValueError:
        return float(x)

x = float_or_int(input("What's x?"))
y = float_or_int(input("What's y?"))

要在Python 3中获得地板划分,您必须使用//运算符明确询问它:

print("The integer quotient is:", x//y)

请注意,这个“整数商”操作对浮点输入没有意义。