请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

微信公众号:
crossincode
 找回密码
 立即加入
楼主: crossin先生

【每日一坑 5】 文字竖排

[复制链接]

155

主题

36

好友

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-1-16 15:12:23 |显示全部楼层
manhong2112 发表于 2016-1-16 14:21
效果

good,不错啊
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

发表于 2016-1-16 15:58:20 |显示全部楼层
  1. poem = "\
  2. 静夜思 李白\n\
  3. 床前明月光,\n\
  4. 疑似地上霜。\n\
  5. 举头望明月,\n\
  6. 低头思故乡。".split('\n')

  7. poem = poem[::-1]

  8. poemLength = 0
  9. for i in poem: poemLength = len(i) if poemLength < len(i) else poemLength
  10. poemWidth = len(poem)

  11. for i in range(0,poemLength):
  12.   for j in range(0,poemWidth):
  13.     try:
  14.       print(poem[j][i] if poem[j][i] != " " else "  " ,end="|")
  15.     except IndexError:
  16.       print(end="  |")
  17.   print()
复制代码
修改了一下,把正方形排版改成長方形,讓try except不會印一大堆沒用的空白排版造成的延遲
回复

使用道具 举报

0

主题

0

好友

6

积分

新手上路

Rank: 1

发表于 2016-10-30 21:08:54 |显示全部楼层
#coding=utf-8
str1 = u"静夜思 李白床前明月光,疑似地上霜。举头望明月,低头思故乡。"
for i in range(6):
    temstr = '|'.join([str1[j] for j in range(0,len(str1)) if j%6 ==i][::-1])
    print temstr

不具有普适性哈哈
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

发表于 2016-12-9 14:39:11 |显示全部楼层
  1. #coding:utf-8

  2. str1 = u'静夜思 李白床前明月光,疑似地上霜,举头望明月,低头思故乡。'
  3. start = 0 #取出诗句的起始点
  4. poem = [] #诗句存放列表

  5. for i in range(5):
  6.     poem_list = [] #取每一句诗句之前 都清空的临时列表
  7.    
  8.     for j in str1[start:start+6]: #取 第一句的六个字符
  9.         poem_list.append(j)
  10.     poem.append(poem_list) #追加进诗句列表
  11.     start += 6   #增加计数起点




  12. for i in range(6): #打印诗句
  13.     print poem[4][i] + "|" + poem [3][i] + "|" + poem [2][i] + "|" + poem [1][i]+ "|" + poem [0][i]

复制代码
想问一下 如果 我直接 print :poem  打出来的就是乱码  完全不知道该怎么办! 希望有人能解答一下
回复

使用道具 举报

155

主题

36

好友

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-12-9 22:31:26 |显示全部楼层
z19960202 发表于 2016-12-9 14:39
想问一下 如果 我直接 print :poem  打出来的就是乱码  完全不知道该怎么办! 希望有人能解答一下  ...

直接print 一个 list 对象,显示的就是未解码的字符。一般就是遍历,然后输出每一项

在python3里,会自动解码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

10

积分

新手上路

Rank: 1

发表于 2016-12-10 09:50:20 |显示全部楼层
crossin先生 发表于 2016-12-9 22:31
直接print 一个 list 对象,显示的就是未解码的字符。一般就是遍历,然后输出每一项

在python3里,会自 ...

好的谢谢,我会努力学习的
回复

使用道具 举报

0

主题

0

好友

26

积分

新手上路

Rank: 1

发表于 2017-1-22 07:33:47 |显示全部楼层
words = input("words:")
n = int(input("how many characters for a line:"))
text_list = [words[i:i+n] for i in range(0,len(words),n)]
print(text_list)
for a in range(0,n):
    for b in range(0,len(text_list)):
        if b == len(text_list)-1:
            print (text_list[-(b+1)].ljust(n)[a],end = "")
        else:
            print(text_list[-(b+1)].ljust(n)[a],end = "|")
    print()
回复

使用道具 举报

0

主题

0

好友

20

积分

新手上路

Rank: 1

发表于 2017-1-29 21:51:46 |显示全部楼层
  1. text="静夜思  李白床前明月光,疑似地上霜。举头望明月,低头思故乡。"
  2. s=[]
  3. for i in range(30):
  4.     s.append(text[i*2:(i+1)*2])

  5. for i in range(6):
  6.     row1=[]
  7.     for j in range(5):
  8.         row1.append(s[i+j*6])
  9.     print '┊'.join(reversed(row1))
复制代码
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

发表于 2017-3-12 21:46:58 |显示全部楼层
简单的写了一下
  1. poem = ['静夜思 李白', '床前明月光,', '疑是地上霜。', '举头望明月,', '低头思故乡。']
  2. poem.reverse()
  3. for i in range(len(poem[0])):
  4.     outstr = ''
  5.     for j in range(len(poem)):
  6.         outstr += poem[j][i] + '|'
  7.     outstr = outstr[:-1]
  8.     print(outstr)
复制代码
回复

使用道具 举报

1

主题

0

好友

39

积分

新手上路

Rank: 1

发表于 2017-8-21 14:23:06 |显示全部楼层
好难呀!!!
回复

使用道具 举报

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

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

GMT+8, 2020-2-22 03:29 , Processed in 0.056490 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部