我想写一个可以输出这样的结果的代码:
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('')
我不知道我哪里做错了,输出很奇怪。
答案 0 :(得分:0)
你可以这样解决这个问题:
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
答案 1 :(得分:0)
这可能有帮助,但它是 js。但是,您可以使用此算法来实现您的目标。
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
}
答案 2 :(得分:0)
或者您可以使用 .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)
答案 3 :(得分:0)
试试这个。您可以在 range
layers = int(input('layers: '))
for i in range(layers,0,-1):
print(' '*(layers-i),end='')
for j in range(1,i+1):
print(j,end ="")
print('')