- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE232
Python实现打印菱形字符图案
任务要求
打印输出如下字符图形。
*
***
*****
*******
*********
*******
*****
***
*
任务分析
1.图案特征:输出对称菱形,上半部分为5层递增星号,下半部分为4层递减星号
2.代码规范:
使用*字符生成图案
不使用现成图形库
3.扩展性:支持自定义层数和字符
任务实现
方法一:基础循环法
#打印上半部分
foriinrange(5):
print(*(4-i)+**(2*i+1))
#打印下半部分
foriinrange(4):
print(*(i+1)+**(7-2*i))
说明:
上半部分循环5次,每行空格数由4-i计算
星号数按奇数递增,公式为2*i+1
下半部分循环4次,星号数按奇数递减
方法二:字符串对称生成法
layers=[*(4-i)+**(2*i+1)foriinrange(5)]
layers+=[*(i+1)+**(7-2*i)foriinrange(4)]
print(\n.join(layers))
说明:
使用列表推导式生成上下半部分的所有行
\n.join()将列表合并为完整字符串输出
方法三:数学中心对齐法
n=9
mid=n//2
foriinrange(n):
spaces=abs(mid-i)
stars=n-2*spaces
print(*spaces+**stars)
说明:
n控制总行数(必须为奇数)
abs(mid-i)计算每行对称的空格数
通用性强,修改n可生成不同大小的菱形
运行结果
*
***
*****
*******
*********
*******
*****
***
*
进程已结束,退出代码为0
Python实现打印对称空心菱形字符图形
任务要求
打印输出如下字符图形。
*
**
**
**
**
**
**
**
*
任务分析
*第1层:总宽度9,左右空格各4
**第2层:左右空格3,中间间隔1
**第3层:左右空格2,中间间隔3
**第4层:左右空格1,中间间隔5
**第5层:左右空格0,中间间隔7
(下半部分与上半对称)
任务实现
方法一:基础双层循环法
n=5
#上半部分
foriinrange(n):
print(*(n-i-1)+*+(*(2*i-1)+**(i!=0)))
#下半部分
foriinrange(n-2,-1,-1):
print(*(n-i-1)+*+(*(2*i-1)+**(i!=0)))
说明:
n参数控制菱形边长,循环范围n决定上半层数
n-i-1计算左侧空格数,2*i-1控制中间间隔
**(i!=0)避免首行重复输出星号
方法二:字符串拼接法
n=5
pattern=[]
foriinrange(1,2*n):
spaces=abs(n-i)#计算当前行左右空格数
stars=n-spaces#计算当前行理论最大星数
line=*spaces+*+*(2*(stars-1)-1)+(*ifstars1else)
pattern.append(line)
print(\n.join(pattern))
说明:
利用abs(n-i)统一处理上下半部
2*(stars-1)-1动态计算中间空格数
列表pattern存储每行字符串,最后统一拼接
方法三:镜像对称法
n=5
upper=[]
#生成上半部
foriinrange(n):
line=*(n-i-1)+*+*(2*i-1)+(*ifielse)
upper.append(line)
#镜像生成下半部
ful
文档评论(0)