设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 40669|回复: 0
打印 上一主题 下一主题

【每日一坑 5】 文字竖排

[复制链接]

0

主题

0

好友

134

积分

注册会员

Rank: 2

楼主
发表于 2013-12-23 17:43:16 |显示全部楼层

回帖奖励 +5

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-5 08:58 , Processed in 0.017075 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部