ACM模式-Python输入输出

1. 储备知识

  • 所有从键盘输入的都是字符串。如输入 12,实际上是' 12'。
  • input()函数:input()函数等待用户从键盘输入,接收一个字符串,包括空格,都可以输入。【只有回车不接受,作为结束符】这说明每调用一次input()函数只会识别到输入的一行。
  • str.split(): str.split()等价于str.split(' ')即以空格形式分开字符串,返回一个字符串数组。例如:若输入'1 2 3 ', 则会得到['1','2','3']. 同时其会将字符串前后空格忽视掉。
  • str.strip(): str.strip()等价于str.strip(' ')默认忽视掉str前后的空格,返回忽视相应字符后的字符串。str.strip(',')默认忽视掉str前后的, 以此类推。
  • map(fun, iterable): 将fun应用于可迭代对象的iterable的每个元素。一般搭配list使用,转成数组。或者直接将某行的不同值赋给不同变量: m,n,t = map(int, input().split())。
  • sys.stdin.readline(): sys模块的输入stdin,获取输入的一行。
  • iter(fun, stop_flag): 每次都调用函数fun,直至遇到停止标志stop_flag。

 2. 读取输入

读取单行输入

if __main__ == '__name__':
    a = input().split()/list(map(int, input().split()))
    print(a)

读取多行输入且第一行为行数(即固定行数)

if __name__ == '__main__':
    n = input()  # 获取行数
    for _ in range(n)  # 从第二行开始获取内容并根据题目来操作
        # 这里我直接把输入转为数组
        print(list(map(int, input().split())))

读取多行输入但不知有多少行

# 以读入空行且是空字符串结束

if __name__ == '__main__':
    # 以读入空行为结束
    arr = []
    for line in iter(input,''):
        arr.append(line.split())
    print(arr)

# 以读入空行结束(这里的空行可以由多个空格组成 也视作结束)

if __name__ == '__main__':
    try:
        arr = []
        while True:
            str_input = input().strip()   # 这样即使遇到空行 也会转为空字符串 就是与上一个结束情况不同的地方所在
            if str_input == '':
                break
            arr.append(str_input.split())
        print(arr)
    except:
        pass

# 利用sys.strdin.readline()实现,只需将上述的input()都换成sys.strdin.readline()即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值