所以我正在做这个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'
我仍然不明白我哪里出错了。有谁可以帮助我吗?感谢。
答案 0 :(得分:0)
int
用于将某些内容转换为整数。
x = '5'
y = int(x)
会导致y
的值为5
int(x)
返回x=5
时 5
。但是,您已将角色'x'
发送至int
。 int
不知道如何将其转换为整数。
这应该对你有用
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是多少?
如果您想使用以前分配的变量,只需传递x
和y
:
subtractNumber(x, y)
如果你想在两个字母后面使用ascii字符代码,请使用:
subtractNumber(ord('x'), ord('y'))