在 Python 3 的一行中打印一个序列

新手上路,请多包涵

我已经设法使排序正确,但是我不确定如何将它打印在同一行上。我有这个:

 n = input ("Enter the start number: ")
i = n+7

if n>-6 and n<93:
    while (i > n):
        print n
        n = n+1

并尝试过这个:

 n = input ("Enter the start number: ")
i = n+7

if n>-6 and n<93:
    while (i > n):
        print (n, end=" ")
        n = n+1

原文由 Josh Alexandre 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 689
2 个回答

从你的第一个(工作)代码来看,你可能正在使用 Python 2。要使用 print(n, end=" ") 你首先必须从 Python 3 导入 print 函数:

 from __future__ import print_function
if n>-6 and n<93:
    while (i > n):
        print(n, end=" ")
        n = n+1
    print()

或者,使用旧的 Python 2 print 语法,在语句后加上 ,

 if n>-6 and n<93:
    while (i > n):
        print n ,
        n = n+1
    print

或者使用 " ".join 将数字连接到一个字符串并一次性打印:

 print " ".join(str(i) for i in range(n, n+7))

原文由 tobias_k 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 print 作为函数并指定 sep arg 并使用 * 解压的范围:

 from __future__ import print_function

n = int(raw_input("Enter the start number: "))
i = n + 7

if -6 < n < 93:
    print(*range(n, i ), sep=" ")

输出:

 Enter the start number: 12
12 13 14 15 16 17 18

您还在第一个代码中使用 python 2 而不是 python 3,否则您的打印会导致语法错误,因此请使用 raw_input 并强制转换为 int。

对于 python 3,只需将输入转换为 int 并使用相同的逻辑:

 n = int(input("Enter the start number: "))
i = n + 7

if -6 < n < 93:
    print(*range(n, i ), sep=" ")

原文由 Padraic Cunningham 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题