Python中为何print输出函数地址而非函数返回值?
问题解决:打印函数返回值却输出函数地址
你遇到的问题是因为直接打印了函数名eligible,这会输出函数对象的内存地址,而不是函数执行后的返回值。要获取返回值,必须调用函数(即加上括号和参数),再打印其结果。
另外注意:你代码里已经调用了一次eligible(age, language, planguage),但没有保存或打印这个结果,这一步是无效的。
修正后的代码
def eligible(age, lingo, language): return "Eligible!" if(int(age) in range(25, 46)) and (lingo=='ingles') and (language=='python') else "Not Eligible!" age=input("What's your age?: ") language=input("What language do you speak?: ") planguage=input("What programing language do you use?: ") # 方式1:直接打印函数调用的结果 print(eligible(age, language, planguage)) # 方式2:先保存结果再打印(二选一即可) # result = eligible(age, language, planguage) # print(result)
补充说明
- 函数名本身是一个指向函数对象的引用,直接打印会输出其内存地址;只有加上括号传递参数调用函数,才会执行函数逻辑并返回结果。
- 确认参数传递顺序和函数定义一致:你的函数定义中第二个参数是
lingo(对应用户说的语言,需为ingles),第三个参数是language(对应编程语言,需为python),当前的参数传递是正确的。
内容的提问来源于stack exchange,提问作者vldrco
相关产品推荐
相关产品推荐

