def printList(myList): maxDigits = len(str(len(myList))) Format = '0{0}d'.format(maxDigits) for i in myList: eval('print "#{0:' + Format + '}".format(i+1),myList[i]')
它给出了一个错误:
print "#{0:01d}".format(i+1),myList[i] ^SyntaxError: invalID Syntax
我试图利用this,并重新编写它:
def printList(myList): maxDigits = len(str(len(myList))) Format = '0{0}d'.format(maxDigits) for i in myList: obj = compile(src,'','exec') eval('print "#{0:' + Format + '}".format(i+1),myList[i]')
但这抱怨我:
nameError: name 'i' is not defined
附:我正在处理python2.6
解决方法 你不需要eval:def printList(myList): maxDigits = len(str(len(myList))) str_format = '#{0:0' + str(maxDigits) + '}' for i,elem in enumerate(myList,1): print str_format.format(i),elem
或者,正如@svenMarnach所说,你甚至可以将格式化参数放入一个格式调用中:
def printList(myList): maxDigits = len(str(len(myList))) for i,1): print '#{1:0{0}} {2}'.format(maxDigits,i,elem)总结
以上是内存溢出为你收集整理的Python:如何在循环中从`eval`调用`print`?全部内容,希望文章能够帮你解决Python:如何在循环中从`eval`调用`print`?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)