Python实现4-17区间输入打印指定星号图案的问题求助
功能实现方案
核心解决思路
你需要在输入环节增加循环校验逻辑,既可以拦截不在4-17区间的整数输入,也可以处理用户输入非数字的异常场景,保证程序健壮性。
完整可运行代码
while True: try: n = int(input('Enter number in range 4 to 17: ')) # 校验取值范围 if 4 <= n <= 17: break print("输入不符合要求,请输入4到17之间的整数") except ValueError: print("输入不是有效整数,请重新输入") # 原有星号打印逻辑无需修改 for i in range(4, n+1, 1): for j in range(4, i + 1): print('*', end='') print() for i in range(n, 4, -1): for j in range(4, i): print('*', end='') print()
代码说明
- 外层
while True循环会持续要求用户输入,直到拿到符合要求的参数才跳出循环 try-except块捕获非整数输入的报错,避免程序直接崩溃- 范围判断
4 <= n <=17严格限制输入值的区间,符合需求 - 原有星号图案打印逻辑保持不变,输出效果和预期一致
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

