Python刷题笔记:1-关于递归、栈的调用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python刷题笔记:1-关于递归、栈的调用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1282字,纯文字阅读大概需要2分钟。
内容图文
![Python刷题笔记:1-关于递归、栈的调用](/upload/InfoBanner/zyjiaocheng/619/e001961131f24fca9e94270fd6534b96.jpg)
#-*- codeing = utf-8 -*-
#@Time : 2020/12/5 12:54
#@Author:小雅米
#@CSDN_Url:https://blog.csdn.net/weixin_44015669
def func(s,i,j):
if i<j:
func(s,i+1,j-1)
s[i],s[j] =s[j],s[i]
def main():
a = [10,6,23,-90,0,3]
func(a,0,len(a)-1)
for i in range(6):
print(a[i])
print('\n')
main()
解析:
1.首先,调用main() 函数内,已经定义了一个列表 a ,传入到func函数内,第一次传入的参数中 i,j 分别代表列表的首位、末尾值。即
i = 0 ,j = 5 此时满足 i<j ,则此时调用 满足的条件 ,又调用func ,此时传入的参数为 a、1,4 。这时需要执行函数,而不能往下执行,即暂不可执行第一次的 交换元素 s[0],s[5] = s[5],s[0].
2. 执行内部函数 func(a,1,4) 则也满足 1<4 此时还需要再调用 func(a,2,3) .暂不执行 s[1],s[4]] = s[4],s[1].
3.再执行内部函数 func(a,2,3) ,还是满足2<3 此时还需要再调用 func(a,3,2) .暂不执行 s[2],s[3]] = s[3],s[2].
4.再执行内部函数func(a,3,2),此时不满足 3<2 . 即不执行任何内容。此时内部循环函数全部结束。再往上推。
5.上一步内部函数执行完后,则执行交换s[2],s[3]] = s[3],s[2]. 再往上推
6. s[1],s[4]] = s[4],s[1],再往上推
7. s[0],s[5] = s[5],s[0] 。即全部func结果结束。即交换了各个位置的元素。第一个变成最后一个、第二个变成倒数第二个、第三个变成倒数第三个。原来 的 a = [10,6,23,-90,0,3]
交换后的 a = [3,0,-90,23,6,10]
8. for循环依次打印出a列表元素 ,每次打出一个都进行换行操作。
代码实现:
内容总结
以上是互联网集市为您收集整理的Python刷题笔记:1-关于递归、栈的调用全部内容,希望文章能够帮你解决Python刷题笔记:1-关于递归、栈的调用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。