如何修复作为地址代码返回的python基本数学运算?
Posted
技术标签:
【中文标题】如何修复作为地址代码返回的python基本数学运算?【英文标题】:How to fix python basic math operations returning as address codes? 【发布时间】:2019-06-17 09:16:44 【问题描述】:我使用基本数学运算(例如:除法、加法)的函数创建了一个简单的python 计算器。它运行没有错误,但它显示某种“地址代码”作为最终输出,而不显示实际计算。
示例输出:
0x00401978
我试图使用print("calculation =" + str(add))
将计算输出为“calculaion = xxx”。
但是当我得到这些 weird 输出时,我删除了所有字符串并尝试仅输出计算。但问题依然存在。这是最少的代码-
def add (a,b) :
calc = a + b
return calc
def subs (a,b) :
calc = a - b
return calc
def mul (a,b) :
calc = a * b
return calc
def divi (a,b) :
calc = a/b
return calc
print (" Select operation. \n 1.Add \n 2.Substract \n 3.Multiply \n 4.divide ")
choice = int (input (" Enter choice (1/2/3/4) "))
a = int (input (" Enter first number: "))
b = int (input (" Enter second number : "))
if choice == 1 :
print (add)
elif choice == 2 :
print (subs)
elif choice == 3 :
print (mul)
elif choice == 4 :
print (divi)
else:
print ("Ooops my love. Wrong number")
带有奇怪结果的完整输出-
Select operation.
1.Add
2.Substract
3.Multiply
4.divide
Enter choice (1/2/3/4) 2
Enter first number: 20
Enter second number : 10
<function subs at 0x030AE198>
我只需要输出为“Calculation = XXXX”,并且操作必须在函数中完成。 (XXXX是结果)
【问题讨论】:
【参考方案1】:您没有调用该方法。您正在打印该方法的内存位置/repr。
你的每个 ifs 都应该是
if choice == 1 :
print (add(a,b))
elif choice == 2 :
print (subs(a,b))
elif choice == 3 :
print (mul(a,b))
elif choice == 4 :
print (divi(a,b))
或者去掉打印
if choice == 1 :
add(a,b)
elif choice == 2 :
subs(a,b)
elif choice == 3 :
mul(a,b)
elif choice == 4 :
divi(a,b)
你正在做的一个非常简单的例子:
def test_method():
print("I've been called!")
test_method
test_method()
【讨论】:
谢谢。有没有办法查看其他数据的其他内存地址,比如我正在打印的字符串?以上是关于如何修复作为地址代码返回的python基本数学运算?的主要内容,如果未能解决你的问题,请参考以下文章