第18讲课后题动动手第2题,将print()换为return,就无法返回答案,这是为什么?
如果按照这个代码就可以反回3:def findStr(desStr,subStr):
if subStr not in desStr:
print('未找到子字符串!')
else:
a = desStr.count(subStr)
print(a)
desStr = input('请输入目标字符串:')
subStr = input('请输入需要查找的字符串:')
findStr(desStr,subStr)
desStr = You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.
subStr = im
但是换成如下(将print()换为return)就无法反会3:
def findStr(desStr,subStr):
if subStr not in desStr:
print('未找到子字符串!')
else:
a = desStr.count(subStr)
return a
desStr = input('请输入目标字符串:')
subStr = input('请输入需要查找的字符串:')
findStr(desStr,subStr)
desStr = You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.
subStr = im
请教一下各位前辈,这是什么原因? 本帖最后由 jackz007 于 2021-12-7 12:56 编辑
return 只是返回了一个数值,你不打印,如何能看得到?
所以,你得把此句
findStr(desStr,subStr)
改成
print(findStr(desStr,subStr))
再有,就是函数 findStr() 不可以选择性(或有条件)返回值,就是说,不可以把 return 放到属于 if 的语句块中。
def findStr(desStr,subStr):
return desStr.count(subStr)
desStr = input('请输入目标字符串:')
subStr = input('请输入需要查找的字符串:')
c = findStr(desStr,subStr))
if c == 0:
print('未找到子字符串!')
else:
print(c)
这样,程序响应就和你之前的代码一致起来了。
学习了学习了{:5_108:}return不要放在if语块,谢谢~ jackz007 发表于 2021-12-7 12:00
return 只是返回了一个数值,你不打印,如何能看得到?
所以,你得把此句
学习了学习了return不要放在if语块,谢谢~
页:
[1]