重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
很高兴我能为你解答
山西网站建设公司成都创新互联公司,山西网站设计制作,有大型网站制作公司丰富经验。已为山西数千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的山西做网站的公司定做!
先为你普及下*args和**kwargs的知识
在python中*args的使用是在你不知道有几个参数会传进函数时使用,这些任意数量的参数是被封装进tuple里的
而**kwargs允许你处理那些你在函数中未定义的带命名的参数,它是个字典
在你的代码中,你传进的是list对象,经过函数lowerstr的参数打包后就是这样的:
(['Hello', 'World', 134, 'IBM', 825, 'NicE'],)
你也可以在你的函数中输出L0即可验证
所以在遍历过程中第一个ss的变量类型就是tuple,在isinstance的判断中list肯定不是str类型,所以就添加进了你的L2的列表中了,也就是列表中有列表
要改成你要的功能很简单
你将listStr2 = lowerstr(listStr)改成listStr2 = lowerstr(*listStr)即可
listStr2 = lowerstr(*listStr)#此处对listStr进行解包
q = 3 表示一个整数对应被创建并且赋值给了变量q,引用数是1,然后调用了my_del函数,引用数变成2,在函数中做了del操作,仅减少了函数引用这个引用数,原先的引用还在,所以print的时候还可以输出。
以上,我个人理解。
return break 都可以终止函数的运行 exit(0) # 无错误退出 exit(1) # 有错误退出这两条语句一般都会加在程序的最后 因为exit是迫使系统去终止程序的运行