在Python 3中在一行上打印序列

时间:2016-03-24 13:49:24

标签: python python-3.x printing sequence

我设法让顺序正确,但我不确定如何在同一条线上打印。我有这个:

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

4 个答案:

答案 0 :(得分:4)

根据您的第一个(工作)代码判断,您可能正在使用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))

答案 1 :(得分:3)

您可以使用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=" ")

答案 2 :(得分:1)

你可以像这样使用临时字符串:

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

答案 3 :(得分:0)

这是用Java编写的。这两个嵌套循环仅用于打印模式,当我们获得所需的整数序列时,使用stop varialbe终止循环。

import java.io.*;
import java.util.Scanner;

public class PartOfArray {
    
    public static void main(String args[])
    {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int stop =1;   // stop variable 
     /*nested loops to print pattern */    
    for(int i= 1 ; i <= n    ; i++)
    {
        for(int j = 1 ; j<=i ; j++)
        {
            if (stop > n){ break;} //condation when we print the required no of elements
            System.out.print(i+ " ");
            stop++;
        } 
    } 
    
    }
}