前天做了那個網(wǎng)易的筆試,發(fā)現(xiàn)在輸入輸出問題上浪費許多時間。這里總結(jié)一下。
一
有多組輸入數(shù)據(jù),但沒有具體的告訴你有多少組,只是讓你對應每組輸入,應該怎樣輸出。
while True:
try:
num = list(map(int, input().strip().split()))
print(num[0]+num[1]),#print加逗號不會換行
except EOFError:
break
二
輸入一個整數(shù),告訴我們接下來有多少組數(shù)據(jù),然后在輸入每組數(shù)據(jù)的具體值
numcase = int(raw_input().strip())
for case in range(numcase):
nums=[int(i) for i in input().strip().split()]
print(...)
三
輸入有多組,并卻題目告訴你每組輸入遇見什么結(jié)束,與第三種不同之處在于,每組輸入都有相應的細化
tcase = int(raw_input().strip())
for case in range(tcase):
a, b = map(int, input().strip().split())
if a == 0 and b == 0:
break
print a + b,
四
有多種輸入數(shù)據(jù),對于每組輸入數(shù)據(jù)的第一個數(shù)代表該組數(shù)據(jù)接下來要輸入數(shù)據(jù)量
while True:
try:
data = map(int, input().strip().split())
n, array = data[0], data[1:]
sum = 0
for i in range(n):
sum += array[i]
print sum,
except EOFError:
raise
五
這種類型的輸出注意的就是換行,這類題目說在輸出樣例中,每組樣例之間有什么什么,所以我們在對應輸出的同時要判斷一下是否是最后一組輸出,如果不是,就 將題目所說的東西輸出(一般是換行或空格),如果是,就直接結(jié)束。
while True:
data = raw_input().strip()
if data.isspace():
break
else:
data = map(int, data)
n, array = data[0], data[1:]
sum = 0
for i in range(n):
sum += array[i]
print sum,
六:列表生成式
[x * x for x in range(1, 11)]
[x * x for x in range(1, 11) if x % 2 == 0]
[m + n for m in 'ABC' for n in 'XYZ']
>>> d = {'x': 'A', 'y': 'B', 'z': 'C' }
>>> for k, v in d.items():
... print(k, '=', v)
...
y = B
x = A
z = C