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

Python实现数字每位平方运算?示例代码无法运行求助

问题分析与代码修正

咱们先拆解下你的代码里的几个核心问题:

  • 你传入的num是整数类型(9119),但整数根本没有split()方法——这个方法是字符串专属的,所以代码运行第一步就会抛出错误。
  • 就算把数字转成字符串,split()默认是按空格分割,而你的数字是连续无空格的,完全没法用这个方法拆分出单个数字。
  • 就算拿到了单个数字字符,它也是字符串类型,直接做**2幂运算会报错,必须先转成整数才行。
  • 你的代码是逐个打印平方结果,但需求是把这些结果拼接成一个完整的字符串输出(比如811181),而不是分开打印。

修正后的代码

def sq(num):
    # 先把整数转成字符串,才能逐个遍历每个数字字符
    num_str = str(num)
    result = ""
    for char in num_str:
        # 字符转整数→计算平方→转回字符串→拼接到结果中
        squared = str(int(char) ** 2)
        result += squared
    # 输出最终拼接好的结果
    print(result)

num = 9119
sq(num)

代码逻辑解释

  1. 转字符串遍历:str(num)把整数9119转成字符串"9119",这样就能逐个取出每个数字字符('9'、'1'、'1'、'9')。
  2. 平方计算与拼接:遍历每个字符时,先转成整数计算平方,再转回字符串拼接到result变量里,确保最终是连续的字符串。
  3. 输出结果:循环结束后,result就是需求的"811181",直接打印即可。

如果想让代码更简洁,还可以用列表推导式一行实现:

def sq(num):
    print(''.join(str(int(c)**2) for c in str(num)))

sq(9119)

内容的提问来源于stack exchange,提问作者Abhiseck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:24:20