You need to enable JavaScript to run this app. 如何在Python中将整数转换为字符串?解决str与int无法拼接报错
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将整数转换为字符串?解决str与int无法拼接报错

报错根因

Python是强类型语言,使用+号做字符串拼接时,要求两侧操作数必须都是字符串类型,当拼接的变量是int等非字符串类型时,就会直接抛出can only concatenate str (not "int") to str错误,和你之前用'sample text' + variable + 'sample text'写法触发的问题完全对应。

int转str的核心解决方法

直接调用Python内置的str()函数,将需要拼接的整数变量显式转换为字符串类型,即可完成正常拼接:

  • 触发报错的错误代码示例:
    game_level = 5
    print('当前游戏难度等级:' + game_level + ',击败3个敌人即可升级')
    
  • 修正后的可运行代码:
    game_level = 5
    print('当前游戏难度等级:' + str(game_level) + ',击败3个敌人即可升级')
    
游戏开发场景更高效的拼接方案

写游戏过程中经常需要拼接玩家分数、坐标、等级这类数值变量,每次手动转str()不仅繁琐,还容易漏写出错,更推荐以下更简洁的实现方式:

  • f-string自动类型转换(Python3.6+版本支持,是目前游戏开发最常用的写法):
    不需要手动做类型转换,在字符串前加f前缀,把变量放在{}占位符里,解释器会自动把非字符串类型的变量转为字符串完成拼接:
    player_hp = 88
    player_pos_x, player_pos_y = 320, 200
    print(f"玩家剩余血量:{player_hp},当前所在坐标:({player_pos_x}, {player_pos_y})")
    
  • str.format()格式化:
    兼容老版本Python,同样支持自动类型转换,写法为在字符串中用{}做占位符,调用format()传入对应变量:
    monster_count = 12
    print('当前地图剩余怪物数量:{}'.format(monster_count))
    
常见踩坑提醒

不要为了图方便,把全局存储的血量、分数、坐标这类需要做数值计算的int变量,提前批量转成str类型再存储,否则后续做血量扣减、分数累加、坐标位移的数值运算时,会触发新的类型不兼容报错;类型转换操作只在需要输出拼接的位置临时做即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 15:45:01