我有编程任务,我遇到了麻烦。我完成了99%,但这是让我失望的小事。这是我的代码:
a = 0
b = 0
c = 0
for h in first:
a = LetterMap[h]
print(a,end="")
for h in middle:
b = LetterMap[h]
print(b,end="")
for c in last:
c = letterMap[c]
print(c,end="")
此块之前的输出和此块是:
first middle last
xxxxxxxxxxxxxxx
我希望如此:
first middle last
xxxxx xxxxxx xxxx
答案 0 :(得分:1)
试试这个:
for h in first:
a = LetterMap[h]
print(a,end="")
print(" ",end="")
for h in middle:
b = LetterMap[h]
print(b,end="")
print(" ",end="")
for c in last:
c = letterMap[c]
print(c,end="")
答案 1 :(得分:0)
我建议使用str.join
和生成器表达式将翻译后的序列组合成字符串,而不是逐个打印出你的字符:
first_str = "".join(LetterMap[c] for c in first)
middle_str = "".join(LetterMap[c] for c in middle)
last_str = "".join(LetterMap[c] for c in last)
然后,您只需拨打一次print
电话即可打印出来:
print(first_str, middle_str, last_str) # default separator is a space!
如果你想要一些更复杂的输出格式(而不仅仅是分隔值的空格),你可以使用str.format
方法做任何你想要的格式化:
print('{2:<20}{1:_^20}{0!r:*>20}'.format(first_str, middle_str, last_str)
那将以“反向”顺序打印字符串,其中“last”在宽度为20的列中左对齐,中间值以宽度为20的列为中心,下划线在每一侧填充,并且在用星号填充的最后20个宽的列的右侧表示“第一个”值(带引号和反斜杠转义,根据需要)。
例如,如果你有三个字符串'foo'
,'bar'
和'baz'
,那么你会得到:
baz ________bar_________***************'foo'
您可以阅读字符串格式迷你语言in the documentation。