尝试在for循环中传递字符串时出现TypeError

时间:2013-11-19 05:01:37

标签: python for-loop tuples

我正在尝试在for循环中的if语句之后传递一个元组。我不确定我做错了什么。

procs = ((1432, 'var', 'var2', procname),(1556, 'var4', 'var5', othername),) 

def killprocs(procname):
    print "searching for %s" % procname      
    for i in procs:
        if procname in i[3]:
            print "proc %s matches." % i
        else:
            pass

我明白了:

Traceback (most recent call last):
  File "processkiller.py", line 59, in <module>
    killprocs(args.procname)
  File "processkiller.py", line 24, in killprocs
    print "proc %s matches." % i
TypeError: not all arguments converted during string formatting

1 个答案:

答案 0 :(得分:3)

str.__mod__()检测到右侧操作数是元组,因此尝试使用格式化中的所有元素。要解决此问题,请创建一个包含元组的1元组。

print "proc %s matches." % (i,)