Python入門100個實例(32)——按每行三個元素的格式輸出

從本例學到什麼

  1. 如何做到“不換行輸出”?舉例來說,如何做到把三個整數輸出到同一行?
  2. 如何按每行三個(或5個,或n個)元素的格式輸出?

實例程序

題目描述

本題要求編寫程序,對順序讀入的n個整數,順次計算後項減前項之差,並按每行三個元素的格式輸出結果。

輸入格式:
輸入的第一行給出正整數n(1<n≤10)。隨後一行給出n個整數,其間以空格分隔。

輸出格式:
順次計算後項減前項之差,並按每行三個元素的格式輸出結果。數字間空一格,行末不得有多餘空格。

輸入樣例:
10
5 1 7 14 6 36 4 28 50 100

輸出樣例:
-4 6 7
-8 30 -32
24 22 50

題目的解答

n = int(input())
#輸入一組整數,存入ns列表
ns = []
n_strs = input().split()
for s in n_strs:
    ns.append(int(s))
#求出差值列表
ds = []
for i in range(n-1):
    ds.append(ns[i+1] - ns[i])

for i in range(1, n):
	#輸出第i個數之際,有兩種情形表明到達一行末尾:i是3的倍數或者i是最後一個元素的索引。
    if i % 3 == 0 or i == n-1:
        print(ds[i-1])  #每一行的末尾,換行輸出
    else:
        print(ds[i-1], end=' ')  #不是一行末尾的時候,輸出不換行,輸出內容後跟一個空格

知識點

  1. 輸出不換行的做法。
    以下語句使得輸出不換行:
print(ds[i-1], end= '  ')

導致不換行的是end=’ ',這是一個關鍵字參數。它的意思是向print函數的end參數傳遞空格字符串。這樣,print函數執行後,輸出內容之後跟一個空格,且不換行。
對比而言,print(ds[i-1])產生的輸出會換行,你也可以理解爲輸出內容之後跟一個換行符——這是默認的做法。

  1. 如果要在輸出內容之後不跟空格,而是跟逗號,輸出語句是: print(ds[i-1], end = ‘,’) 。這樣不會換行。
  2. 要在輸出內容之後不跟任何內容,輸出語句是:print(ds[i-1], end = ‘’) 。這一句語句中,傳給end參數的值是空字符,不是空格字符。空字符與空格字符串是不同的。這一語句產生的輸出不會換行。
  3. “按每行k個元素的格式”輸出m個數的做法是:
    (1)依次輸出第i個數,i=1, 2, …, m。
    (2)如果i是k的倍數,那麼輸出該數後跟換行符。如果i等於m,則其後也跟換行符。否則,輸出該數後跟空格字符。

小結

  1. print(x, end=’ ')中,關鍵字參數end = ’ '使得輸出內容之後跟一個空格,不換行。
  2. 上一節講解了“按每行k個元素的格式”輸出m個數的做法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章