[英]how to remove the extra space after last number
在我的程序中,我在最后一個數字之后打印了一個額外的空格。 我怎樣才能刪除它?
def fibonacci(n):
a = 0
b = 1
if n == 1:
print(a, end=' ')
else:
print(a, end=' ')
print(b, end=' ')
for i in range(2, n):
c = a + b
a = b
b = c
print(c, end=' ')
fibonacci(int(input()))
輸入: 5
Output: 0 1 1 2 3
我在最后一個數字之后打印了一個額外的空格。
將生成數字的過程與打印它們的過程分開。 (這是您無論如何都應該做的事情,但在這種情況下也會發生這種情況,以便更容易解決問題。)例如,我們可以使用生成器來yield
多個值。 請注意,我們不需要處理任何特殊情況,我們也可以使用 pack-unpack 習慣用法進行多次賦值:
def fibonacci(n):
a, b = 1, 1
for i in range(n):
yield a
a, b = b, a + b
現在我們可以通過使用sep
print
而不是end
來顯示這些由空格分隔的值,並將每個值作為單獨的參數傳遞。 為此,我們需要使用*
顯式解包。 看起來像:
print(*fibonacci(10), sep=' ')
我們得到了想要的結果,沒有尾隨空格:
1 1 2 3 5 8 13 21 34 55
@Carcigenicate 建議您可以使用列表,
在下面的代碼中剛剛用list.append()
替換了print
語句
def fibonacci(n):
l1=[]
a = 0
b = 1
if n == 1:
print(a, end=' ')
l1.append(str(a))
else:
l1.append(str(a))
l1.append(str(b))
for i in range(2, n):
c = a + b
a = b
b = c
l1.append(str(c))
tr=" ".join(l1)
print(tr,end='')
print('h',end='')
fibonacci(int(input()))
output:
8
0 1 1 2 3 5 8 13h
正如您在 output 中看到的那樣,最后一個數字13
之后沒有多余的空間,我在13
之后打印了h
。
希望這對你有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.