编写一个会写2的程序,输入:一个3到100的整数,输出一个由*组成的长宽都是n的z字图形
时间: 2025-03-16 08:12:40 浏览: 36
<<
以下是一个 Python 程序,它可以接受用户输入的一个介于 3 到 100 的整数 `n`,然后输出一个由星号(*)组成的 Z 字形图案:
```python
def print_z_pattern(n):
if not (3 <= n <= 100): # 检查输入是否合法
raise ValueError("请输入范围在 [3, 100] 内的整数")
for i in range(n):
# 第一行、最后一行或对角线位置打印 *
if i == 0 or i == n - 1 or i == n - 1 - (n - 1) + (i - (n // 2)):
line = '*' * n
else:
line = [' ' for _ in range(n)]
# 打印从左下到右上的斜杠部分
line[n - 1 - i] = '*'
line = ''.join(line)
print(line)
# 获取用户输入并调用函数
try:
user_input = int(input("请输入一个 3 到 100 的整数: "))
print_z_pattern(user_input)
except ValueError as e:
print(e)
```
### 解释
1. **合法性检查**:
首先确保输入值 `n` 在 `[3, 100]` 范围内。如果不在范围内,则抛出异常提示用户重新输入。
2. **生成每一行**:
使用循环逐行列出模式中的字符:
- 当前行为第一行 (`i == 0`) 或最后一行 (`i == n-1`) 时,整个字符串都填充为 `'*'`;
- 对于中间行,我们构造了一个长度为 `n` 的空格列表,并且根据逻辑将相应的位置设置成 `'*'` 来构成“Z”形状的关键部分。
3. **打印结果**:
将构建好的每行内容逐一打印出来形成完整的"Z"字型图样。
此代码利用了基本控制结构与数组操作技巧来完成指定任务。
阅读全文
相关推荐
















