Python约定 - 使用变量和替换

时间:2014-07-03 02:35:01

标签: python

正在阅读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.")

2 个答案:

答案 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)