python 2.x 输入输出

简单总结一下python 2.x 的输入输出方式,如使用了sys模块需要先import sys导入。

1. 输入为一个int类型的数据

 n = input()

2.输入为字符串

arr = raw_input(),此时得到的为字符串本身,如输入adae,得到的是字符串'adae'。

arr = sys.stdin.readline(),若采用这种方式,此时得到的为'adae\n’,末尾多了一个换行符,需要把这个换行符截断,一般直接采用arr = sys.stdin.readline().strip('\n'),即可得到正常的输入字符串

3.输入为一行int类型数据,如 2 4 5 6 7

arr = map(int, raw_input().split())

arr = map(int, sys.stdin.readline().strip('\n').split())

首先用split将输入的字符串按空格分开,split默认分隔方式为空格,可针对输入数据格式调整,如输入为2,4,5,6,7,用逗号隔开,那么这里可以使用split(',')。map函数则是根据提供的函数(这里的函数是int函数),对制定序列做映射(这里的序列是将输入字符串按空格分割的结果),上面的使用方式,左右是把分割后的列表逐元素映射为int类型,即可得到包含一行输入元素的列表。

4.多行输入

可采用lines = sys.stdin.readlines(),一次性读取多行输入。再使用for line in lines处理每一行输入,但要注意,这里的line会包含末尾的'\n’换行符,要进行处理,line = line.strip('\n‘),再进行后续处理。这种适合牛客网的在线编程,但在本地IDE调试程序时,不要使用这样的方式,程序会一直读取输入。

牛客网官方建议方式为:


import sys
try :
    while True:
        line = sys.stdin.readline().strip()
        if  line == '' :
           break
            lines = line.split()
            print int (lines[ 0 ]) + int (lines[ 1 ])
except:
    pass

输出方式:

在线编程题常要求输出结果序列,如 2 3 4 5,或2345(将结果list中的元素拼接在一起,常出现在求几个数组合起来形成的最大数或最小数)

对于第一种,以空格形式隔开,若输出list为res,那么可采用" ".join(map(str, res)),双引号内为空格.

若为第二种,中间没有空格隔开,那么就直接采用“”.join(map(str, res)).

以上要求条件是res为数值形式的list,如res = [3, 4, 5]。若为str类型的list,就不用转换了,直接"".join(res),如res = ['a', 'b', 'd']。

猜你喜欢

转载自blog.csdn.net/leogo17/article/details/80003622