免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2843 | 回复: 12

python将汉字转为竖排 [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
发表于 2015-07-01 09:15 |显示全部楼层

  1. x=u'为义孰为大务,譬若筑墙然,能筑者筑,能实壤者实壤,能欣者欣,然后墙成也。为义犹是也,能谈辩者谈辩,能说书者说书,能从事者从事,然后义事成也'
  2. b= '\n'.join(' '.join(x[::-1]) for x in zip(*map(list, x.split(' '))))

  3. print(b)
复制代码
怎么样控制显示行数呢? 比如竖行10行

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
发表于 2015-07-01 12:00 |显示全部楼层
  1. #  -*-  coding=utf-8 -*-  
  2. import math
  3. x=u'人衣食者人之生利也'

  4. print(len(x))
  5. def shupai(text,width):
  6.     seq = [ c for c in text if c.strip() ]
  7.     seq_len=len(seq)
  8.     line=math.ceil(seq_len/width)
  9.     for i in range(0, line):
  10.         for j in range(0,width):
  11.             if j*line+i < seq_len:
  12.                 print(seq[j*line+i],end = " | ")
  13.         print()

  14. shupai(x,6)
复制代码
人 | 食 | 人 | 生 | 也 |
衣 | 者 | 之 | 利 |
貌似显示不了6行

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
发表于 2015-07-01 14:17 |显示全部楼层
回复 2# yakczh_cu
竖行5行
人 | 食 | 人 | 生 | 也 |
衣 | 者 | 之 | 利 |

竖行6行
LZ怎么显示呢?

人 | 食 | 人 | 生 | 利 |也 |
衣 | 者 | 之 |


竖行7行

人 | 食 | 人 | 之 |生 | 利 |也 |
衣 | 者 |
   

论坛徽章:
4
金牛座
日期:2013-10-11 16:12:50卯兔
日期:2014-07-31 09:17:19辰龙
日期:2014-08-08 09:28:02狮子座
日期:2014-09-14 20:32:05
发表于 2015-07-01 14:29 |显示全部楼层
先把这一行文字分割成行,按标点分割即可,然后找到长度最大的一行,其它行按照这个长度在行尾补空格,然后再用zip行列转置一下,然后输出。
不能放代码了,比较忙。

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
发表于 2015-07-01 15:09 |显示全部楼层
楼上的真有劲儿, 我表示 "竖行10行" 这四个字都看不懂

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
发表于 2015-07-01 15:14 |显示全部楼层
回复 5# reyleon
六神。。。


你要不要 免费体验?

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
发表于 2015-07-01 15:17 |显示全部楼层
回复 6# substr函数


    按你们回答的意思, 所谓的"竖行10行" 是 10 列吗?  

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
发表于 2015-07-01 15:22 |显示全部楼层
本帖最后由 yakczh_cu 于 2015-07-01 15:24 编辑

回复 4# ssfjhh


怎么把 一行按指定个数分割成多行?

比如  [1,2,3,3,4,5,6,7]  按3分成多行
分成 [ [1,2,3],[4,5,6],[7]]
   

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
发表于 2015-07-01 15:23 |显示全部楼层
回复 7# reyleon

是textarea的宽度,因为不能发回车(回车会过滤掉) ,只能按textrea的宽度分成多列,这样就不怕格式会乱了

   

论坛徽章:
54
2015亚冠之德黑兰石油
日期:2015-07-07 13:00:1615-16赛季CBA联赛之深圳
日期:2016-03-31 09:03:5415-16赛季CBA联赛之辽宁
日期:2016-05-09 20:38:15程序设计版块每日发帖之星
日期:2016-05-12 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-13 15:19:4715-16赛季CBA联赛之福建
日期:2016-05-15 20:24:34每日论坛发贴之星
日期:2016-05-16 06:20:0015-16赛季CBA联赛之吉林
日期:2016-05-26 11:49:4715-16赛季CBA联赛之广东
日期:2016-05-26 13:49:18极客徽章
日期:2016-12-07 14:05:2315-16赛季CBA联赛之广夏
日期:2016-12-20 17:33:532017金鸡报晓
日期:2017-01-10 15:19:56
发表于 2015-07-01 15:35 |显示全部楼层
本帖最后由 haooooaaa 于 2015-07-01 22:16 编辑
  1. $ python 1.py
  2. 为|墙|壤|然|也|说|从
  3. 义|然|者|后|,|书|事
  4. 孰|,|实|墙|能|者|,
  5. 为|能|壤|成|谈|说|然
  6. 大|筑|,|也|辩|书|后
  7. 务|者|能|。|者|,|义
  8. ,|筑|欣|为|谈|能|事
  9. 譬|,|者|义|辩|从|成
  10. 若|能|欣|犹|,|事|也
复制代码
现在可以控制行了。
  1. #!/usr/bin/env python
  2. #-*- coding:utf-8 -*-

  3. x=u'为义孰为大务,譬若筑墙然,能筑者筑,能实壤者实壤,能欣者欣,然后墙成也。为义犹是也,能谈辩者谈辩,能说书者说书,能从事者从事,然后义事成也'

  4. lines = 10  #行控制
  5. lens = len(x)//lines

  6. def printN(cur):
  7.     s = ""
  8.     for j in range(0,lens+1): #列
  9.         try:
  10.             s += x[cur + lines*j] + "|"
  11.         except:
  12.             pass
  13.     return s[:-1]   

  14. for i in range(0,lines): #行
  15.     print printN(i).encode('utf-8')
复制代码
  1. $ python 1.py
  2. 为|为|,|筑|,|者|能|者|,|者|然|成|为|是|能|者|,|书|书|从|从|然|事
  3. 义|大|譬|墙|能|筑|实|实|能|欣|后|也|义|也|谈|谈|能|者|,|事|事|后|成
  4. 孰|务|若|然|筑|,|壤|壤|欣|,|墙|。|犹|,|辩|辩|说|说|能|者|,|义|也
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP