Python 格式字符串中的 %s 是什么意思?
Python 中 %s
是什么意思? 下面的代码有什么作用?
例如...
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
What does %s
mean in Python? And what does the following bit of code do?
For instance...
if len(sys.argv) < 2:
sys.exit('Usage: %s database-name' % sys.argv[0])
if not os.path.exists(sys.argv[1]):
sys.exit('ERROR: Database %s was not found!' % sys.argv[1])
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
它是一种字符串格式化语法(借用自 C)。
请参阅“PyFormat”:
这是一个非常简单的示例:
%s
标记允许我插入(并可能格式化)一个字符串。 请注意,%s
标记被我传递给%
符号之后的字符串的任何内容所替换。 另请注意,我在这里也使用了一个元组(当只有一个字符串时,使用元组是可选的)来说明可以在一条语句中插入和格式化多个字符串。It is a string formatting syntax (which it borrows from C).
Please see "PyFormat":
Here is a really simple example:
The
%s
token allows me to insert (and potentially format) a string. Notice that the%s
token is replaced by whatever I pass to the string after the%
symbol. Notice also that I am using a tuple here as well (when you only have one string using a tuple is optional) to illustrate that multiple strings can be inserted and formatted in one statement.安德鲁的回答很好。
为了帮助您多一点,这里介绍了如何在一个字符串中使用多种格式:
如果您使用整数而不是字符串,请使用 %d 而不是 %s。
Andrew's answer is good.
And just to help you out a bit more, here's how you use multiple formatting in one string:
If you are using ints instead of string, use %d instead of %s.
format
方法是在 Python 2.6 中引入的。 它的功能更强大,而且使用起来也并不困难:The
format
method was introduced in Python 2.6. It is more capable and not much more difficult to use:%s
和%d
是格式说明符或用于格式化字符串、小数、浮点数等的占位符。最常用的格式说明符:
%s
:字符串%d
:小数%f
:浮点数自解释代码:
%s
and%d
are format specifiers or placeholders for formatting strings, decimals, floats, etc.The most common used format specifiers:
%s
: string%d
: decimals%f
: floatSelf explanatory code:
%s
表示使用Python的字符串格式化功能时字符串的转换类型。 更具体地说,%s
使用str()
函数将指定值转换为字符串。 将此与使用repr()
函数进行值转换的%r
转换类型进行比较。查看字符串格式化文档。
%s
indicates a conversion type of string when using Python's string formatting capabilities. More specifically,%s
converts a specified value to a string using thestr()
function. Compare this with the%r
conversion type that uses therepr()
function for value conversion.Take a look at the documentation for string formatting.
回答你的第二个问题:这段代码有什么作用?...
这是接受命令行参数的 Python 脚本的相当标准的错误检查代码。
因此,第一个
if
语句翻译为:如果你还没有向我传递一个参数,我将告诉你将来应该如何向我传递一个参数,例如你会在-screen:下一个
if
语句检查您传递给脚本的“数据库名称”是否确实存在于文件系统上。 如果没有,您将收到如下消息:来自文档:
To answer your second question: What does this code do?...
This is fairly standard error-checking code for a Python script that accepts command-line arguments.
So the first
if
statement translates to: if you haven't passed me an argument, I'm going to tell you how you should pass me an argument in the future, e.g. you'll see this on-screen:The next
if
statement checks to see if the 'database-name' you passed to the script actually exists on the filesystem. If not, you'll get a message like this:From the documentation:
这是 Python 3 中的一个很好的示例。
Here is a good example in Python 3.
正如其他答案正确提到的:
%s
运算符用于字符串格式化。尽管从 Python 3.6 及更高版本开始,引入了一种更直观的字符串格式化语法,称为
f-string
。来源
As the other answers rightfully mentioned: The
%s
operator is used in string formatting.Although as from Python 3.6 and above, a more intuitive string formatting syntax is introduced, called the
f-string
.Source