Python从键盘输入多行文本数据的方法

Python中的Input()函数在输入时,遇到回车符,那么一次输入就结束了。这不能满足输入多行文本并且行数也不确定的情形,当然输入空行也是允许的。

方法1:直接利用input()函数逐行读取数据,直到EOF。利用异常处理机制实现。

方法1:利用input()的返回值为空串来判定输入已经到达EOF写法1.2:利用异常处理机制实现

lines=[]
while True:try:lines.append(input())except:breakprint(lines)

实际运行时,可以输入多行,当输入最后一行并回车后,按组合键ctrl+D,表示EOF,即End of File、文件尾的意思。此时,input()函数会遇到EOF的异常。Python的异常处理机制将捕获到此异常,执行except部分的语句,此语句为break,因此,立即跳出while循环。这正好满足了我们的需要。
例如,输入:
12 345 3.14159回车
I am a student.回车
Hello, world!回车
在集成开发环境中运行时,请按ctrl+D组合键结束多行输入。如果在Windows命令行下用"python 源代码文件名.py”方式运行时,请按ctrl+Z组合键结束多行输入。

输出结果如下:
['12 345 3.14159', 'I am a student.', 'Hello, world!']

方法2:利用标准输入文件对象sys.stdin实现
因为键盘是标准输入设备,计算机操作系统将键盘也是当做文件来对待的,其实计算机操作系统将包括键盘显示器鼠标打印机等在内的各种外围设备都当做文件来对待。Python中与键盘对应的文件对象是sys.stdin,因此可以利用sys.stdin.readlines()函数一次性读取所有文本,一直到遇到文件尾即EOF为止。可以通过for aLine in sys.stdin:的方式逐行读取文本直到EOF。

写法2.1:利用sys.stdin.readlines()函数一次性读取所有文本。

import sys
lines=sys.stdin.readlines()
print(lines)

写法2.2:通过for aLine in sys.stdin:的方式逐行读取文本直到EOF。

import sys
lines=[]
for aLine in sys.stdin:lines.append(aLine)
print(lines)

输入同上,

输出:

['12 345 3.14159\n', 'I am a student.\n', 'Hello, world!\n']

写法2.3:利用sys.stdin.readline()每次读取一行,根据遇到EOF时返回空行从而结束while循环。

import sys
lines=[]
while True:aLine=sys.stdin.readline()if aLine=="":breaklines.append(aLine)
print(lines)

对于写法2.1、写法2.2、写法2.3的程序运行后,

输入同上,

输出结果均如下:

['12 345 3.14159\n', 'I am a student.\n', 'Hello, world!\n']

可以看出,方式1的输出结果与写法2.1、写法2.2、写法2.3的输出结果有细微差别,后者的每行末尾有'\n'字符(即回车符),前者则没有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[教程指导]索尼官方4.0.3系统一键root方法! [复制链接]

[教程指导]索尼官方4.0.3系统一键root方法! [复制链接] 青青子衿198976青青子衿198976注册时间2011-9-26最后登录2012-9-15在线时间730 小时阅读权限150积分3996帖子1173精华32UID13306151版主 在线时间730 小时经验1629 分贡献2693 点极币10442 极币最后登录2012-9…

creator图片循环显示_CocosCreator背景图循环播放

以前在玩小游戏的时候发现有的小游戏背景图一直再动,视觉效果挺好,给人一种炫炫的感觉,让我这写后台的码农很是羡慕和膜拜。没想到天意弄人,我也开始写游戏前端了刚接触CocosCreator,好多东西都不懂,整个懵逼状态&…

完全卸载oracle11g步骤

1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、 开始->程序->Oracle - OraHome81->Oracl…

PyCharm安装开发游戏的Pygame

方式一:利用PyCharm导入Pygame包 通常情况下,Pygame可以通过Pycharm的单击菜单File-->Settings...,弹出Settings窗口,在左侧栏中选择Project ***(此处***是你的当前项目名)-->Project Interpreter&a…

Jsp-Servlet 概要总结[转]

Servlet三个要素: 1.必须继承自HttpServlet 2.必须实现doGet()或者doPost() 3.必须在web.xml中配置Servlet <servlet> <servlet-name> </servlet-name> <servlet-class> </servlet-class> </servlet><servlet-mapping> <servlet-…

php函数学习二

rename():修改文件的名字 addcslashes(&#xff09;&#xff1a;过滤用户提交的敏感字符&#xff0c;一般通过转义提高安全性 dechex():把十进制数据转化为十六进制数据 Abs: 取得绝对值。 Acos: 取得反余弦值。 ada_afetch: 取得资料库的传回列。 ada_autocommit: 开关自动更…

sybase数据库导出mysql_使用BCP从Sybase远程数据库中导出数据

1.在本机安装Sybase ASE 15&#xff0c;我装的开发版全套&#xff0c;懒得去仔细看需要哪个了2.在Sybase安装目录里找到ini\sql.ini&#xff0c;在里面添加数据源例如&#xff1a;[MYDS]masterNLWNSCK,192.168.1.201,5000queryNLWNSCK,192.168.1.201,5000其中MYDS是数据源名称&…

Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入

设计一个实现登录功能的Web项目&#xff0c;要求&#xff1a;保存用户名和密码在Cookie中&#xff0c;下次登录不再重新输入 var cookie {};//设置 cookie.SetCookiesfunction(name,value,exptime){ try{ if(arguments.length 2) return arguments.callee(…

Pycharm使用black作为Python代码格式化外部工具

Pycharm菜单Code->Reformat Code能对Python代码进行格式化&#xff0c;但是black能进一步规范格式&#xff0c;它是PEP8的严格子集。 本次操作的相关环境信息如下&#xff1a;Pycharm 2018版&#xff0c;Python3.6,&#xff08;注意&#xff0c;写本文时的black只支持在Pyt…

WCF的学习资源

这一两天开始学习WCF&#xff0c;两天前我对WCF一无所知&#xff0c;现在也所知甚少&#xff0c;不过倒是在网上找到了一些学习WCF的不错的资源&#xff0c;在这里收录整理如下&#xff1a;1、http://www.cnblogs.com/jillzhang/tag/WCF/博主张玉彬&#xff0c;其对分布式应用程…

python --函数

转http://www.cnblogs.com/vamei/archive/2012/06/01/2529500.html 函数最重要的目的是方便我们重复使用相同的一段程序。 将一些操作隶属于一个函数&#xff0c;以后你想实现相同的操作的时候&#xff0c;只用调用函数名就可以&#xff0c;而不需要重复敲所有的语句。 函数的定…

mysql slave 线程 简书_【MySQL】你真的读懂了slave status吗?

前言:大家平时在检查主从复制的时候基本上都会使用 show slave status来看主从复制的情况&#xff0c;那么你真的读懂每个指标项了吗&#xff1f;一、status指标解读rootlocalhost [(none)]>show slave status\GERROR 2006 (HY000): MySQL server has gone awayNo connectio…

Python中用input()和print()体现输入输出重定向

众所周知&#xff0c;在Python中&#xff0c; 语句&#xff1a;变量input() 的功能是&#xff1a;从键盘读取数据到内存变量&#xff0c;此过程为输入。此时&#xff0c;键盘为标准输入设备&#xff0c;对应的文件对象名为sys.stdin。 语句&#xff1a;input(变量) 的功能是&…

【DI专题】在 DI 脚本文件中调用存储过程

以前用过&#xff0c;但是隔很久不用&#xff0c;还是会有点忘记&#xff0c;还是记下来吧&#xff1a;&#xff09; 1.在左侧datastore区域&#xff0c;选择数据库&#xff0c;选择 Function,单击右键&#xff0c;选择 import by name; 2.在弹出对话框中&#xff0c;输入待导入…

国外网站设计欣赏:30个优秀的国外咖啡网站设计

梦想天空博客向大家分享各种类型的优秀网站作品&#xff0c;有电子商务网站设计、旅游网站设计、餐馆网站设计、设计工作室网站设计、大学网站设计以及各种色系&#xff0c;各种风格的网站设计作品。今天这篇文章给大家带来30个优秀的国外咖啡网站设计作品&#xff0c;一起欣赏…

mysql查询连续3个月以上_MySQL查询显示连续的结果

#mysql中 对于查询结果只显示n条连续行的问题#在领扣上碰到的一个题目:求满足条件的连续3行结果的显示x city built a new stadium, each day many people visit it and the stats are saved as these columns: id, date, people&#xff1b;please write a query to display t…

对已有文件进行既读又写的操作时关于文件位置注意事项(适用于Python和C/C++)

当我们需要对现有文件进行读取数据并修改文件中的数据时&#xff0c;就需要用到对已有文件进行既读又写的操作。有多种可读且可写的文件打开方式&#xff1a;r,w,a,rb,wb,ab&#xff0c;具体含义见下表。 打开 方式 读写 特性 文件数据 特性 对文件存在性的处理方式 备注 …

[原]JS ajax类的三种封装形式及简单对比

三种形式&#xff1a;1 function(para1,para2,...)2 function()在里面定义prototype&#xff0c;每次调用前先new一下3 类似于JSON的方式JSON的形式&#xff0c;定义出来的相当于静态类&#xff0c;用for循环&#xff0c;做20次调用&#xff0c; 第一种形式 返回了20个结果。第…

Quaruts II 增量编译

http://bbs.ednchina.com/BLOG_ARTICLE_3007977.HTM http://quartushelp.altera.com/11.1/mergedProjects/msgs/msgs/esgn_tri_state_partition.htm 增量编译主要有两个工具&#xff1a;Design Partition和Logiclock Design Partition只是将设计进行“逻辑分区”&#xff0c;直…

python中变量名存储在哪里_python – 如何在内部存储和映射变量名称?

I think at a high level it can be done with a dict, where the key is the variable name (str?) and the value is the reference that it’s associated with.这也是它内部工作的方式.在CPython中,变量名和它们指向的对象通常存储在Python字典中;编写Python代码时可以使用…