gpt4 book ai didi

python-3.x - 没有打印功能的python 3中的字符串格式

转载 作者:行者123 更新时间:2023-12-04 02:57:31 25 4
gpt4 key购买 nike

试图了解 "%s%s"%(a,a) 是如何在下面的代码中工作的,到目前为止我只在 print 函数中看到过它。谁能解释一下它是如何工作的在 int() 里面?

a=input()
b=int("%s%s" %(a,a))

最佳答案

这个 "%s" 格式是从 C printf 格式借来的,但是更有趣,因为它不属于 print 语句。请注意,它只涉及传递给 print(或顺便说一句,任何函数)的一个参数:

print("%s%s" % (a,a))

而不是(像 C 一样)将可变数量的参数传递给一些接受并理解它们的函数:

printf("%s%s,a,a);

这是一种从字符串模板及其参数创建字符串的独立方法(例如,它解决了以下乏味的问题:“我想要一个具有格式化功能的记录器”,这可以在 C 或 C++ 中付出巨大的努力来实现,使用可变参数 + vsprintf 或 C++11 可变参数递归模板)。

请注意,此格式样式现在被视为旧版。现在您最好使用 format,其中占位符包含在 {} 中。

这里的一个直接优势是,由于参数重复,您只需要做:

int("{0}{0}".format(a))

(它两次引用了位置 0 的唯一参数)

https://pyformat.info/ 上的示例详细介绍了遗留和format 语法

或者从 python 3.6 开始你可以使用 fstrings:

>>> a = 12
>>> int(f"{a}{a}")
1212

关于python-3.x - 没有打印功能的python 3中的字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52277191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com