我想使代码尽可能的小,我想知道是否可以将代码缩短为一行
i = ("***** Cafe Menu *****")
print("*"*len(i)+"\n"+i+"\n"+"*"*len(i))
答案 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)}')