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

Python报错:int与str不可相加,求实现n^1到n^high的打印函数

嘿,我来帮你搞定这个问题~

你碰到的unsupported operand type(s) for +: int and str错误,根源很明确:你试图把整数(n**count计算出来的幂值)和字符串' '直接相加,Python可不允许不同类型的数值和字符串这么做哦。

另外看你的代码逻辑,嵌套的while循环也有点混乱——外层循环i < high,内层又用count <= high,这会导致第一次循环就把所有幂次都算完,后续外层循环根本起不到作用,逻辑完全冗余了。

给你两个修正后的方案,按需选择:

方案1:用for循环+列表拼接(更高效简洁)

def print_powers(n, high):
    # 用列表收集每个幂次的字符串形式
    power_strings = [str(n ** exponent) for exponent in range(1, high + 1)]
    # 用空格连接所有元素并打印
    print(' '.join(power_strings))

# 测试调用
print_powers(2, 5)

这个方案用列表推导式生成所有幂次的字符串,再用join拼接,比逐次拼接字符串效率高很多(毕竟字符串是不可变类型,每次拼接都会生成新对象)。

方案2:修正你的while循环写法

如果更习惯用while循环,调整逻辑并修复类型问题:

def print_powers(n, high):
    result = ''
    count = 1
    while count <= high:
        # 先把幂次结果转为字符串,再和空格拼接
        result += str(n ** count) + ' '
        count += 1
    # 用strip()去掉末尾多余的空格
    print(result.strip())

print_powers(2, 5)

运行这两个代码,都会输出2 4 8 16 32,完全符合你的需求~

内容的提问来源于stack exchange,提问作者Kezia.petch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:53:13