如何不用range做到上面的效果
时间: 2024-10-25 10:16:03 浏览: 11
如果不想使用`range()`函数,我们可以直接通过计算行数来构建菱形。以下是不使用`range()`的一个简单版本,同样使用了两个循环,一个用于上半部分,另一个用于下半部分:
```python
def print_diamond_alt(n):
space_count = n // 2
asterisk_count = 1
# 上半部分
while asterisk_count <= 2 * n - 1:
print(' ' * space_count + '*' * asterisk_count)
space_count -= 1
asterisk_count += 2
# 下半部分从倒数第二行开始
space_count = 1
asterisk_count = 2 * n - 1
# 逐渐减少空间并在每一行增加一个星号直到最中间
while space_count < n and asterisk_count > 0:
print(' ' * space_count + '*' * asterisk_count)
space_count += 1
asterisk_count -= 2
# 示例:打印5阶菱形
print_diamond_alt(5)
```
这种做法虽然看起来稍微复杂一些,但效果是一样的。它通过动态调整`space_count`和`asterisk_count`来达到构建菱形的目的。
阅读全文