Python使用random.randint时报TypeError:int与str不支持+运算如何解决
错误原因
- 你在定义
playernum变量时,将原本是整数的随机数强制转为了字符串类型,而playernum0是整数类型,Python不支持整数和字符串直接执行算术加法运算,因此触发类型错误。
修复方法
有两种常用修复方案:
方案1:仅修改报错行,运算前统一类型
将报错的代码行改为如下内容,计算前先把playernum转回整数即可:
playernum2 = playernum0 + int(playernum)
方案2:从源头统一变量类型(更推荐)
数值类型的变量没必要在定义时就转成字符串,仅在需要拼接输出时处理类型即可,能避免大量同类类型错误,完整修正后的代码参考:
import random # 请确保Play变量已提前定义赋值,比如 Play = True while Play == True: computernum = random.randint(1,19) playernum = random.randint(1,10) print(f"Your first number is {playernum}.") playinput1 = input("Do you want to roll another number? <Y or N> ") if playinput1 == "Y": playernum0 = random.randint(1,10) playernum2 = playernum0 + playernum break
额外提示
- 如果后续需要用
computernum做算术运算,也不要在定义时就转字符串,按需在输出时转换即可。 - 注意你原代码开头没有导入random模块,运行前需要先加上
import random语句,否则会触发名称报错。
内容的提问来源于stack exchange,提问作者fleur333
相关产品推荐
相关产品推荐

