博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python】编程语言入门经典100例--27
阅读量:6893 次
发布时间:2019-06-27

本文共 1334 字,大约阅读时间需要 4 分钟。

  1 #题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  
2 
  
3 
li 
= 
list
(
input
(
'请输入5个字符:'
))
  
4 
= 
len
(li)
  
5 
= 
0
  
6 
  
7 
def 
order(li,n,i):
  
8     
if 
i <
= 
n
-
1
-
i:
  
9         
tmp 
= 
li[i]
 
10         
li[i] 
= 
li[n
-
1
-
i]
 
11         
li[n
-
1
-
i] 
= 
tmp
 
12         
+
= 
1
 
13         
order(li,n,i)
 
14     
return
(li)
 
15     
 
16 
print
(order(li,n,i))

运行结果:

1
2
3
4
5
6
7
[root@HK code_100]
# python code_27.py 
请输入
5
个字符:abcdefghi123456768
[
'8'
'6'
'7'
'6'
'5'
'4'
'3'
'2'
'1'
'i'
'h'
'g'
'f'
'e'
'd'
'c'
'b'
'a'
]
[root@HK code_100]
# python code_27.py 
请输入
5
个字符:abcde
[
'e'
'd'
'c'
'b'
'a'
]
[root@HK code_100]
#

代码解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#思路:遍历经过输入转换后的列表li,通过三方参数赋值,将第一个和最后一个元素交换位置,然后递归新的列表,
 
#     将新列表的第二个元素和倒数第二个元素交换位置,以此类推,全部交换完之后,列表就会做到反转
  
2 
  
3 
li 
= 
list
(
input
(
'请输入5个字符:'
))        
#接收输入的5个字符,并且转换成列表
  
4 
= 
len
(li)                                
#计算列表长度,以便后面使用
  
5 
= 
0                                      
#定义参数i为从0开始
  
6 
  
7 
def 
order(li,n,i):                         
#定义函数order,传入三个参数,li列表,列表长度,列表下标
  
8     
if 
i <
= 
n
-
1
-
i:                         
#条件判断列表正数元素小于或者等于列表倒数元素,防止重复交换位置,因为是小于或者等于, 所有列表个数是单数还是双数都不受影响
  
9         
tmp 
= 
li[i]                        
#从这往后三条是通过三方参数tmp交换两个数值
 
10         
li[i] 
= 
li[n
-
1
-
i]
 
11         
li[n
-
1
-
i] 
= 
tmp
 
12         
+
= 
1                             
#正数元素下标依次累加
 
13         
order(li,n,i)                      
#将之前交换完元素的的列表递归到这个函数,传入新的参数,继续计算,一直到所有元素都有交换
 
14     
return
(li)                             
#全部交换完之后返回新的列表
 
15     
 
16 
print
(order(li,n,i))                       
#打印结果
      本文转自snc_snc 51CTO博客,原文链接:http://blog.51cto.com/netsyscode/1748838
,如需转载请自行联系原作者
你可能感兴趣的文章
SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例...
查看>>
android用户界面-组件Widget-进度条ProgressBar
查看>>
猜字谜小游戏编程
查看>>
k-means聚类算法C++实现
查看>>
查看死锁存储过程(转载)
查看>>
iOS:Masonry介绍与使用
查看>>
看百度宣传片
查看>>
Java assert
查看>>
Impala与HBase整合
查看>>
c# 获取某个进程的CPU使用百分百(类似任务管理器中显示CPU)
查看>>
关于__GNU_SOURCE 这个宏---如何开启【转】
查看>>
【SQL】姗姗来迟的SQL Server 安装图解
查看>>
POJ 3017 单调队列dp
查看>>
【OneNote Mobile】 如何处理便签内容的格式?
查看>>
ios开发学习-弹出视图(Popup View) 效果源码分享--系列教程1
查看>>
css中 Span 元素的 width 属性无效果原因及多种解决方案
查看>>
ABP框架理论研究总结(典藏版)
查看>>
CNNVD发布2015年信息安全漏洞态势报告
查看>>
【深度】AI 入侵翻译,神经机器翻译进化让巴别塔7年内成真
查看>>
《Ext JS权威指南》——2.10节本章小结
查看>>