我正在和刽子手玩。我是个菜鸟。我将要猜测的单词加载到列表中。我正在使用 for 循环来打印带有空格和结尾=“”的单词,以便它们打印出来。打印完所有字母后,我想将光标移动到新行。有没有一种优雅的方法来做到这一点?打印功能的一部分?
hidden_word = list(r.get_random_word().lower()) 对于 hide_word 中的字母: 打印(f“{字母}”,结束=“”)
这会将单词打印在一行中,中间有一个空格“
a b a c a d a b r a
但是在 print 语句之后转到下一行的最佳方法是什么?
只需“打印()”
或者是否有一个开关或者是打印功能的一部分?
在循环后添加
print
:
for letter in hidden_word:
print(f"{letter} ", end="")
# Or more clearly/with less work:
print(letter, end=" ")
print()
或者避免循环并让星形解包加上
print
的默认参数之间的空格来完成工作:
print(*hidden_word)
或使用
str.join
手动添加字母之间的空格并打印结果的单个字符串:
print(' '.join(hidden_word))
其中任何一个都有效。选项 2 是最简洁/直接的,但也可能是性能最低的,但是您正在执行 I/O,因此 CPU 成本无论如何都毫无意义。
您有多种选择。哪一个“最好”是主观的;选择您认为最简单的一个。
word = r.get_random_word().lower() # note that strings are iterable without being `list`s
# option 1 (your suggestion is fine)
for letter in word:
print(letter, end=" ")
print()
# option 2
for index, character in enumerate(word):
if index == len(word) - 1:
print(character)
else:
print(character, end=" ")
# option 3
print(*word, sep=" ")
# option 4
print(" ".join(word))
选项 3 和 4 显然是最直接(也是最短)的,因此它们是首选。