python输入输出

2019-08-05  本文已影响0人  微斯人_吾谁与归

前天做了那个网易的笔试,发现在输入输出问题上浪费许多时间。这里总结一下。

有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出。

while True:  
    try:  
        num = list(map(int, input().strip().split()))
        print(num[0]+num[1]),#print加逗号不会换行
    except EOFError:  
        break  

输入一个整数,告诉我们接下来有多少组数据,然后在输入每组数据的具体值

numcase = int(raw_input().strip())  
for case in range(numcase):  
      nums=[int(i) for i in input().strip().split()]
      print(...) 

输入有多组,并却题目告诉你每组输入遇见什么结束,与第三种不同之处在于,每组输入都有相应的细化

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, 

有多种输入数据,对于每组输入数据的第一个数代表该组数据接下来要输入数据量

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  

这种类型的输出注意的就是换行,这类题目说在输出样例中,每组样例之间有什么什么,所以我们在对应输出的同时要判断一下是否是最后一组输出,如果不是,就 将题目所说的东西输出(一般是换行或空格),如果是,就直接结束。

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



上一篇下一篇

猜你喜欢

热点阅读