设为首页收藏本站

Crossin的编程教室

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

【每日一坑 5】 文字竖排

[复制链接]

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

楼主
发表于 2013-12-23 09:08:14 |显示全部楼层

回帖奖励 +5

本帖最后由 fl0w 于 2013-12-23 16:01 编辑

trans.py
  1. #! /usr/bin/env python
  2. # coding:utf-8

  3. import sys

  4. stops = ' !,。'
  5. stops = stops.decode('utf-8')

  6. def getLength(poe):
  7.     situation = [i for i in range(len(poe)) if poe[i] in stops]
  8.     situation.insert(0, -1)
  9.     #print situation
  10.     gaps = [situation[i] - situation[i - 1] for i in range(1, len(situation))]
  11.     #print gaps
  12.     if gaps:
  13.         return max(gaps)
  14.     else:
  15.         return None

  16. def transferPoetry(poe, sentLength):
  17.     NewPoe = []
  18.     tempSent = []
  19.     for i in poe:
  20.         if i not in stops:
  21.             tempSent.append(i)
  22.         elif len(tempSent) < sentLength:
  23.             tempSent.append(i)
  24.             tempSent += stops[0] * (sentLength - len(tempSent))
  25.             NewPoe.append(tempSent)
  26.             tempSent = []
  27.     RealPoe = []
  28.     for i in xrange(sentLength):
  29.         RealPoe.append([NewPoe[x][i] for x in xrange(len(NewPoe))])
  30.     for i in xrange(len(RealPoe)):
  31.         RealPoe[i].reverse()
  32.         RealPoe[i] = '|'.join(RealPoe[i])
  33.     return RealPoe
  34.    
  35. if __name__ == '__main__':
  36.     poe = raw_input('Please input your poetry:')
  37.     poe = poe.decode('utf-8')
  38.     #print('the poetry is: %s' % poe)
  39.     #print('the length is %d' % len(poe))
  40.     sentLength = getLength(poe)
  41.     if sentLength:
  42.         for i in transferPoetry(poe, sentLength):
  43.             print i
  44.     else:
  45.         print 'Are you sure this is a poetry???'
复制代码
回复

使用道具 举报

0

主题

0

好友

389

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2013-12-23 09:23:17 |显示全部楼层
fl0w 发表于 2013-12-23 09:08
trans.py

等长与不等长诗的效果

Screenshot-1.png (21.59 KB, 下载次数: 627)

等长

等长

Screenshot-2.png (31.99 KB, 下载次数: 608)

不等长

不等长

回复

使用道具 举报

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

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

GMT+8, 2024-5-5 11:07 , Processed in 0.018277 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部