Python-Can';似乎无法让return语句在简单函数中工作?

Python-Can';似乎无法让return语句在简单函数中工作?,python,dictionary,if-statement,return,Python,Dictionary,If Statement,Return,我有一个使用if语句访问字典的简单函数 langdict = {"english": "Hello, World!", "french":"Bonjour, tout le monde!"} def hello(language): if language in langdict: return langdict[language] else: return None 现在,一切都很好,很明显,打印报表非常漂亮。但是当我在第5行和第

我有一个使用if语句访问字典的简单函数

 langdict = {"english": "Hello, World!", "french":"Bonjour, tout le monde!"}

 def hello(language):
     if language in langdict:
         return langdict[language]
     else:
         return None
现在,一切都很好,很明显,打印报表非常漂亮。但是当我在第5行和第7行使用return语句时,什么也没有发生。我遗漏了什么?

你可以用这个

 def hello(language):
     return langdict.get(language, None)

print hello('english')  #Hello, World!
print hello('japanese')  #None

return将从函数中返回该值,print将在控制台中显示该值

我正在使用python 2.7,无法再现您的错误:

打电话

hello("english") 
我得到了预期的结果
“你好,世界!”例如,在调用时

 hello("german") 
结果为无/空

如果要将结果存储到变量中,可以执行以下操作:

result =  hello("english") 

什么都没发生?你的意思是什么都没有打印对吗?顺便说一句,用
返回langdict.get(语言)
替换它。它返回
None
如果没有找到不需要的所有内容是的,第一个返回语句出于某种原因没有打印任何内容。
return
不打印任何内容,
print
打印到屏幕上。因此,要查看输出,您需要在函数外按照
hello(“english”)
hello(“french”)
的行进行语句。简而言之,
return
只返回调用函数的位置的值(在这里它从未被调用),而
print
将它打印到屏幕。@user2951723它只在交互式解释器中打印。这根本不回答问题。这只是修改代码,使其更具表现力和简洁性,但并没有找到解决方案。