微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:垂直,水平和反向打印单词

如何解决Python:垂直,水平和反向打印单词

我想在所有方向打印一个词,假设我得到“牛顿”这个词,结果应该是:

NEWTON
E
W
T
O
NOTWEN
O
T
W
E
NEWTON

我所做的是以下内容,但是如何让用户只输入一次单词,让我们说输入并获得结果?就我而言,我正在一张一张地打印它们。谢谢

>>> from itertools import zip_longest
>>> text = "newton".upper()
for x in zip_longest(*text.split(),fillvalue=' '):
    print (' '.join(x))
def reverse(phrase):
    return ' '.join(list(map(lambda x: x[::-1],phrase.split())))

print(reverse("newton").upper())
char = 'newton'.upper()
cont = len(char) - 1
while cont >= 0:
    cont2 = char[cont]
    print(cont2)
    cont -= 1
print("newton".upper())``` 

解决方法

您可以使用 sepend 参数来简化切片操作。

def print_e_shape(s):
    print(s)
    print(*s[1:],sep='\n',end='')
    print(s[-2::-1])
    print(*s[-2::-1],end='')
    print(s[1:])


print_e_shape('NEWTON')

输出

NEWTON
E
W
T
O
NOTWEN
O
T
W
E
NEWTON

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。