您的位置:首页 > 编程语言 > Python开发

《Python核心编程》第二版第六章练习题答案-第六部分

2012-07-30 15:27 387 查看
6–17.方法.实现一个叫myPop()的函数,功能类似于列表的pop()方法,用一个列表作为输入,
移除列表的最新一个元素,并返回它.

解答:

#  -*- coding:utf-8 -*-
#!/usr/bin/python
#Filename:6-17.py
'''
Created on 2012-7-30

@author: wanglei
'''
def mypop(alist):
list_len=len(alist)
if list_len==0:
print "列表为空!"
return
popitem=alist[list_len-1]
alist.remove(alist[list_len-1])
return popitem
alist=['abc','def','xyz']
print mypop(alist)
print alist


测试数据:

xyz
['abc', 'def']

6–19.多列输出.有任意项的序列或者其他容器,把它们等距离分列显示.由调用者提供数据和
输出格式.例如,如果你传入100 个项并定义3 列输出,按照需要的模式显示这些数据.这种情况下,应
该是两列显示33 个项,最后一列显示34个.你可以让用户来选择水平排序或者垂直排序.

解答:

#  -*- coding:utf-8 -*-
#!/usr/bin/python
#Filename:6-19.py
'''
Created on 2012-7-30

@author: wanglei
'''
def leveloutput(alist,linenum):
list_len=len(alist)
item_eachline=list_len/linenum
linecount=1
linebreak=0 #变量增加到给定值,则输出一个换行
for i in alist:
if linecount<linenum: #未到最后一行
print '%4d'%i,
linebreak +=1
if linebreak==item_eachline:
print '\n'
linebreak=0
linecount +=1
else:
print '%4d'%i,
def verticaloutput(alist,linenum):
list_len=len(alist)
item_eachline=list_len/linenum
linebreak=0
total=0 #记录前面的列输出到列表的第几项了
for linecount in range(1,linenum+1):#第一行到倒数第二行
for i in range(linecount-1,item_eachline*linenum,linenum):
print "%3d"%i,
total +=1
linebreak +=1
if linebreak==item_eachline and linecount!=linenum: #对最后一行进行的处理
print '\n'
linebreak=0
for j in range(total,list_len):
print "%3d"%j,
alist=[x for x in range(100)]
verticaloutput(alist,15)
#leveloutput(alist,15)


测试数据:

水平输出:

0    1    2    3    4    5

6    7    8    9   10   11

12   13   14   15   16   17

18   19   20   21   22   23

24   25   26   27   28   29

30   31   32   33   34   35

36   37   38   39   40   41

42   43   44   45   46   47

48   49   50   51   52   53

54   55   56   57   58   59

60   61   62   63   64   65

66   67   68   69   70   71

72   73   74   75   76   77

78   79   80   81   82   83

84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99


垂直输出:

0  15  30  45  60  75

1  16  31  46  61  76

2  17  32  47  62  77

3  18  33  48  63  78

4  19  34  49  64  79

5  20  35  50  65  80

6  21  36  51  66  81

7  22  37  52  67  82

8  23  38  53  68  83

9  24  39  54  69  84

10  25  40  55  70  85

11  26  41  56  71  86

12  27  42  57  72  87

13  28  43  58  73  88

14  29  44  59  74  89  90  91  92  93  94  95  96  97  98  99
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐