如何返回垂直对齐的文本(python3)

2024-04-23 14:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编程很在行。 我创建的代码返回垂直对齐的文本,不包括非字母数字。而且它也应该像空间一样改变线条

H W
e o
l r
l l
o d

我的密码在这里。 我可以垂直显示文本。 但是这个函数没有返回。 那么我如何编辑它以返回垂直文本?? 如果你能解释一下细节,我将不胜感激。在

^{pr2}$

Tags: 函数代码文本编辑密码编程字母空间
2条回答

如果我理解您的问题,您需要一个函数,它接受一个字符串,如"hello world",并返回一个字符串,如"h w\ne o\nl r\n"

如果是这样的话,我认为你基本上是在那里:

from itertools import zip_longest
import re

def transposition(string):

    clean_str = re.sub('[^\w]', ' ', string)
    return '\n'.join(
        ' '.join(row)
        for row in zip_longest(*clean_str.split(), fillvalue=' '))

print(transposition("Hello, World... how are you?"))

>> H W h a y
>> e o o r o
>> l r w e u
>> l l   
>> o d   

注意事项:

  • 我习惯于在任何字符串操作中使用正则表达式。在
  • 永远不要与TrueFalse进行比较,只需做if x:或{}。在
  • ' '.join(row) for row in ...是一个generator expression,可以传递给任何接受iterable的函数。在

这是你想要的吗?在

def transposition(string):
  new_text = str()
  for i in string:
    x = i.isalpha()

    if x == False:
        i = ' '

    new_text += i

  for y in new_text:
    print ('\n'.join(y))

transposition("Hello, World")

相关问题 更多 >