打印到一定数量

时间:2018-10-16 23:27:57

标签: python python-3.x

我正在寻找一种方法来在一行上打印数字1-7,然后在另一行上打印8-14,最后在控制台上打印22-28和29-31。这是我所拥有的:

def check(z,y):
    if x >= (z) and x <= (y) :
        print (str(x) + " ", end="")

for x in range (1, 31):
    check(1,7)
    check(8,14)
    check(22,28)
    check(29,31)

这会在同一行上打印所有数字1-31,但是我不知道如何在同一行上打印1-7,而又不会在同一行上打印其他数字。 另外,我不能只做print(1,2,3,4,5,6,7) 等等。

3 个答案:

答案 0 :(得分:0)

以下代码将在不同的行上分别打印数字1-7、8-14、22-28和29-31:

[print(i,end="") for i in range(1,8)]
print("")
[print(i,end="") for i in range(8,15)]
print("")
[print(i,end="") for i in range(22,29)]
print("")
[print(i,end="") for i in range(29,32)]

答案 1 :(得分:0)

有趣的问题,因为您有一些唯一变量,但是我们可以将逻辑分解如下:

public class StringCountUptoThree {
    public static void main(String[] args) {
        String str = "aaaaaabbcccdeeeeeeeeeeffff";
        System.out.println(stringCount(str));
    }

    public static StringBuffer stringCount(String str) {
        StringBuffer sb = new StringBuffer();
        int len = str.length();
         int j = 1;
        for (int i = 0; i < len; i++) {
            int count = 0;
         if( count >3 && (str.charAt(i)==str.charAt(j)))
                    continue;
            for (j = i + 1; j < len; j++) {
                if (str.charAt(i) == str.charAt(j)) {
                    sb.append(str.charAt(i));
                    count++;
                    if (count > 3)
                        break;
                }
            }
        }
        return sb;
    }
}

上面将打印此:

1 2 3 4 5 6 7

8 9 10 11 12 13 14

22 23 24 25 26 27 28

29 30 31

答案 2 :(得分:0)

也许您可以使用类似的东西:

def check(z,y):
    for x in range(z,y+1):
        print (str(x) + " ", end="")
    print('\n')

check(1,7)
check(8,14)
check(22,28)
check(29,31)

输出:

1 2 3 4 5 6 7 

8 9 10 11 12 13 14 

22 23 24 25 26 27 28 

29 30 31 

[Finished in 0.0s]