导读:计算机程序用于执行任务,是满足人类需求的工具。有信息的输入,程序才能接收指令、理解需求;有信息的输出,运行结果才能被反馈给用户。在编程中,信息输入操作称为Input,输出操作称为Output,统称为Input/Output,简写为I/O。
相比其他语言,Python中的I/O操作更加简单方便,通过简单的指令就可以实现基本的输入输出。此外,I/O并不仅仅指信息键入和打印信息,还包括文件的输入输出。
作者:李明江 张良均 周东平 张尚佳
来源:大数据DT(ID:hzdashuju)
01 input与print
1. input
input函数在用于交互式的信息键入时,相当于一个容器,用户从键盘输入的信息先存放在容器中,再被变量引用。
input函数可以接纳多种数据类型,包括number、str等基础类型,及list、tuple、dict、set等复合类型。使用input函数时,可以在括号内添加str以提示输入。需要注意的是,Python 3.x中的input函数将所有接收的数据都默认为str,如下所示。
- 输入不同数据类型
# 输入一个数字,由Python默认类型
输出结果:
1
# 输入一个str,由Python默认类型
输出结果
:
1
# 输入一个数字,并将其转换为int类型
输出结果
:
123
# 查看以上输入的输出结果类型
输出结果
:
number1、str1和number2的类型分别为:
从输出结果可知,在str1变量中,尽管输入的不是str,也被默认为str。要得到需要的数据类型,必须做类型转换。
2. print
给一个变量赋值后,如需查询变量的内容,只需要键入变量名并按回车键即可,称为表达式语句的输出。使用print函数是更受欢迎的输出方式,可以实现多样化的输出操作。
使用print函数进行输出操作时,可以在函数的括号中插入str以向屏幕上输出指定的文字,比如打印“hello,world!”的程序;要输出被赋值的变量,则在print函数的括号中插入变量名即可。
print函数也可以接收多个str,需要用逗号隔开,print函数会依次打印每个str,遇到逗号则输出一个空格,因此输出的str是拼起来的。print函数也可以自动计算结果,运行“print(number1+number2)”语句,解释器会自动计算出相加的结果后输出。print函数的应用代码如下所示。
- print函数应用
# print函数接收多个str
输出结果:
我 爱 中华
# print函数在打印前计算结果
输出结果:
100+200 = 300
格式化输出是计算机输出中的一个重要概念,主要针对str。其运行机制为:使用占位符在str中进行占位,再用数值或字符替换占位符,重组str后输出。
这种输出方法主要是为了方便修改语句,减少编写代码的工作量,并且包含自动取位、转换进制等功能。Python中的格式化输出方法有两种,即“%+格式符”的方法和format函数方法。
“%+格式符”的方法是一种较早的格式化输出方法,使用方式是在百分号(%)后加上相应的格式符以占位,再进行替换和输出。Python中的格式符如下所示。
- Python格式符
- str
- %s:字符串(采用str函数的显示)
- %r:字符串(采用repr函数的显示)
- %c:单个字符
- 整数
- %b:二进制整数
- %d:十进制整数
- %i:十进制整数
- %o:八进制整数
- %x:十六进制整数
- float
- %e:指数(基底写为e)
- %E:指数(基底写为E)
- %f:浮点数
- %F:浮点数
- %g:指数(e)或浮点数(根据显示长度)
- “%+格式符”格式化输出
# 用%s、%d分别格式化字符串'Zara'和整数20
输出结果:
我的名字叫作Zara,已经20岁了!
# 用%d格式化16,用%o将十进制整数16用八进制数表示
输出结果:
16 的八进制是 20
# 用%.3f将整数转化为保留小数点后3位的float
输出结果:
23转化为保留3位小数的浮点数23.000
format函数是更为强大的格式化输出工具,format函数收集位置参数和关键字参数的任意集合,使用它们的值替换str中的占位符。该方法使用大括号({})作为特殊字符代替%,{}中可以不带参数、带数字编号或带关键字编号进行占位和替换,前两种属于位置替换方法,后一种属于关键字替换方法。
format函数也支持格式符,如下所示。
- format函数格式符
- 'c':字符。打印前将整数转换成对应的Unicode字符串
- 'b':二进制。将数字以2为基数进行输出
- 'o':八进制。将数字以8为基数进行输出
- 'd':十进制。将数字以10为基数进行输出
- 'x':十六进制。将数字以16为基数进行输出,9以上的位数用小写字母表示
- 'e':幂符号。用科学计数法打印数字。用'e'表示幂
- 'g':一般格式。将数值以fixed-point格式输出,数值特别大时用幂形式打印
- 'n':数字。值为整数则等效于'd',为float则等效于'g'。
- '%':百分数。数值乘以100后以fixed-point('f')格式打印,值后有一个百分号
- format函数格式化输出
# format函数不带参数情况下的输出
输出结果:
我的名字叫作Zara,已经20岁了!
# format函数带数字编号并打乱顺序
输出结果:
我的名字叫作Zara,已经20岁了!
# foemat函数带关键字参数
输出结果:
我的名字叫作Zara,已经20岁了!
# format函数格式化数字为二进制数
输出结果:
我的名字叫作Zara,已经10010岁了!
02 文件I/O
1. open
内置函数open的作用是打开一个文件,创建一个file对象以进行调用。在打开文件的基础上,后续的文件读写操作才可以实现。open函数的基本语法格式如下:
open(filename, mode)
open函数常用的参数及其说明如下所示。
- open函数常用的参数及其说明
- filename:接收文件名,表示文件名称。无默认值
- mode:接收模式名,表示文件打开模式。默认为只读
- 文件访问模式及其说明
- r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式
- rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式
- r+:打开一个文件用于读写。文件指针将会放在文件的开头
- rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
- w:打开一个文件只用于写入。如果该文件已存在则将其覆盖;如果该文件不存在,则创建新文件
- wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖;如果该文件不存在,则创建新文件
- w+:打开一个文件用于读写。如果该文件已存在则将其覆盖;如果该文件不存在,则创建新文件
- wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖;如果该文件不存在,则创建新文件
- a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾,也就是说,新的内容将会被写到已有内容之后;如果该文件不存在,则创建新文件进行写入
- ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾,也就是说,新的内容将会被写到已有内容之后;如果该文件不存在,则创建新文件进行写入
- a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾,文件打开时会是追加模式;如果该文件不存在,则创建新文件用于读写
- ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾;如果该文件不存在,则创建新文件用于读写
f = open(filename, mode)
f.read(size)
read函数常用的参数及其说明如下所示。
- read函数常用的参数及其说明
- size:接收number,表示读取的字符数。默认为文件中所有字符
- read函数读取test.txt文件
# 以只读模式打开test.txt文件
输出结果:
该文本中的内容是:Hello World!
3. write
在Python中,写入文件和读出文件的操作方式是相似的:先调用open函数并传入标识符‘w’或‘wb’,再使用write函数进行写入。write函数的基本语法格式如下:
f = open(filename, mode)
f.write(str)
write函数常用的参数及其说明如下所示。
- write函数常用的参数及其说明
- str:接收任意str,表示写入的文本内容。默认为空
- write函数写入文件
# 打开一个文件
输出结果:
该文本中的内容是: ('http://www.tipdm.org', 14)
4. close
close函数可以刷新缓存里任何还没写入的信息并关闭文件,关闭之后的文件便不能再进行写入。使用完文件后应该关闭,关闭文件的本质是使文件指针与文件脱离,关闭后不再能通过该指针对原来与其联系的文件进行操作。
如果文件使用完后不关闭,文件对象会一直占用操作系统的资源,并且,操作系统同一时间能打开的文件数量是有限的。写入文件时,数据会占用操作系统的内存,待计算机空闲时再慢慢写入,不调用close函数的后果是数据可能只写一部分到磁盘中,其他的信息则丢失了。
close函数的基本语法格式如下:
fileObject.close()
close函数常用的参数及其说明如下所示。
- close函数常用的参数及其说明
- fileObject:接收文件名,表示正在使用的文件对象。无默认值
点击上图了解及购买
转载请联系微信:DoctorData
推荐语:本书假设你有一定的数据分析基础,但是没有Python和AI基础,为了帮助你快速掌握智能数据分析需要的技术和方法,书中有针对性地讲解了Python和AI中必须要掌握的知识点,内容由浅入深,循序渐进。从环境配置、基本语法、基础函数到第三方库的安装与使用,对各个操作步骤、函数、工具、代码示例等的讲解非常详尽,确保所有满足条件的读者都能快速入门。 有话要说👇 Q: 你常用哪些I/O函数? 欢迎留言与大家分享 猜你想看👇婚恋交友网站比相亲更靠谱!幸福婚姻算法了解一下
自动驾驶、人工智能将把你的未来生活变成什么样?
被新基建点名的大数据,有哪些书最值得读?
为什么中文分词比英文分词更难?有哪些常用算法?(附代码)