簡體   English   中英

如何刪除最后一個數字后的多余空格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM