range(1,n + 2)没有在for循环中打印我想要的输出

时间:2019-06-25 16:58:50

标签: python python-3.x

我在下面的代码中没有得到预期的输出。它最多可以打印7张,但不能打印。

Here is the output screenshot

n=5
for i in range(1,n+2):
    for j in range(1,i):
        print(j, end='')
    print("\n")

3 个答案:

答案 0 :(得分:1)

所以,我不明白为什么ggplot(agent_for_plot, aes(x = Region, y = prop_sum, fill = Answer, label = ifelse(prop_sum > .05, scales::percent(prop_sum), ""))) + geom_bar(position = "fill", stat = "identity") + facet_grid(vars(rows=Question)) + scale_y_continuous(labels = scales::percent_format()) + geom_text(family = "Calibri Light", size = 3, hjust = 0.5, position = position_stack(vjust = 0.5)) + coord_flip() 完全按照您的意愿使用n=5的原因。我看到您已经使用n=7得到了答案,因此我在这里为n=5提供了一个解决方案,其中包含一些打印内容,可以帮助您了解这两个嵌套循环中发生的情况。

n=7

输出将是:

n = 7
for i in range(1, n+2):
    for j in range(1, i):
        print("j:", j, end =" ")
    print("i:", i)
    print("***")

您是否注意到i: 1 *** j: 1 i: 2 *** j: 1 j: 2 i: 3 *** j: 1 j: 2 j: 3 i: 4 *** j: 1 j: 2 j: 3 j: 4 i: 5 *** j: 1 j: 2 j: 3 j: 4 j: 5 i: 6 *** j: 1 j: 2 j: 3 j: 4 j: 5 j: 6 i: 7 *** j: 1 j: 2 j: 3 j: 4 j: 5 j: 6 j: 7 i: 8 发生了什么?没有打印for j in range(1, 1),因此jfor j in range(1, 2)打印1,而ji

这就是为什么您的2代码无法正常工作的原因。当n = 5i时,6j,对于范围(1,7)中的i,直到i = 6。

5

输出:

n = 5
for i in range(1, n+2):
    for j in range(1, i):
        print("j:", j, end =" ")
    print("i:", i)
    print("***")

但是,我真的认为您应该习惯于从0开始的范围。

答案 1 :(得分:0)

range()函数中的第二个参数是停止值。它不会包含在循环中。因此,您的循环需要将两个范围的第二个参数加1:

n=5
for i in range(1,n+2 + 1):
    for j in range(1,i + 1):
        print(j, end='')
    print("\n")

不过,您应该习惯于使用基于零的范围

n=5
for i in range(n+2):
    for j in range(i+1):
        print(j+1, end='')
    print("\n")

答案 2 :(得分:-1)

i在范围(1,n + 2)中 n + 2是不正确的语法,因此请创建一个名为x的新变量,并将其关联为n + 2 EG。

x = n + 2

要获取最多7个数字,x必须等于n + 4 EG。

n=5
x = n + 4
for i in range(1,x):
    for j in range(1,i):
        print(j, end='')
        print("\n")

缩进在python中也很重要。