列表图形打印--------字符串处理经典习题
2018-04-12 10:56
417 查看
导文
思想,在平时非业务面试或者打印相关图形时,通常采用列表的形式进行打印,如下就是非常经典的两练习习题,重要的是思想,思维和方式,具体总结如下:打印图形
重点分析
每个行和列要对齐,至于多少宽度要根据自动生成时,计算偏移宽度;
其实每一行就是一个列表,列表采用” “.join(iterable)字符串处理将列表转换成字符串序列,可见” “.join()字符串处理函数的重要性
最核心的就是计算最后一行的长度,即可知道其他行的偏移量的长度。
最后一行才能确定长度
代码 实现
#!/bin/python3 #-*- coding: UTF-8 -*- #created time 2018-04-12 def tri(m): count = " ".join([str(x) for x in range(m,0,-1)]) length = len(count) #计算最后一行长度 for i in range(1,m): cout = " ".join([str(x) for x in range(i,0,-1)]) print('{:>{}}'.format(cout,length)) print(count) print(tri(12))
为方便测试,将空格替换为#可知:
代码实现
#!/bin/python3 #-*- coding: UTF-8 -*- #created time 2018-04-12 def tri(m): count = "#".join([str(x) for x in range(m,0,-1)]) length = len(count) for i in range(1,m): cou 4000 t = "#".join([str(x) for x in range(i,0,-1)]) print('{:>{}}'.format(cout,length)) print(count) print(tri(12))
到序打印
重点分析
字符串处理将列表转换为字符串,整个第一行就形成str容器
依次递减,采用字符串切片,切片条件是什么?当str[i]等于空格或者其他字符时进行切片
整个列表偏移宽度可通过第一行即可知道序列宽度
代码实现
先采用#号连接更加方便追踪
#!/bin/python3 #-*- coding: UTF-8 -*- #created time 2018-04-12 def tri(m): count = "#".join([str(x) for x in range(m,0,-1)]) length = len(count) print(count) for i in range(length): if count[i] == "#": cout = count[i:] print('{:>{}}'.format(cout,length)) print(tri(12))
打印结果
替换#号代码实现
#!/bin/python3 #-*- coding: UTF-8 -*- #created time 2018-04-12 def tri(m): count = " ".join([str(x) for x in range(m,0,-1)]) length = len(count) print(count) for i in range(length): if count[i] == " ": cout = count[i:] print('{:>{}}'.format(cout,length)) print(tri(12))
运行结果
总结
类似解法通过字符串处理+列表生成式,将列表转换为字符串
通过字符串的长度确定偏移量
递减采用列表或序列切片的方式进行解决
相关文章推荐
- 山东理工ACM【1135】C/C++经典程序训练5---图形打印问题
- Java经典实例:处理单个字符串
- JAVA字符串处理函数列表一览
- JAVA字符串处理函数列表一览
- 「算法竞赛入门经典 第二版」第 3 章 数组和字符串 习题解答
- JAVA字符串处理函数列表一览
- 一句经典的传入字符串在存储过程中的处理办法
- 1135C/C++经典程序训练5---图形打印问题
- Shell 逐行读取文本中的字符串 处理 并打印到新的文本中
- 初学python 字符串处理、列表的处理、字典的操作
- C/C++经典程序训练5---图形打印问题
- SICP 习题 (2.22)解题总结: 迭代过程中的列表处理
- JAVA经典面试题---字符串的处理
- C/C++经典程序训练5---图形打印问题
- JAVA字符串处理函数列表一览
- 入门经典-习题7-1,109-uva208消防车-DFS,并查集,打印路径,利用set保存边,字典序,STL⭐⭐⭐⭐⭐复杂度:3
- python在处理CSV文件时,字符串和列表写入的区别
- PAT-L1古风排版 打印字符串和处理
- python笔记--字符串处理、列表、元祖
- 字符串处理算法(二)逐个打印中文字符串