本帖最后由 Hoiste 于 2020-3-12 22:09 编辑
string如果作为一个外部参数传入函数,函数内对string的修改都不会改变外部的string。
return的作用就是让函数有返回值,在不设置return的函数内,我们调用函数本身的话,它的返回值是None,如上面的例子如果print(palindrome(string)),结果是0或者1,而如果没有return,打印的这是None。这里只存在区别,根据不同情况判断需不需要使用函数返回值而不分优劣。
比如这一题,我们需要判断输入的字符串是不是回文联,既然决定用函数的方法判断,我们需要函数在处理完字符串后告诉我们是不是回文联,而是不是的判断放在函数体外,那么就需要函数把判断结果反馈给外面的if条件,就需要返回0或1或者布尔类型的False和True,用到了return。事实上如果把判断放在函数体内,那么不用返回值也是可以的,这样代码就变成这样了:def palindrome(string):
length = len(string)
last = length-1
length //= 2
flag = 1
for each in range(length):
if string[each] != string[last]:
flag = 0
last -= 1
if flag == 1:
print('是回文联!')
else:
print('不是回文联!')
string = input('请输入一句话:')
palindrome(string)
总之,return设置返回值是为了函数能够给函数体外部发出反馈,达到某种目的用的。如果在函数体内就搞定问题了而不需要反馈,那么不需要return也是没问题的 |