有没有办法将这两行代码放在一行中

时间:2019-06-14 02:44:18

标签: python

我想使代码尽可能的小,我想知道是否可以将代码缩短为一行

i = ("***** Cafe Menu *****")

print("*"*len(i)+"\n"+i+"\n"+"*"*len(i))

5 个答案:

答案 0 :(得分:0)

print("*"*len(("***** Cafe Menu *****"))+"\n"+("***** Cafe Menu *****")+"\n"+"*"*len(("***** Cafe Menu *****")))

这就是您可以做到的;但是,这更麻烦,而且时间更长。因此,我强烈建议您使用在问题中所写的内容来定义一个变量,因为它被重复了多次。

答案 1 :(得分:0)

您可以将其设置为: print("*"*len('***** Cafe Menu *****')+"\n"+'***** Cafe Menu *****'+"\n"+"*"*len('***** Cafe Menu *****'))

答案 2 :(得分:0)

回答问题

print((lambda x: "\n".join(("*" * len(x), x, "*" * len(x))))("***** Cafe Menu *****"))

但是写这个要清楚得多:

def fancy(s):
    stars = "*" * len(s)
    return "\n".join((stars, s, stars))

print(fancy("***** Cafe Menu *****"))

答案 3 :(得分:0)

分号将它们作为一行加入。

从Py3.8开始,使用新的walrus operator>>> from mt.models import * >>> ImagePost(headline="Tasty images.").save() >>> VideoPost(headline="Hooray for video!").save() >>> Post.objects.all() <QuerySet [<Post: Tasty images.>, <Post: Hooray for video!>]> >>> i = Post.objects.all()[0] >>> i <Post: Tasty images.> >>> i.imagepost <ImagePost: Tasty images.> >>> i.imagepost.image True

:=

答案 4 :(得分:0)

使用f字符串的Py 3.6 +:

i = ("***** Cafe Menu *****"); print(f'{"*"*len(i)}\n{i}\n{"*"*len(i)}')