为什么以下命令生成带有隔断线的输入。似乎隔断线出现在{}
之后。我之前使用过format
功能,它工作正常。现在发生了什么?
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 3
我的猜测是你正在从文件中读取这些数字,这意味着你读取的是字符串'3n'
而不是数字3
。
尝试删除带有str.strip
的尾随换行符:
print('true: {}, estimated: {}'.format(number_a.rstrip(), number_b))
更好的选择是在读取数据时对其进行清理,这样您就不必担心这样的事情。
numbers = []
with open(...) as f:
for line in f:
numbers.append(line.strip())
a, b = numbers[:2] # first two elements
print('true: {}, estimated: {}'.format(a, b))
显然,您的数据可能不遵循此示例中的格式,但要点是在源头处理这些事情。
我无法重现此问题。您的变量是否number_a
并number_b
字符串?如果是,则可能包含新行。 试试这个:
print('true: {}, estimated: {}'.format(int(number_a), int(number_b)))
例:
number_a = '4n'
number_b = '5'
print('true: {}, estimated: {}'.format(int(number_a), int(number_b)))
输出:
true: 4, estimated: 5