-
有只小跳蛙
打印第一行后a,值已从 65 更改,这就是为什么您只会增加字母,直到您处于特殊字符的字符代码处。保持固定并使用循环变量来计算正确的字母:n=11a = 65for i in range(1,n): for j in range(1,n-i): print(end=' ') for j in range(1,i+1): print(j,end='') for j in range(i-1,0,-1): ch=chr(a+j-1) # Note the change here print(ch,end='') print()这打印 1 12A 123BA 1234CBA 12345DCBA 123456EDCBA 1234567FEDCBA 12345678GFEDCBA 123456789HGFEDCBA12345678910IHGFEDCBA
-
青春有我
这是一个小的改进。n=11a=65for i in range(1,n): for j in range(1,n-i): print(end=' ') for j in range(1,i+1): print(j,end='') for j in range(i-2,-1,-1): if i != 1: ch=chr(a+j) print(ch,end='') print()
-
小怪兽爱吃肉
好吧,我喜欢这个:letters="IHGFEDCBA"lines = 11for i in range(lines,-1,-1): print(i*' ' + ''.join([str(num) for num in range(1, lines-i)]) + letters[i:])但我不相信列表理解是否值得。
-
PIPIONE
您没有在每次迭代时重置 a 的值,i也没有在最后一个循环中使用 j 的值。n=11for i in range(1,n): a=64 #note this is inside loop now and the value was reduced by 1 for j in range(1,n-i): print(end=' ') for j in range(1,i+1): print(j,end='') for j in range(i-1,0,-1): ch=chr(a+j) #note the change here print(ch,end='') a=a+1 print()由于您的 a 从未被重置为 65,因此该值超过了 90 并开始打印相应的 ascii 字符。
-
呼唤远方
我真的很亲近:n=11a=65for i in range(1,n): a=65+i-2 # a need to actually end on char A for j in range(1,n-i): print(end=' ') for j in range(1,i+1): print(j,end='') for j in range(i-1,0,-1): ch=chr(a) print(ch,end='') a=a-1 # here we substract so we go backward! print()