本帖最后由 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也是没问题的