Python中使用*args处理字符串列表时遇TypeError问题求助
问题原因
你的代码报错是因为sum初始设成了整数0,但传入的参数都是字符串类型,Python不允许整数和字符串直接做+=运算,所以触发了TypeError。
两种解决方案
1. 转成整数求和
如果是要计算这些数字字符串的数值总和,在循环里把每个字符串转成整数就行:
def add(*args): sum = 0 for i in args: sum += int(i) return sum print(add("1", "2", "3", "4")) # 输出 10
嫌循环麻烦的话,也可以用一行代码简化:
def add(*args): return sum(int(i) for i in args)
2. 直接拼接字符串
如果是要把这些字符串连起来,把sum的初始值改成空字符串即可:
def add(*args): sum = "" for i in args: sum += i return sum print(add("1", "2", "3", "4")) # 输出 "1234"
同样可以简化成更Pythonic的写法:
def add(*args): return "".join(args)
内容的提问来源于stack exchange,提问作者zirklja
相关产品推荐
相关产品推荐

