我对python for loop if语句和multiple for loop有疑问

2024-05-14 20:35:00 发布

您现在位置:Python中文网/ 问答频道 /正文

所以如果我得到输入数字“n”,我要做的是像这样打印1~n。如果n=10

1

23

456

78910

我的代码是

x = int(input())
n=1
for i in range(1, x+1):
    sum = (n+1)*n // 2
    print(i , end = ' ')
    if(sum == i):
        print()
        n+=1

我和助教一起解决了这个问题,但是除了这个问题,还有没有其他方法可以使用多个for语句来解决这个问题呢?我不想使用sum = (n+1)*n // 2这个部分,因为我的助教实际上没有解释就制作了这个部分


Tags: 方法代码inforinputifrange数字
2条回答

我猜这就是你所想的:

x = int(input())
n = 1
for i in range(1, x+1):
    for j in range(1, i):
        if n <= x:
            print(n, end=' ')
        n += 1
    print()
    if n >= x:
        break

如果您担心在j上对非常大的x进行不必要的循环太频繁,您可以更改:

        if n <= x:
            print(n, end=' ')
        else:
            break

当然,您可以使用另一个for循环进行求和

sum = 0
for j in range(1,n+1):
    sum += j

你也可以sum = sum(range(n+1)),但是(n + 1) * n // 2是求n之和的最好方法

相关问题 更多 >

    热门问题