如何修改现有Python代码,实现符合预期格式的星号字母C打印
解决方案
核心修改点
- 重命名原绘制A的函数为
draw_C,适配字母C的结构逻辑 - 调整中间行的判断逻辑:仅在上下横线紧邻的两行添加右侧星号,中间行仅保留左侧星号
- 简化冗余的工具函数,直接根据位置输出对应行内容
完整修改后代码
import math # 绘制字母C的上下横线 def draw_top_bottom(width, symbol): print(" " + symbol*(width)) # 绘制字母C核心逻辑 def draw_C(width, height, symbol): print(" ") # 输出顶部横线 draw_top_bottom(width, symbol) # 输出中间行 for i in range(1, height): if i == 1 or i == height - 1: # 上下紧邻横线的行,左右都加星号 print(symbol + " "*(width) + symbol) else: # 中间行仅保留左侧星号 print(symbol) # 输出底部横线 draw_top_bottom(width, symbol) # 获取合法的用户输入(大于等于5的奇数) def get_height(): height = int(input("Enter an odd number 5 or greater: ")) while(1): if (height % 2)==0 or (height < 5) : height = int(input("-> Error! Try again: ")) else : break return height # 主调用函数 def draw_letter(symbol): height = get_height() width = height - 2 draw_C(width, height, symbol) draw_letter('*')
效果验证
输入5时输出完全符合预期:
Enter an odd number 5 or greater: 5 *** * * * * * * ***
内容的提问来源于stack exchange,提问作者modomadodo200
相关产品推荐
相关产品推荐

