python读取控制台的输入数据

前言

我们一般在牛客网刷题的时候不可避免的要从控制台读取数据,那么今天这篇博客就主要讲讲如何读取,读取数据之后才可以进行接下的操作。

读取单行输入

当输入的数据只有一行时,比如题目要求输入如下数据(中间用一个空格隔开)

1 2 3 5 6 9 12 3

读取单行数据相对比较简单,一行命令就可以了

x=input()

注:变量x就指向输入的那行数据
简单看一下运行的结果
在这里插入图片描述
接下来的一段话可能有些啰嗦,可以跳过
————————————————————————————
在这里我们看到,当输入命令x=input()(也就是input函数),按下回车,即开始像控制台输入数据,输入完成后按下回车即可结束输入过程。值得注意的是,我们要知道通过命令x=input()得到的变量x的类型是str型,即字符串型,并且在输入过程中的空格也保留了,所以这就是为什么访问x[1]的结果是空格而不是2了,因为1与2在输入时中间有一个空格(之前已经说明了,当然没有空格的话最后得到的x里面也不会有空格)。那么问题来了,当我不想要空格的时候怎么处理呢?我们已经知道input函数返回的是string型,所以可以借助字符串的split方法来解决
————————————————————————————
或者我们使用另外一种办法

x=input().split()

示例
在这里插入图片描述
这样得到的x是一个列表,并且列表中没有空格(不管输入数据之间有多少个空格)

注:实际上就是简单的input函数和字符串的split方法的结合

多行数据的输入

一般复杂的问题都是需要输入多行数据,比如要输入如下几行数据

1 2
5 6 8 9
1 2 3 6 9 12

我们可以借助如下命令

import sys
result=[]
for line in sys.stdin:
    list_new=line.split()
    result.append(list_new)
print(result)

注意这里需要用到sys模块,主要用到了sys.stdin方法(感兴趣可以自行百度看看),循环体内的list_new是读取的每一行数据(类型是一个list,因为split方法返回的是list类型),并将每一行加入到最后的结果中,循环结束即读取完成。下面看一个例子
在这里插入图片描述
将上述代码放到新的.py文件中,输入数据,按回车可以另起一行输入,最终输入完成后,按住ctrl+d结束输入即可。
上面要注意的是列表中的每个元素都是一个str类型,这一点在处理数据的时候要格外注意。可以稍微加工一下
在这里插入图片描述
注意上面多了一行代码,目标是将列表中的元素从str类型变成int型,这样方便我们处理。
————————————————————————————
一个简单的问题好像说的很啰嗦了,哈哈哈,但是这毕竟是一个十分基础且重要的步骤。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值