编写一个控制台应用程序,从键盘中输入整数n,输出如下图所示的图形,使用合适的try结构控制程序的正确性,防止用户的非法输入。
时间: 2023-06-25 22:07:19 浏览: 81
以下是一个符合要求的控制台应用程序:
```python
while True:
try:
n = int(input("请输入一个正整数n:"))
if n < 1:
raise ValueError
break
except ValueError:
print("输入错误,请重新输入")
for i in range(1, n+1):
for j in range(n-i):
print(" ", end="")
for k in range(i*2-1):
print("*", end="")
print()
for i in range(n-1, 0, -1):
for j in range(n-i):
print(" ", end="")
for k in range(i*2-1):
print("*", end="")
print()
```
该程序首先使用一个无限循环,要求用户输入一个正整数n,如果输入非法则抛出ValueError异常,直到输入合法为止。接着,使用两个循环分别打印上半部分和下半部分的图形,其中第一个循环控制行数,第二个循环控制每一行的星号数量。每行星号数量为(i*2-1),其中i为当前行数。每一行星号前面的空格数量为n-i,即每行都向右对齐。
下面是一个输出示例:
```
请输入一个正整数n:5
*
***
*****
*******
*********
*******
*****
***
*
```
阅读全文