Python 使用str.format打印时不稳定的换行
为什么以下命令会生成带有特征线的输入。特征线似乎出现在Python 使用str.format打印时不稳定的换行,python,string,format,Python,String,Format,为什么以下命令会生成带有特征线的输入。特征线似乎出现在{}之后。我以前使用过格式函数,效果很好。现在发生了什么 print('true: {}, estimated: {}'.format(number_a, number_b)) true: 3 , estimated: 3 我猜您正在从文件中读取这些数字,这意味着您读取的是字符串'3\n',而不是数字3 尝试使用str.strip删除尾部换行符: print('true: {}, estimated: {}'.format(number_
{}
之后。我以前使用过格式
函数,效果很好。现在发生了什么
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 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))
显然,您的数据可能不符合本例中的格式,但需要从源代码处处理这些数据。我猜您是从文件中读取这些数字,这意味着您读取的是字符串
'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))
显然,您的数据可能不符合本例中的格式,但需要在源代码处处理这些内容。我无法重现此问题。您的变量
number\u a
和number\u 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
我无法复制这个问题。您的变量
number\u a
和number\u 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
type(number\u a)
您能自己打印number\u a
吗。它实际上是一个整数,还是一个带尾随换行符的字符串?type(number\u a)
您能自己打印number\u a
吗。它实际上是一个整数,还是一个带有尾随换行符的字符串?