# -*- coding:utf-8 -*-
import math
row = int( input() )
if row == 1:
print("*", end = "" )
exit()
if row % 2 == 0 :
raise ValueError
row = math.ceil( row / 2.0 )
for n in range( 1, row + 1 ):
i = 2 * n - 1 #每一行*的个数
j = ( row - n ) * 2 #每一行空格的个数
for jj in range(j): #控制输出每一行的空格
print( " ", end="" )
if i > 1: #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出
for ii in range(i):
if ii != i - 1:
print("* ", end="" )
else:
print("*")
else: #如果一行的字母*的个数等于1,则直接输出*
print("*")
# 输出完菱形的上半部分,下半部分直接通过反向控制输出
#********* Begin *********#
#********* End *********#
```python
python:菱形程序下半部分反向输出?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-天际的海浪 2022-03-16 23:28关注
就是把for循环整个复制一份
第一行改成从row-1 循环到 1,倒数循环
for n in range( row-1 ,0, -1 ):# -*- coding:utf-8 -*- import math row = int( input() ) if row == 1: print("*", end = "" ) exit() if row % 2 == 0 : raise ValueError row = math.ceil( row / 2.0 ) for n in range( 1, row + 1 ): i = 2 * n - 1 #每一行*的个数 j = ( row - n ) * 2 #每一行空格的个数 for jj in range(j): #控制输出每一行的空格 print( " ", end="" ) if i > 1: #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出 for ii in range(i): if ii != i - 1: print("* ", end="" ) else: print("*") else: #如果一行的字母*的个数等于1,则直接输出* print("*") # 输出完菱形的上半部分,下半部分直接通过反向控制输出 #********* Begin *********# for n in range( row-1 ,0, -1 ): i = 2 * n - 1 #每一行*的个数 j = ( row - n ) * 2 #每一行空格的个数 for jj in range(j): #控制输出每一行的空格 print( " ", end="" ) if i > 1: #如果一行字母*的个数大于1,则要控制*和*之间的空格格式然后输出 for ii in range(i): if ii != i - 1: print("* ", end="" ) else: print("*") else: #如果一行的字母*的个数等于1,则直接输出* print("*") #********* End *********#
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
解决 2无用
悬赏问题
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?