如何在numbers_around函数中用星号替代目标数字n?
问题解决:用星号替代目标数字的范围打印函数
你的代码核心问题有两个:
- 循环变量使用了和函数参数同名的
n,导致原始目标数字被覆盖,无法判断当前数字是否需要替换 - 缺少对目标数字的判断逻辑,没有将
n替换为*
修正后的代码(基础版)
def numbers_around(n, k): original_n = n # 保存原始目标数字,避免被循环变量覆盖 for num in range(n - k, n + k + 1): if num == original_n: print('*', end=' ') else: print(num, end=' ') print() numbers_around(15, 3) numbers_around(8, 6) numbers_around(27, 2)
运行结果
12 13 14 * 16 17 18 2 3 4 5 6 7 * 9 10 11 12 13 14 25 26 * 28 29
更简洁的写法(利用三元表达式)
不需要额外保存原始n,只要循环变量用不同名称即可:
def numbers_around(n, k): for num in range(n - k, n + k + 1): print('*' if num == n else num, end=' ') print()
内容的提问来源于stack exchange,提问作者regular_everyday_pythonist
相关产品推荐
相关产品推荐

