如何 return %u 字符串中的整数?
How to return an integer in a %u string?
我正在 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
在 out.append... 代码的正上方。字符串“-”是变量实际存储的内容。
它仍然不工作,我得到同样的错误。
将%
运算符改为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,) )
我正在 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
在 out.append... 代码的正上方。字符串“-”是变量实际存储的内容。
它仍然不工作,我得到同样的错误。
将%
运算符改为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,) )