从本例学到什么
- 如何做到“不换行输出”?举例来说,如何做到把三个整数输出到同一行?
- 如何按每行三个(或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=' ') #不是一行末尾的时候,输出不换行,输出内容后跟一个空格
知识点
- 输出不换行的做法。
以下语句使得输出不换行:
print(ds[i-1], end= ' ')
导致不换行的是end=’ ',这是一个关键字参数。它的意思是向print函数的end参数传递空格字符串。这样,print函数执行后,输出内容之后跟一个空格,且不换行。
对比而言,print(ds[i-1])产生的输出会换行,你也可以理解为输出内容之后跟一个换行符——这是默认的做法。
- 如果要在输出内容之后不跟空格,而是跟逗号,输出语句是: print(ds[i-1], end = ‘,’) 。这样不会换行。
- 要在输出内容之后不跟任何内容,输出语句是:print(ds[i-1], end = ‘’) 。这一句语句中,传给end参数的值是空字符,不是空格字符。空字符与空格字符串是不同的。这一语句产生的输出不会换行。
- “按每行k个元素的格式”输出m个数的做法是:
(1)依次输出第i个数,i=1, 2, …, m。
(2)如果i是k的倍数,那么输出该数后跟换行符。如果i等于m,则其后也跟换行符。否则,输出该数后跟空格字符。
小结
- print(x, end=’ ')中,关键字参数end = ’ '使得输出内容之后跟一个空格,不换行。
- 上一节讲解了“按每行k个元素的格式”输出m个数的做法。