将字母排列成直角三角形



我想在直角三角形中排列字母。一个例子是:输入="1"=_A_,输入= =_A_n_A_B_n_A_B_C_"3"。这是我到目前为止所尝试的:-

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_

我只需要在每个字母之后和之前单个下划线。请帮助

尝试替换

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('_')

使用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_

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

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

最新更新