有没有办法用for循环打印这样的数字

2024-05-23 22:01:52 发布

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

我想写一个代码,可以输出这样的结果:

123456
 23456
  3456
   456

关于我想要多少层,我需要使用输入法, 但是我不能得到我想要的结果

我试过这个:

layers = int(input('layers: '))

for i in range(1,layers+1):
    for j in range(1,i+1):
        print('123456',end ="")
    print('')   

我不知道我哪里做错了,输出很奇怪


Tags: 代码inforinputlayersrangeintend
3条回答

这可能会有帮助,但它是js。但是,您可以使用此算法来实现您的目标

&13; 第13部分,;
let level = 5;

let str= "";

for (j=1; j<=level; j++){
  for (k=1; k<=j; k++){//increase space
    str = str + " ";
  }
  for (i=j;i<=level;i++) {//decrease text
    str = str + i;
  }
  console.log(str);
  str = ""; //reset text
}
和#13;
和#13;

您可以通过以下方式解决此问题:

layers = int(input("layers: "))

for i in range(1,layers+1):
   numbers = "".join([str(j) for j in range(i,layers+1)])
   print(" "*(layers-len(numbers)) + numbers)

输出:

123456
 23456
  3456
   456
    56
     6

或者您可以使用.replace()函数:

layers = int(input('layers: '))

for i in range(1,layers+1):
    a = '123456'
    for j in range(1,i+1):
        a = a.replace(str(j-1)," ")
    print(a)

相关问题 更多 >