如何返回%u字符串中的整数?

2024-09-30 10:29:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python实现代码,但我必须使用以前实现的代码。我在使用继承的代码时遇到问题,无法在HTML中显示整数

out.append(
   """<td align="right">%u us</td><td align="right">%u us</td><td align="right">%u us</td><td align="right"><a style="cursor:default" title="average block size: %u B">%u</a></td><td align="right"><a style="cursor:default" title="average block size: %u B">%u</a></td><td align="right">%u</td>"""
   % (rtime,wtime,fsynctime,rbsize,rops,wbsize,wops,fsyncops,)
)

此代码给了我以下错误:

Traceback (most recent call last):
File ".../disks_tab.py", line 652, in disks
fsyncops,
TypeError: %u format: a number is required, not str

我试着像这样强制使用var类型:

if fsyncops == "-":
   fsyncops = 0

右上方的输出。附加。。。密码字符串“-”是变量实际存储的内容

它仍然不起作用,我得到同样的错误


Tags: 代码rightdefaultsizetitlestyle错误block
2条回答

%运算符更改为format()方法,并使用{}占位符。这并不要求相应的参数是特定类型,它将使用其__str__运算符对其进行格式化

out.append(
   """<td align="right">{} us</td><td align="right">{} us</td><td align="right">{} us</td><td align="right"><a style="cursor:default" title="average block size: {} B">{}</a></td><td align="right"><a style="cursor:default" title="average block size: {} B">{}</a></td><td align="right">{}</td>""".format(
    rtime,wtime,fsynctime,rbsize,rops,wbsize,wops,fsyncops)

或者将所有%u运算符更改为%s

您应该尝试将变量强制转换为期望的类型(在您的示例中为int)。这样,您就不需要弄乱遗留代码

#!/usr/bin/env python3

fsyncops = "-"

try:
  fsyncops = int(fsyncops)
except:
  fsyncops = 0

print ( """%u""" % (fsyncops,) )

相关问题 更多 >

    热门问题