正在阅读http://interactivepython.org/courselib/static/pythonds/Introduction/introduction.html#review-of-basic-python的第一章。为什么:
print("%s is %d years old." % (aName, age))
(又名使用格式化字符串)作为惯例而不是直接在句子中使用变量,即:
print(aName, "is", age, "years old.")
答案 0 :(得分:1)
使用格式化的字符串版本是个好习惯。
通常他们会更清楚地阅读,但对我来说最重要的是,它使internationalization and localization成为可能。
更好的是,使用关键字/映射版本。例如
print "{name} is {age} years old.".format(name=aName, age=age)
自动化工具可以更好地扫描程序中的这些字符串,以创建翻译所需的“.po”文件。
我通常只使用逗号版本,如果我正在做一些快速的事情,只想打印一堆数字或类似的东西。
答案 1 :(得分:0)
如前所述,str.format现在是推荐的方式。从我个人的经验来看,'%s'%(str)错误的例子是sql语句...
q = "select * from table where colName like '%string%' and colName2 = %s"
conn.cursor.execute(q%'screwsUp')
以上不起作用 但是下面呢
q = "select * from table where colName like '%string%' and colName2 = {0}"
conn.cursor.execute(q.format('works'))
当你想插入字典值时,格式也会更加性感......
d = {"first":"ronald","last":"McDonald"}
print "Name's {0[last]}... {0[first]} {0[last]}".format(d)