爲什麼以下命令會使用breakline生成輸入。看起來隔行線出現在{}
之後。我之前使用了format
函數,它工作正常。現在發生什麼事?使用str.format打印時出現不規則的換行符
print('true: {}, estimated: {}'.format(number_a, number_b))
true: 3
, estimated: 3
爲什麼以下命令會使用breakline生成輸入。看起來隔行線出現在{}
之後。我之前使用了format
函數,它工作正常。現在發生什麼事?使用str.format打印時出現不規則的換行符
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))
顯然,你的數據可能不遵循此示例中的格式,但外賣是從源頭來處理這些事情。
我無法重現此問題。你的變量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'。它實際上是一個整數,還是它是一個尾隨換行符的字符串? –