- 帖子
- 18
- 精华
- 0
- 积分
- 134
- 阅读权限
- 20
- 注册时间
- 2013-9-13
- 最后登录
- 2014-4-4
|
回帖奖励 +5
对自己有点难度啊,弄了一下午,还没考虑不能构成矩形的情况,这里有个问题就是每个中文字符是占两个字符的,而在中文输出下空格还是占一个字符的,所以要在输入时“思“和”李“之间打两个空格。- # coding=gbk
- input=raw_input('中文:')#输入竖排中文,空格按两下
- rows=int(raw_input('rows:'))#输入要打印的行数
- t_l=len(input)
- cols=t_l/2/rows#默认可以除尽,得出列数
- lis=[]
- current=[]
- start=t_l#起始
- for i in range(0,rows):#遍历rows次,每次将正常顺序的打印存放进数组
- for j in range(0,cols):#这里要打印5列,意思就是每次存放5个中文字符
- start=start-rows*2#每个中文字符起始,因为有6行,所以每2*6普通字符的长度个得到一个中文字符,从头开始减
- end=start+2#结尾
- current.append(input[start:end])#加入临时数组
- lis.append(current)
- current=[]
- start=t_l+2*(i+1)#初始往后移
- end=start+2
- for i in lis:#按顺序打印,每个字符用“|”隔开
- line='|'.join(i)
- print line
复制代码 |
|