如何在不知道其值的情况下减去两个整数?

时间:2018-03-28 23:07:39

标签: python python-3.x

所以我正在做这个Python练习,方向是:定义一个函数调用subtractNumber(x,y),它接受两个数字并返回两个数字的差异。

实施例

>>> subtractNumber(20, 7)
13
>>> subtractNumber(-20, -4)
-16
>>> subtractNumber(-2, -2)
0

我的代码

def subtractNumber(x, y): 
    subtraction = int(x) - int(y)
    return subtraction
subtractNumber('x','y')

我收到错误:

Traceback (most recent call last):
  File "D:\Python Exercises\Temp_Learning\Python Practice9.py", line 4, in <module>
    subtractNumber('x','y')
  File "D:\Python Exercises\Temp_Learning\Python Practice9.py", line 2, in subtractNumber
    subtraction = int(x) - int(y)
ValueError: invalid literal for int() with base 10: 'x'

我仍然不明白我哪里出错了。有谁可以帮助我吗?感谢。

3 个答案:

答案 0 :(得分:0)

int用于将某些内容转换为整数。

x = '5'
y = int(x)

会导致y的值为5

int(x)返回x=5

5。但是,您已将角色'x'发送至intint不知道如何将其转换为整数。

这应该对你有用

In [3]: def subtractNumber(x, y):
   ...:     return (int(x) - int(y))
   ...:

In [4]: subtractNumber(5, -6)
Out[4]: 11

In [5]: subtractNumber(5, 6)
Out[5]: -1

In [6]: subtractNumber(-5, 6)
Out[6]: -11

In [7]: subtractNumber(-5, -6)
Out[7]: 1

答案 1 :(得分:0)

在您的示例中,'x''y'是不代表数字的字符串,因此无法使用int()转换它们。 < / p>

所以你不能这样做:

subtractNumber('x', 'y')

然而,这些可行:

>>> subtractNumber(13, 7) # Regular integers
13
>>> subtractNumber('13', '7') # Strings that contain digits can be converted to int
13
>>> x = 13
>>> y = 7
>>> subtractNumber(x, y) # Here, x and y are variables, not strings
13

答案 2 :(得分:0)

'x''y'不是数字,而是字符串。你会假设字符x和字符y是多少?

如果您想使用以前分配的变量,只需传递xy

subtractNumber(x, y)

如果你想在两个字母后面使用ascii字符代码,请使用:

subtractNumber(ord('x'), ord('y'))