【发布时间】:2011-06-26 16:22:25
【问题描述】:
我是Python的新用户,看代码的时候有些地方不知道。所以我在这里问。
cmd = u"sudo umount %(mountpoint)s >>%(log)s 2>&1"
我知道%(word) 是用来代替后来使用的词,例如cmd % {'word':'new word'},但我不明白为什么后面有s。而且我不知道字符串开头的“u”的含义。
【问题讨论】:
我是Python的新用户,看代码的时候有些地方不知道。所以我在这里问。
cmd = u"sudo umount %(mountpoint)s >>%(log)s 2>&1"
我知道%(word) 是用来代替后来使用的词,例如cmd % {'word':'new word'},但我不明白为什么后面有s。而且我不知道字符串开头的“u”的含义。
【问题讨论】:
开头的u 表示“Unicode”(即它是一个Unicode 字符串)。每个格式化代码后面的s 表示将值解释为字符串,而不是d 用于十进制等。
有关所有详细信息,请参阅http://docs.python.org/library/stdtypes.html#string-formatting-operations 的文档。
【讨论】:
字符串开头的u表示是unicode字符串。
结尾的 s 表示格式的那部分应该是字符串。如果它是 a a d 它将是一个整数,如果它是一个 f 它将是一个浮点数
【讨论】:
u 表示它是一个 unicode 字符串。s 代表字符串。【讨论】:
s 是转换说明符,表示将其打印为字符串。
参见string formatting,第 3 点:
转换标志(可选),影响某些转换类型的结果。
前导u 表示它是unicode 对象,而不是str。
请参阅Unicode in Python, Completely Demystified,详细了解两者之间的区别。
【讨论】: