python3中,定义一个函数,遍历字符串,使用print后调用函数会有None,换成return结果又不对?

如题所述

第一个图中,在执行 print(bianli__str('sjsjsj'))这句时,首先执行print括号中的内容,即进入bianli__str函数,执行了函数中的print语句,打印的内容是字符串的每一个字符,然后退出函数,执行print这个操作,print的内容是你定义的函数,这个函数本身是没有值的,所以是None

解决的方法就是调用函数的时候不用再print了,如下图:

第二个图中结果不对是因为return就会退出函数,所以打完第一个字符后就退出了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-09

你调用的时候是 

print(bianli_str('sjsjsj))

先调用了bianli_str函数打印了字符串'sjsjsj',最后print了bianli_str('sjsjsj')的返回结果,按照第一张图片里函数的写法,函数没有返回结果,也就是None。

你按第一张图片的写法,把调用时的print去掉直接调用函数bianli_str('sjsjsj')即可。

第2个回答  2020-10-09
你的函数里面已经是print了,你在外面再套一层print干啥?
直接调用函数就可以了,因为你定义的函数没有返回值。就第一张图执行结果的解析:
1、Print函数调用自定义函数bianli_str函数,bianli_str函数将参数中的每个字符打印出来
2、bianli_str函数执行完成,因为没有定义返回值,所以默认返回None,外层Print打印None
第二张图,一个函数,return只会执行一次,执行完后函数就结束了。
相似回答