【发布时间】:2021-04-28 04:43:16
【问题描述】:
我想从第一个字母以 s 开头的列表中返回单词,并且我执行了以下 2 个解决方案。一个接近解决方案,另一个是正确的,但不是所需的确切形式。如果我在 python 函数中使用“print”与“return”,我也会得到不同的结果。为什么呢?请指导我。
第一种方法:
def s(opt):
for a in opt:
if a[0] == 's':
return(a)
s(['soup','dog','salad','cat','great'])
我通过运行此代码得到的输出是“汤” - 这也是用引号引起的 - 为什么?
第二种方法:
def s(opt):
for a in opt:
if a[0] == 's':
print(a)
s(['soup','dog','salad','cat','great'])
我通过这种方法得到的输出是汤,垂直形式的沙拉,没有引号等等。为什么?
我的问题是如何通过在函数方法中保留返回来获得所需的输出? 另一个问题为什么在上述方法中使用 print 和 return 时输出会不同?
期望的输出:['soup', 'salad']
【问题讨论】:
-
print定义为prints the values to a stream;这意味着一旦控件返回给调用者,它就会收到None(相当于return None)。如果您不想获得None对象,那么您只需要在return语句中添加一些值(例如return [1, 2])。请注意,一旦 Python 在您的函数中遇到return语句,它会立即将控件发送回调用者。