繁体   English   中英

python格式字符串TypeError:在字符串格式化期间不是所有参数都被转换

[英]python format string TypeError: not all arguments converted during string formatting

根据以下内容有很多条目:“TypeError:不是在字符串格式化期间转换的所有参数”但我没有找到原因,为什么:

print("File: %30s "%("name"))

工作正常,但不是这样:

leng=30
print("File: %"+ str(leng) +"s "%("name"))    

由于操作顺序,您的代码评估为:

"File: %" + str(leng) + ("s "%("name"))

要解决此问题,只需将字符串括起来,如:

("File" + ...)%("name")

后者仅适用于"s " % 使用分组括号:

print(("File: %" + str(leng) + "s ") % "name")    

与OP'请求没有关系,但是使用python3.6 f-string ,你可以避免使用两级字符串就地替换; 这是一个例子:

>>> filename = "some name"    
>>> print(f"File: {filename:-^{len(filename)+6}} ")
---some name---

对于旧版本的python ,其他答案适用。

相反,你可以做到

print("File: {:.30}".format(name))

其中name是预定义的文件名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM