我写了以下代码:
def contalpha(n):
num = 65
for i in range(0, n):
for j in range(0, i+1):
ch = chr(num)
print(ch, end=" ")
num = num +1
print("\r")
n = 7
contalpha(n)
输出为:
A
B C
D E F
G H I J
K L M N O
P Q R S T U
V W X Y Z [ \
但是我想要的是:
A B C D E
A B C D
A B C
A B
A
我该怎么做?
答案 0 :(得分:2)
建议不要使用chr
。 ASCII可能会造成混淆,而只需使用所有大写ASCII字符(这是一个字符序列,可以在string
模块中方便地找到)的字符串。
import string
def contalpha(n):
for i in range(n, 0, -1):
print(*string.ascii_uppercase[:i], sep=' ')
contalpha(5)
输出:
A B C D E
A B C D
A B C
A B
A
答案 1 :(得分:0)
您需要反转范围,以便从更大的行range(0, n)[::-1]
开始。然后,每次启动新行时都需要设置num = 65
,使其始终从A
开始。
去那里:
def contalpha(n):
num = 65
for i in range(0, n)[::-1]:
for j in range(0, i+1):
ch = chr(num)
print(ch, end=" ")
num = num +1
num = 65
print("\r")
n = 7
contalpha(n)
输出
A B C D E F G
A B C D E F
A B C D E
A B C D
A B C
A B
A
答案 2 :(得分:0)
尝试一下:
def contalpha(n):
for i in range(n, 0, -1):
num = 65
for j in range(0, i):
ch = chr(num)
print(ch, end=" ")
num = num +1
print("\r")
n = 7
contalpha(n)
首先,您需要在每个外部循环中将num
设置为65
才能再次从A
获取字母,然后您应该反转外部循环范围以从最大尺寸打印到最小尺寸。 / p>
输出:
A B C D E F G
A B C D E F
A B C D E
A B C D
A B C
A B
A