我在下面的代码中没有得到预期的输出。它最多可以打印7张,但不能打印。
n=5
for i in range(1,n+2):
for j in range(1,i):
print(j, end='')
print("\n")
答案 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)
,因此j
为for j in range(1, 2)
打印1
,而j
为i
。
这就是为什么您的2
代码无法正常工作的原因。当n = 5
为i
时,6
为j
,对于范围(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中也很重要。