python - 使用 .format : Python 3 在循环输出之间添加一个空格

标签 python python-3.x for-loop format

我正在尝试创建一个 for 循环,其中用户输入数字 n,输出提供从 n 到 n+6 的值范围。这需要全部打印在一行中,并与值输出之间的空格右对齐,但输出的结尾或开头没有空格

到目前为止,这是我想出的:

n=eval(input("Enter the start number: "))
for n in range(n,n+7):
  print("{0:>2}".format(n),end=" ")

但是,这会导致以下输出:

-2 -1  0  1  2  3  4 <EOL>

当我想要的输出看起来相似但没有末尾的空格时,如下所示:

-2 -1  0  1  2  3  4<EOL>

如何在不向最后一项添加额外空格的情况下在值之间添加空格?

最佳答案

我可以提出 3 个建议:

  1. 使用 end="" 并手动插入空格

  2. 创建一个字符串并在循环后打印:

    s = ""
    for n in range(n, n+7):
        s+= str(n)+ " "
    s = s[:-1] #remove the ending whitespace
    print(s)
    
  3. 我推荐:使用 sys.stdout.write 代替打印: print 仅在打印换行符后显示消息。所以如果循环中有一个很长的计算并且有 end="" 你只会看到所有计算结束时的resulr。改用 sys.stdout

    for n in range(n, n+7):
        if n < n+7:
            sys.stdout.write(str(n)+" ")
        else:
            sys.stdout.write(str(n))
        sys.stdour.flush() #flush output to console
    

编辑:我进化了一点,这就是我现在使用的: 4. message = "".join(range(n, n+7)) 这会在列表的所有元素之间放置空格。您可以选择任何分隔字符而不是空格(或多个字符)。

关于python - 使用 .format : Python 3 在循环输出之间添加一个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311236/

相关文章:

python - 为什么我没有在 python 变量中恢复与表中的 SQL 相同的计数

python - 将大叶 map 导出为 png

python - headless Chrome 驱动程序不适用于 Selenium

python - 为什么 "divide and conquer"计算阶乘的方法对于大整数这么快?

python - 如何使用 nargs ='+' 解析多个位置参数

python-3.x - FastAPI 屏蔽字段

java - 在 Java : 中迭代 "this"

python-3.x - Python 3 Wx 更改托盘图标

r - 如何编写一个循环来根据条件查找最大值及其对应的滞后值

python - 仅用于列表列表中第二项的循环。 (Python)