多列输出函数 《python 核心编程》习题6-19
来源:互联网 发布:头像卡通化软件 编辑:程序博客网 时间:2024/05/29 13:21
多列输出函数 《python 核心编程》习题6-19
多列输出
有任意项的序列或其他容器,把它们等距离分列显示。由调用者提供数据和输出格式。
例如,如果你传入100个项并定义3列输出,按照需要的模式并显示这些数据。这种情况下应该是两列显示33个项,最后一列显示34个。
你可以让用户选择水平排序或者垂直排序
代码
""" 多列输出函数,如果不能刚好排下则排到后面的几列 如101项 按 3 列输出,则第一列为33个,第二列和第三列为34个"""# @Time: 2016/12/21 11:35# @Author:still_night@163.com# @File: t6_19.pydef print_table(container, column_count=1,row_sort=True ): """ 按照指定列数输出一个可遍历容器 container: 容器 column_count: 列数 row_sort: {True:按行排序 | False:按列排序} """ lens = len(container) # 容器的长度 row_count = lens // column_count # 全部填满的行数 tail=lens%column_count # 最后留下的小尾巴的数量 spaces = column_count -tail # 最后一行的空位数量 if row_sort: for i in range(lens-tail): # 先把满的行输出 print("%10d"%container[i],end="") if i%column_count==column_count-1: print("\n",end="") for i in range(spaces): # 输出最后一行的空格 print("%10s"%"",end="") for i in range(lens-tail,lens): # 输出最后一行剩下的数 print("%10d" % container[i], end="") print("\n",end="") else: strings=["" for r in range(row_count+1)] # 定义一个列表存储每行的输出 i=0 r=0 # 本算法顺次遍历每一列,然后判断如果为最后一行并且还有没输出的空格就输出空格 spaces = column_count - tail # 存储最后一行的空格数 while i<lens: # 遍历每一个元素 if r==row_count and spaces: # 如果是最后一行且还有没输出的空格 strings[r]+="%10s"%"" # 在最后一行输出空格 spaces-=1 # 未输出的空格数量-1 else: strings[r]+="%10d"%container[i] # 如果不是最后一行或者空格已经输出完毕,正常输出 i+=1 # 移动到下一个 r+=1 # 移动到下一列 if r==row_count+1: # 如果列数已经超出限制,返回第一列 r=0 print("\n".join(strings))
样例:
print_table(range(103),7,True)用7列 按行排序,输出0-102 共103个数字 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 100 101 102print_table(range(102), 7, False)# 用7列,按列排序 输出 0-101 共102个数字 0 14 28 42 57 72 87 1 15 29 43 58 73 88 2 16 30 44 59 74 89 3 17 31 45 60 75 90 4 18 32 46 61 76 91 5 19 33 47 62 77 92 6 20 34 48 63 78 93 7 21 35 49 64 79 94 8 22 36 50 65 80 95 9 23 37 51 66 81 96 10 24 38 52 67 82 97 11 25 39 53 68 83 98 12 26 40 54 69 84 99 13 27 41 55 70 85 100 56 71 86 101
0 0
- 多列输出函数 《python 核心编程》习题6-19
- 《Python核心编程》第6章 习题
- 《Python核心编程》第6章 习题
- 《Python核心编程习题》---chapter6
- 《Python核心编程习题》---chapter7
- 《Python核心编程习题》---chapter8
- 《Python核心编程习题》---chapter9
- 《Python核心编程习题》---chapte11
- Python 核心编程习题2
- python核心编程6-14习题的解题思路
- python核心编程第6章习题答案
- python核心编程第二章习题
- python核心编程习题5-9章
- python核心编程习题11章
- Python核心编程第二章课后习题
- 《Python核心编程》第2章 习题
- 《Python核心编程》第3章 习题
- 《Python核心编程》第5章 习题
- openGL按照载体自身坐标系旋转
- Oracle中Clob类型处理解析
- 如何 取消Eclipse的js 、jsp、html 校验功能?
- Ubuntu安装中文输入法
- java 生成银行卡号
- 多列输出函数 《python 核心编程》习题6-19
- iOS模糊效果实现
- Android开发-自定义View-AndroidStudio(八)自定义View初体验
- Extjs4之动态添加FormPanel
- 斐波那契数列及青蛙跳台阶问题
- VLOOKUP函数的使用方法(高级篇)
- 原型模式
- 关于使用java语言操作FTP的一些问题
- JS 中的事件绑定、事件监听与事件委托