第3章输入与输出_第1页
第3章输入与输出_第2页
第3章输入与输出_第3页
第3章输入与输出_第4页
第3章输入与输出_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第三章 输入与输出第三章Happy YouPython Programme输入与输出Python程序设计2第三章 输入与输出环境与操作第三章第二节 数据输出第三节 文件读写第一节 数据输入第四节 输入与输出实验知 识 要 点数据输入、数据输出、文件读写3使用Python处理数据,需要输入数据,同时需要输出处理结果。本章将详细介绍数据的输入和输出方法。4第三章 输入与输出一、数据输入var=input(提示字符串)var:用于接收从键盘输入的数据(注意:接收的数据,不含回车键);如果省略,则会暂停程序运行,等待用户按回车键继续,因此可以起到暂停程序运行的作用。如果需要程序暂停t秒,则可以使用t

2、ime模块的sleep(t)实现(即:time.sleep(t))。提示字符串:用于显示的提示信息。如果省略,则无提示信息。在运行程序的过程中,通常需要从键盘输入数据,然后利用输入的数据参加后续的数据处理。输入数据可以使用input()实现。5第三章 输入与输出一、数据输入 x=input(输入姓名:)输入姓名:张三 print(x,type(x)张三 x=input(输入年龄:)输入年龄:20 print(x,type(x)20 x=input(输入婚否:)输入婚否:True print(x,type(x)True 输入数据可以使用input()实现。6第三章 输入与输出一、数据输入 x=i

3、nput(输入工资:)输入工资:5600.26 print(x,type(x)5600.26 x=input(输入复数:)输入复数:2+3j print(x,type(x)2+3j x=input()ok print(x,type(x)ok 输入数据可以使用input()实现。7第三章 输入与输出一、数据输入 x=int(input(输入年龄:)输入年龄:22 print(x,type(x)22 x=bool(input(输入婚否:)输入婚否:True print(x,type(x)True x=float(input(输入工资:)input()把输入的数据,均作为字符串处理。如果需要按照不同

4、的数据类型使用数据,则需使用类型转换函数,把字符串转换为指定类型。输入工资:5600.36 print(x,type(x)5600.36 x=complex(input(输入复数:)输入复数:5+6j print(x,type(x)(5+6j) 8第三章 输入与输出一、数据输入注意:一次输入多个数据时,需用逗号分隔,且字符串必须加定界符。 x,y,z,u,v=eval(input(输入姓名,年龄,婚否,工资,复数:)输入姓名,年龄,婚否,工资,复数:张三,16,True,5600.36,5+6j print(x,type(x),y,type(y),z,type(z),u,type(u),v,t

5、ype(v)张三 16 True 5600.36 (5+6j) 使用eval()和Input(),可以一次从键盘接收多个数据,给多个变量赋值。eval()会自动把数据转换成相应的数据。9第三章 输入与输出输入与输出第三章第三节 文件读写第一节 数据输入第四节 输入与输出实验第二节 数据输出知 识 要 点默认格式、特定格式、format()函数、format()方法10输出数据可以使默认格式,也可是使用格式字符输出特定格式,还可以使用format()函数以及字符串的format()方法等。11第三章 输入与输出一、默认格式输出print(表达式1, ,表达式n,sep=分隔符,end=结束符)表

6、达式i:需要输出的表达式的值,可以1个或多个(逗号分隔)。省略:输出空行。 print(16)16 print() print(1+2,3/4,True+7/3,12+ab)3 0.75 3.3333333333333335 12ab数据的默认格式输出,可以使用print()。12第三章 输入与输出一、默认格式输出sep=分隔符:设置多个输出项之间的分隔符。默认:空格。 print(16,1.6,True,2+3j,abc)16 1.6 True (2+3j) abc print(16,1.6,True,2+3j,abc,sep=,)16,1.6,True,(2+3j),abc数据的默认格式输

7、出,可以使用print()。13第三章 输入与输出一、默认格式输出end=结束符:设置输出的结束符。默认:回车+换行。 print(16,1.6);print(2+3j);print(True,abc)16 1.6(2+3j)True abc print(16,1.6,end=*);print(2+3j,end=#);print(True,abc)16 1.6*(2+3j)#True abc数据的默认格式输出,可以使用print()。14第三章 输入与输出二、特定格式输出格式字符串%(表达式1,表达式n)格式字符串用于控制(表达式1,表达式n)的输出格式。格式字符串包括普通字符和格式字符。普通

8、字符,按照原样输出。常用的格式字符:%+|-nc:输出ASCII字符。等价于chr()。长度n位,。+右对齐(默认,可省略),-左对齐。数据的特定格式输出,可以使用格式字符串。15第三章 输入与输出二、特定格式输出 print(%c%A)A print(%c%c%c%(A,66,True+66)ABC print(%c%+6c%c%(A,66,True+66)A BC print(%c%6c%c%(A,66,True+66)A BC print(%c%-6c%c%(A,66,True+96)AB a数据的特定格式输出,可以使用格式字符串。16第三章 输入与输出二、特定格式输出%:输出%。 pr

9、int(%c%c%c%(A,66,True+96)A%B%a print(%,%,%)% % %数据的特定格式输出,可以使用格式字符串。17第三章 输入与输出二、特定格式输出%+|-ns:输出字符串。等价于str()。长度n位;n小于实际长度(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%c%+6s%c%(65,abcd,66)A abcdB print(%c%6s%c%(65,abcd,66)A abcdB print(%c%-6s%c%(65,abcd,66)Aabcd B数据的特定格式输出,可以使用格式字符串。18第三章 输入与输出二、特定格式输出%+|

10、-nr:输出表达式。等价于repr()。长度n位;n小于实际长度(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%s#%s#%s%(11,1.1,xy)#输出结果均为字符串11#1.1#xy print(%r#%r#%r%(11,1.1,xy)#输出结果为整数、实数、字符串11#1.1#xy print(%c%9r%c%(65,123.569,66)A 123.569B数据的特定格式输出,可以使用格式字符串。19第三章 输入与输出二、特定格式输出%+|-nd、%+|-ni、%+|-nu:输出整数。长度n位;n小于实际长度(或省略)时,按实际长度输出。+右对齐(默

11、认,可省略),-左对齐。 print(%c%9d%-9i%9u%c%(65,-12,-12.56,-12.56,66)A -12-12 -12B数据的特定格式输出,可以使用格式字符串。20第三章 输入与输出二、特定格式输出%+|-no:输出八进制整数。输出的数据必须为整数。长度n位;n小于实际长度(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%c%9o%-9o%c%(65,12,-12,66)A 14-14 B数据的特定格式输出,可以使用格式字符串。21第三章 输入与输出二、特定格式输出%+|-nx、%+|-nX:输出十六进制整数(x:字母小写;X:字母大写)

12、。输出的数据必须为整数。长度n位;n小于实际长度(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%c%9x%-9X%c%(65,123,-123,66)A 7b-7B B数据的特定格式输出,可以使用格式字符串。22第三章 输入与输出二、特定格式输出%+|-n.me、%+|-n.mE:输出实数。采用科学计数。长度n位(m:小数位数);长度小于实际(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。注意:长度n包含正负号、小数点和小数位。即:n是数据的总长度。 print(%c%22e%-22.2E%c%(65,12,-123.56789,66)A 1

13、.200000e+01-1.24E+02 B数据的特定格式输出,可以使用格式字符串。23第三章 输入与输出二、特定格式输出%+|-n.mf、%+|-n.mF:输出实数。采用定点小数。长度n位(m:小数位数);长度小于实际(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%c%22f%-22.2F%c%(65,12,-123.56789,66)A 12.000000-123.57 B数据的特定格式输出,可以使用格式字符串。24第三章 输入与输出二、特定格式输出%+|-n.mg、%+|-n.mG:输出实数。根据数据大小自动选择e(E)或f(F)。长度n位(m:小数位数

14、);长度小于实际(或省略)时,按实际长度输出。+右对齐(默认,可省略),-左对齐。 print(%c%22g%-22.2G%c%(65,12,-123.56789,66)A 12-1.2E+02 B print(%c%s%d%o%x%e%f%g%c%(65,12,12,-12,12,1.2,-1.2,1.2,66)A1212-14c1.200000e+00-1.2000001.2B数据的特定格式输出,可以使用格式字符串。25第三章 输入与输出二、特定格式输出%Y、%m、%d、%H、%M、%S:输出年月日时分秒。 import time print(time.strftime(%Y-%m-%d

15、%H:%M:%S,time.localtime(time.time()2018-02-10 11:06:49 import datetime j=datetime.datetime.now() print(j.year,j.month,j.day,sep=-)#年月日是整数,按整数输出2018-2-10 print(j.hour,j.minute,j.second,sep=:)#时分秒是整数,按整数输出11:10:23数据的特定格式输出,可以使用格式字符串。26第三章 输入与输出三、format()函数输出format(表达式,格式字符串)格式字符串:nc-ASCII值的字符;%-百分号;d|

16、b|o|x|X-十、二、八、十六进制整数;f|F-实数()科学);e|E-实数(定点小数);填充字符(=:填充字符位于符号和数字之间);右对齐;居中。省略格式字符串-等价于str(表达式)。数据的特定格式输出,可以使用format()函数。27第三章 输入与输出三、format()函数输出 print(format(%),format(65,c),format(%),sep=)%A% print(%,format(65,c),%,sep=)%A% print(%,format(65, print(%,format(65,#=6d),%,sep=)%#65% print(%,format(11,

17、 print(%,format(11.111,11.2f),format(-11.111,0=-11),%,sep=)% 11.11-000011.111% print(%,format(11.111,11.2e),format(11.111,0=+16e),%,sep=)% 1.11e+01+0001.111100e+01% print(%,format(132.568,11.2g),%,format(11.111,016g),%,sep=)% 1.3e+02%000000000011.111% print(%,format(HappyYou!),%,format(Happy, print(

18、format(Hi!),format(12),format(1.2),format(True),format(2+3j)Hi! 12 1.2 True (2+3j) print(Hi!,12,1.2,True,2+3j)Hi! 12 1.2 True (2+3j)数据的特定格式输出,可以使用format()函数。29第三章 输入与输出四、format()方法输出格式字符串.format(表达式1,表达式n)格式字符串:包括普通字符和格式字符。普通字符:按照原样输出。格式字符的格式:序号|键:格式字符。序号(0,1,2,)表示格式的顺序;键用于指向使用该键的数据。格式字符与format()函数雷

19、同。数据的特定格式输出,可以使用format()方法。30第三章 输入与输出四、format()方法输出 print(Hi,.format(65,12,1.2)Hi,65,12,1.2 print(Hi,.format(A,12,1.2)Hi,A,12,1.2 print(Hi,0:c,1:d,2:f.format(65,12,1.2)Hi,A,12,1.200000 print(Hi,0: print(Hi,0:9b,1:9o,2:9X.format(12,22,29)Hi, 1100, 26, 1D print(Hi,012.format(Happy,You,!)Hi,HappyYou!

20、print(Hi,xyz.format(y=You,z=!,x=Happy)Hi,HappyYou! print(Hi,0:9.format(Happy,Happy,Happy)Hi,Happy , Happy , Happy数据的特定格式输出,可以使用format()方法。32第三章 输入与输出输入与输出第三章第二节 数据输出第一节 数据输入第四节 输入与输出实验第三节 文件读写知 识 要 点写入文件、读取文件、文件管理程序运行需要的数据,不但可以来自键盘,而且可以来自文件;而程序的运行结果,不但可以输出到屏幕(IDLE),而且可以写入文件。33程序运行需要的数据,不但可以来自键盘,而且可以

21、来自文件;而程序的运行结果,不但可以输出到屏幕(IDLE),而且可以写入文件。34第三章 输入与输出一、写入文件在写文件之前,需要先以写入的方式打开文件,然后把数据写入文件,最后关闭文件。打开和关闭文件35第三章 输入与输出一、写入文件文件对象=open(文件,打开方式)打开方式是读写文件的方式。主要方式包括读、写和追加等。即:w|wb:以只写方式打开一个文本(二进制)文件。如果打开的文件已存在,则会清空文件。如果打开的文件不存在,则会创建新文件。r|rb:以只读方式打开一个文本(二进制)文件。文件必须存在,文件的位置指针指向文件头。a|ab:以追加方式打开一个文本(二进制)文件。如果打开的文

22、件已存在,则会打开文件,并把文件的位置指针指向文件尾,以便向文件追加新内容。如果打开的文件不存在,则会创建新文件。打开文件,可以使用open()。36第三章 输入与输出一、写入文件w+|wb+:以读写方式打开一个文本(二进制)文件。r+|rb+:以读写方式打开一个文本(二进制)文件。a+|ab+:以读写方式打开一个文本(二进制)文件。打开文件,可以使用open()。37第三章 输入与输出一、写入文件文件对象.close()关闭文件,可以使用close()。38第三章 输入与输出一、写入文件 fi=open(info.txt,w) print(HappyYou!,file=fi) print(文

23、件名称:,,file=fi) print(是否关闭:,fi.closed,file=fi) print(打开方式:,fi.mode,file=fi) fi.close () fi=open(info.txt,r) t=fi.read() t范例39第三章 输入与输出一、写入文件HappyYou!n文件名称: info.txtn是否关闭: Falsen打开方式: wn print(t,type(t)HappyYou!文件名称: info.txt是否关闭: False打开方式: w fi.close ()范例40第三章 输入与输出一、写入文件HappyYou!文件名称: info.t

24、xt是否关闭: False打开方式: w使用文本编辑器,打开info.txt文件41第三章 输入与输出一、写入文件print(表达式1, ,表达式n,sep=分隔符,end=结束符,file=文件)文件对象.write(字符串)文件对象.writelines(字符串型列表)文件对象:数据要写入的对象。即:把表达式1, ,表达式n的值(字符串,字符串列表),按照指定的格式写入文件对象指定的文件。数据写入文本文件,可以使用print()、write()和writelines()。42第三章 输入与输出一、写入文件 #创建文本文件info1.txt fi=open(info1.txt,w) x=11

25、;y=1.1;z=2+3j;s=abc123;t=True print(x,y,z,s,t,file=fi) fi.write(世界和平!n) fi.writelines(Hi, Python!n,Welcome.n,Happy You!) fi.close()数据写入文本文件,可以使用print()、write()和writelines()。43第三章 输入与输出一、写入文件把字符串转换为字节型字符串,可以使用s.encode()实现。 x=str(123456) y=x.encode() print(y,type(y)b123456 z=y.decode() print(z,type(z)

26、123456 数据写入二进制文件与写入文本文件的方法基本相同,区别在于二进制文件是按照字节型字符串进行读写,所以只需要把字符串转换为字节型字符串进行写入44第三章 输入与输出一、写入文件 #写入二进制文件 fi=open(info2.txt,wb) y=str(123456).encode() fi.write(y) fi.write(bWelcome.n) fi.writelines(bHi, Python!n,bHappy You!) fi.close()数据写入二进制文件与写入文本文件的方法基本相同,区别在于二进制文件是按照字节型字符串进行读写,所以只需要把字符串转换为字节型字符串进行写

27、入45第三章 输入与输出一、写入文件 #创建二进制文件info3.txt import struct fi=open(info3.txt,wb) x=bHappyYou! y=1 z=12.56 s=struct.pack(9sif,x,y,z) fi.write(s) fi.close()struct模块,pack()可以方便的实现多种类型数据向字节型数据的转换。46第三章 输入与输出一、写入文件 #创建二进制文件info4.txt import pickle fi=open(info4.txt,wb) d=Math:96,English:98,Soft:99 pickle.dump(d,f

28、i) fi.close()pickle模块,dump()可以实现多种类型数据向字节型数据的转换。47第三章 输入与输出二、读取文件读前,需要先以只读方式打开文件,然后把读取数据,最后关闭文件。变量=文件对象.read(n)变量=文件对象.readline(字符串型列表)变量=文件对象.readlines(字符串型列表)read(n):读取n个字符(默认:全部)。如果n大于文件长度,读取实际长度。readline():读取一行字符。readlines():读取当前位置至文件结束。读取文本文件的数据,可以使用read()、readline()和readlines()。48第三章 输入与输出二、读取

29、文件 #读取文本文件info1.txt fi=open(info1.txt,r) x=fi.readline() y=fi.read(2) z=fi.readlines() print(x,y,z)11 1.1 (2+3j) abc123 True世界 和平!n, Hi, Python!n, Welcome.n, Happy You! fi.close()思考:如果把fi.readline()和fi.readlines()换成fi.read(),结果如何?读取文本文件的数据,可以使用read()、readline()和readlines()。49第三章 输入与输出二、读取文件把实现字节型字符串

30、转换为ASCII字符串,可以使用s.decode()。在读取二进制文件之前,需要把文件的位置指针指向当前读写位置,读写一次指针向后移动一次(读写方式决定移动步长)。定位位置指针:可以使用tell()和seek()实现。即:文件对象.tell()文件对象.seek(+|-步长,参考位置)Tell():返回位置指针的当前位置。seek():从参考位置(默认:0-起始位置;1-当前位置;2-文件末尾),按照步长向前(+)或者向后(-)移动定位。使用于文本文件。读取二进制与读取文本方法相同,区别在于二进制文件是按照字节型字符串进行读写,只需把读取的字节型字符串转换为ASCII字符串50第三章 输入与输

31、出二、读取文件 fi=open(info2.txt,rb) fi.tell()0 fi.seek(6,0)6 fi.seek(-3,1)3 fi.close()读取二进制与读取文本方法相同,区别在于二进制文件是按照字节型字符串进行读写,只需把读取的字节型字符串转换为ASCII字符串51第三章 输入与输出二、读取文件文件对象.read(n)read(n):从当前位置读取n(默认:步长;未设定步长,则读取全部)个字节数据。 fi=open(info2.txt,rb) fi.tell()0 fi.seek(2,0)2 fi.read(4)b3456 fi.close()读取数据:可以使用read()

32、实现。52第三章 输入与输出二、读取文件 #读取二进制文件info2.txt fi=open(info2.txt,rb) s=fi.read() t=s.decode() print(t)123456Welcome.Hi, Python!Happy You! fi.close()读取数据:可以使用read()实现。53第三章 输入与输出二、读取文件 #读取二进制文件info3.txt import struct fi=open(info3.txt,rb) s=fi.read(20) x,y,z=struct.unpack(9sif,s) print(x,y,z)bHappyYou! 1 12.560000419

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论