为什么以下命令使用breakline生成输入。似乎断续线出现在{}
之后。之前我使用过format
函数,它运行正常。现在发生什么事?
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 3
答案 0 :(得分:3)
我的猜测是你正在从文件中读取这些数字,这意味着你用字符串'3\n'
而不是数字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))
显然,您的数据可能不符合此示例中的格式,但外卖是在源头处理这些内容。
答案 1 :(得分:1)
我无法重现此问题。你的变量number_a
和number_b
是否有任何机会?如果是,它可能包含一个新行。
试试这个:
print('true: {}, estimated: {}'.format(int(number_a), int(number_b)))
示例:
number_a = '4\n'
number_b = '5'
print('true: {}, estimated: {}'.format(int(number_a), int(number_b)))
输出:
true: 4, estimated: 5