草庐IT

format-specifiers

全部标签

python - 在 Python 中使用 format() 方法打印 boolean 值 True/False

我试图打印boolean表达式的真值表。在执行此操作时,我偶然发现了以下内容:>>>format(True,"")#showsTrueinastringrepresentation,sameasstr(True)'True'>>>format(True,"^")#centersTrueinthemiddleoftheoutputstring'1'只要我指定了格式说明符,format()转换True至1.我知道bool是int的子类,所以True计算结果为1:>>>format(True,"d")#showsTrueinadecimalformat'1'但是为什么使用格式说明符会改变'T

Python 字符串格式 : is '%' more efficient than 'format' function?

我想比较不同的变量在Python中构建一个字符串:使用+进行连接(简称“加号”)使用%使用"".join(list)使用format函数使用"{0.}".format(object)我比较了3种类型的场景带有2个变量的字符串带有4个变量的字符串字符串有4个变量,每个变量使用两次我每次测量了100万次操作,平均执行了6个测量。我想出了以下时间安排:在每种情况下,我得出以下结论连接似乎是最快的方法之一使用%格式化比使用format函数格式化快得多我相信format比%好得多(例如在thisquestion中)并且%几乎已被弃用。因此,我有几个问题:%真的比format快吗?如果是,那是为什

Python matplotlib : memory not being released when specifying figure size

我正在使用matplotlib生成许多数值模拟结果图。这些图用作视频中的帧,因此我通过重复调用类似于此的函数来生成其中的许多:frompylabimport*defplot_density(filename,i,t,psi_Na):figure(figsize=(8,6))imshow(abs(psi_Na)**2,origin='lower')savefig(filename+'_%04d.png'%i)clf()问题在于,每次调用此函数时,python进程的内存使用量都会增加几兆字节。例如,如果我用这个循环调用它:if__name__=="__main__":x=linspace(

python - 文本格式错误 : '=' alignment not allowed in string format specifier

'='alignment在下面的错误信息中是什么意思,为什么这段代码会导致呢?>>>"{num:03}".format(num="1")Traceback(mostrecentcalllast):File"",line1,inValueError:'='alignmentnotallowedinstringformatspecifier代码有一个微妙的问题:输入值"1"是文本,而不是数字。但是错误消息似乎与此无关。错误消息中没有任何内容表明为什么“'='对齐”是相关的,并且它没有出现在代码中。那么发出那个错误信息有什么意义呢? 最佳答案

python - 在 Python 中将字符串转换或取消格式化为变量(如 format(),但相反)

我有Version1.4.0\n和Version1.15.6\n形式的字符串,我想要一种提取这三个数字的简单方法从他们。我知道我可以使用format方法将变量放入字符串中;我基本上想倒着做,像这样:#SoIknowIcandothis:x,y,z=1,4,0print'Version{0}.{1}.{2}\n'.format(x,y,z)#Outputis'Version1.4.0\n'#ButI'dliketobeabletoreverseit:mystr='Version1.15.6\n'a,b,c=mystr.unformat('Version{0}.{1}.{2}\n')#An

python 3 : How to specify stdin encoding

在将代码从Python2移植到Python3时,我在从标准输入读取UTF-8文本时遇到了这个问题。在Python2中,这很好用:forlineinsys.stdin:...但是Python3需要来自sys.stdin的ASCII,如果输入中有非ASCII字符,我会收到错误:UnicodeDecodeError:'ascii'codeccan'tdecodebyte..inposition..:ordinalnotinrange(128)对于普通文件,我会在打开文件时指定编码:withopen('filename','r',encoding='utf-8')asfile:forlinei

Python argparse : Is there a way to specify a range in nargs?

我有一个支持参数列表的可选参数。我的意思是,它应该支持:-f12-f123但不是:-f1-f1234有没有办法在argparse中强制执行此操作?现在我使用nargs="*",然后检查列表长度。编辑:根据要求,我需要的是能够定义一系列可接受的参数数量。我的意思是,说(在示例中)2或3个args是正确的,但不是1或4或任何不在2..3范围内的东西 最佳答案 您可以使用customaction来执行此操作:importargparsedefrequired_length(nmin,nmax):classRequiredLength(ar

Python "best formatting practice"用于列表、字典等

我一直在查看Python大型列表和字典的代码格式化最佳实践的文档,例如,something={'foo':'bar','foo2':'bar2','foo3':'bar3'.....200charswide,etc..}或something={'foo':'bar','foo2':'bar2','foo3':'bar3',...}或something={'foo':'bar','foo2':'bar2','foo3':'bar3',...}如何处理列表/字典的深度嵌套? 最佳答案 我的首选方式是:something={'foo':'

python - f-strings 与 str.format()

我在我的Python3.5项目中经常使用.format(),但我担心它会在下一个Python版本中被弃用,因为f-strings是新的一种字符串文字。>>>name="Test">>>f"Myappnameis{name}."'MyappnameisTest.'格式化字符串功能会完全取代旧的.format()吗?而且从现在开始,是不是所有情况都使用新样式比较好?我知道这是基于“简单胜于复杂”的理念。但是,性能问题呢?它们之间有什么区别吗?还是只是相同功能的简单外观? 最佳答案 I'mafraidthatitwillbedepreca

python - 返回要馈送到 string.format() 的参数元组

目前,我正在尝试在Python中获取一个方法来返回零、一个或两个字符串的列表以插入字符串格式化程序,然后将它们传递给字符串方法。我的代码如下所示:classPairEvaluator(HandEvaluator):defreturnArbitrary(self):return('ace','king')pe=PairEvaluator()cards=pe.returnArbitrary()print('Twopair,{0}sand{1}s'.format(cards))当我尝试运行此代码时,编译器会给出IndexError:tupleindexoutofrange。我应该如何构造我的