我写道:
p=input("words?")
def frame(*words):
size = len(max(words, key=len))
print('*' * (size + 4))
for word in words:
print('* {a:<{b}} *'.format(a=word, b=size))
print('*' * (size + 4))
frame(p)
然而,如果我们输入abc xyz uxv vxu,答案如下:
*******************
* abc xyz uxv vxu *
*******************
而预期的答案应该是:
*******
* abc *
* xyz *
* uxv *
* vxu *
*******
2条答案
按热度按时间m1m5dgzv1#
根据Olvin Roght's的建议,我编辑了打印以使用f字符串,并将 *words更改为words,因为您没有向函数传递可变数量的参数(?).信息args
这里是输出
对于不同长度的字符串:(我改为f字符串,因为我不明白格式方法的目的,但我已经再次测试,并在问题中提出的原始打印语句工作)
输出:
ncecgwcz2#
p=input(“words?“)def frame(words):size = len(max(words,key=len))print('' (size + 4))对于单词中的单词:print(f' {word}')print('' *(size + 4))frame(p.split(““))