gpt4 book ai didi

python - % 如何在 Python 中应用于此方法?

转载 作者:行者123 更新时间:2023-11-28 20:54:29 25 4
gpt4 key购买 nike

从我对 python 的研究中,我发现了 % 的两个用途。它可以用作所谓的模数,这意味着它将除以它左边的值和它右边的值,然后吐出余数。

另一个用途是字符串格式化程序。所以我可以做类似 'Hi there %s' % name 的事情,其中​​ name 是一个名称列表。

此外,如果您在字符串格式中看到 %%,则表示将输入文字 %

这是我的问题,我发现了这个:

class FormatFormatStr(FormatObj):
def __init__(self, fmt):
self.fmt = fmt

def tostr(self, x):
if x is None: return 'None'
return self.fmt%self.toval(x)

return self.fmt%self.toval(x) 是什么意思?它不能是模数,因为 toval 会给我一个字符串。它不是真正的字符串格式化程序,因为没有另一个百分号。

另外,与此相关:

def csvformat_factory(format):
format = copy.deepcopy(format)
if isinstance(format, FormatFloat):
format.scale = 1. # override scaling for storage
format.fmt = '%r'
return format

format.fmt = '%r' 中的百分比是什么意思?这是否意味着在 repr() 中插入一个字符串?或者它是否意味着插入变量 r 代表的内容? r在整个程序中也指的是recarray。

谢谢大家。希望这是有道理的 =)

最佳答案

字符串 % 运算符比您想象的要简单。左边是一根绳子,右边是各种东西。左边不一定是文字串,它可以是一个变量,或者是另一个计算的结果。任何生成字符串的表达式都对 % 的左侧有效。

在您的第一个示例中,self.fmt 是一个字符串。为了在这种情况下有用,它应该有一个百分号。

在您的第二个示例中,format.fmt 被设置为用作 % 左侧的有用字符串。在这种情况下,“%r”的意思是,将值的 repr() 插入到字符串中,如您所说。

关于python - % 如何在 Python 中应用于此方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1484375/

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