次のコマンドは、ブレークラインで入力を生成するのはなぜですか?ブレークラインは{}
の後に表示されます。私は以前にformat
関数を使用していましたが、うまくいきました。今何が起きたの?str.formatで印刷すると不安定な改行が発生する
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 3
次のコマンドは、ブレークラインで入力を生成するのはなぜですか?ブレークラインは{}
の後に表示されます。私は以前にformat
関数を使用していましたが、うまくいきました。今何が起きたの?str.formatで印刷すると不安定な改行が発生する
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 3
私の推測では、あなたは、文字列の代わりに数3
の'3\n'
に読ん意味、ファイルからこれらの番号を読んでいますさ。
は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 = '4\n'
number_b = '5'
print('true: {}, estimated: {}'.format(int(number_a), int(number_b)))
出力:
true: 4, estimated: 5
'タイプ(NUMBER_A)' – nu11p01n73R
あなたは 'それ自身の上number_a'をしてください印刷することができます。それは実際には整数か、それとも末尾に改行がある文字列ですか? –