You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在numbers_around函数中用星号替代目标数字n?

问题解决:用星号替代目标数字的范围打印函数

你的代码核心问题有两个:

  1. 循环变量使用了和函数参数同名的n,导致原始目标数字被覆盖,无法判断当前数字是否需要替换
  2. 缺少对目标数字的判断逻辑,没有将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:25:58