如何使用Python打印指定的交替字符数字金字塔图案?
Python 打印指定图案实现方案
需要实现的图案:
A 2*2 B*B*B 3*3*3*3 C*C*C*C*C 4*4*4*4*4*4 D*D*D*D*D*D*D 5*5*5*5*5*5*5*5
原代码存在的问题:
- 空格计算错误,导致图案整体偏移
- 偶数行(字母行)用空格分隔字符,未按要求添加
* - 奇数行(数字行)起始数字错误,且末尾多输出了一个
* - 字符与数字的递增逻辑冗余,无需每次循环都执行
修正后的代码:
n = 8 char_code = 65 # 对应ASCII字符'A' num = 2 # 起始数字 for i in range(n): # 打印每行前置空格 for _ in range(n - i - 1): print(" ", end="") # 区分奇偶行处理内容 if i % 2 == 0: current_char = chr(char_code) # 拼接成 字符*字符*...*字符 的格式 print(f"{current_char}*" * i + current_char) char_code += 1 else: # 拼接成 数字*数字*...*数字 的格式 print(f"{num}*" * i + str(num)) num += 1
代码逻辑说明:
- 空格控制:每行前置空格数为
n - i -1,确保图案整体居中对齐 - 偶数行(字母行):从'A'开始,每次循环后ASCII码+1,通过
f"{current_char}*" * i + current_char实现字符*字符*...*字符的格式 - 奇数行(数字行):从2开始,每次循环后数字+1,通过
f"{num}*" * i + str(num)实现数字*数字*...*数字的格式
内容的提问来源于stack exchange,提问作者kapil patel
相关产品推荐
相关产品推荐

