使用python中的函数打印字母的反向模式

时间:2018-07-25 10:31:31

标签: python

我写了以下代码:

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 

我该怎么做?

3 个答案:

答案 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