将字母排列成直角三角形

Arranging alphabets in a right angled triangle

我想把字母排列成直角三角形。一个示例是:- inp='''1''' out=_A_, inp='''3''' out= _A_\n_A_B_\n_A_B_C_ 。到目前为止,这是我尝试过的:-

def letter_range(start, end):
    for i in range(start, end):
        # inner loop
        for j in range(65, i + 1):
            print(f"_{chr(j)}_", end = "")
        print()

def main():

    x = int(input())
    y = int(65 + x)
    # calling Function
    letter_range(65, y)


     

if __name__ == "__main__":
    main()

#Results
inp = 3
out:-
_A_
_A__B_
_A__B__C_

我只想在每个字母前后加上单下划线。请帮忙

使用str.join

的一种方式
from string import ascii_uppercase

def letters(n):
    return "_%s_" % "_".join(ascii_uppercase[:n])

输出:

for i in [1,2,3]:
    print(i, letters(i))

1 _A_
2 _A_B_
3 _A_B_C_

尝试替换

for j in range(65, i + 1):
        print(f"_{chr(j)}_", end = "")
    print()

for j in range(65, i + 1):
        print(f"_{chr(j)}", end = "")
    print('_')

你可以的。 string 模块非常有用。 ascii_uppercase 包含所有大写字母。所以你可以对字符串使用索引,然后使用 str.join()

from string import ascii_uppercase
for i in [1,2,3]:
    print(f"_{'_'.join(ascii_uppercase[:i])}_")