一、输入
1、标准输入
内置函数input(string)提供从默认标准输入——从键盘读取一行文本
函数返回值是输入的文本,str对象
参数string为提示文本,str对象,可选
str = input("Please input:")
回车结束输入
单行输入多数字,以空格分隔
numbers = list(map(int,input().split(" ")))
print(numbers)
2、文件
Ⅰ、打开文件
内置函数open(filename,mode,encoding=)提供打开文件功能
函数返回值是打开的文件,file对象
参数filename为文件名称,str对象,包括文件名+后缀,默认路径同当前.py文件
参数mode为操作模式,str对象,
可选
参数encoding为编码类型,str对项,
可选
file = open("text.txt","r+",encoding="gbk")
只有选对了mode才能进行有关读写操作
主要mode参数
模式描述
r
只读
(默认)
读取存在的文件
w
覆盖写入
文件存在则
覆盖
原有内容,文件不存在则新建
a
接续写入
文件存在则
续写
原有内容,文件不存在则新建
可选mode参数
模式描述
b
指定为二进制格式操作
+
读写模式*
r+、w+、a+的区别
mode
文件存在性
文件指针位置
读
写
r+
必须存在
开头
从头读取
从头覆盖写入
w+
不受限
开头
从头读取
从头覆盖写入
a+
不受限
末尾
末尾读取
末尾接续写入
Ⅱ、从文件读取
内置函数file.read(size)、file.readline()、file.readlines(sizehint)提供读取功能
file.read(size):
函数返回值是读取文本,str对象
参数size为读取字符数,int对象,
可选
,若省略或为负则为读取全部
file.readline():
函数返回值是读取至换行符“\n”之前的单行文本,str对象
file.readlines(sizehint):
函数返回值是读取所有行,str对象
参数sizehint为指定字节长度,int对象
若返回值为None则表示读取完毕
Ⅲ、写入文件
内置函数file.write(string)提供写入文件功能
函数返回值是写入字符数,int对象
参数string为待写入文本,str对象
Ⅳ、移动文件指针
内置函数file.seek(offset,from)提供移动文件指针功能
函数返回值是当前指针位置,表示从头开始的字节数,int对象
参数offset为移动字符数,int对象,正值表示向后移动,负值表示向前移动
参数from为移动的基准点,int对象,
可选
参数from
描述
0
文件开头 (默认)
1
当前位置
2
文件末尾
Ⅴ、当前指针位置
内置函数file.tell()提供查询当前指针位置功能
函数返回值是当前指针位置,表示从头开始的字节数,int对象
Ⅵ、关闭文件
内置函数file.close()提供关闭文件功能
函数返回值是None
处理文件有始有终,切记关闭文件
良好的处理文件习惯
为了避免未及时关闭文件,造成未知错误,请使用with关键字,它将自动关闭文件
with open("text.txt" , "w+") as f:
f.write("123")
str = f.read()
二、输出
1、标准输出
内置函数print(string1,string2,end=,sep=,)提供对象输出
参数string为输出对象,
可选
常用参数end为结尾输出符,
可选
,默认为换行符
常用参数sep为多个输出对象的分隔符,
可选
,默认为空格
a = 5
b = "a"
print(a,b,end="",sep="\t")
结尾不换行令end=""
要输出换行符可以不提供参数,即print()
小试pprint
pprint.pprint()能够规范输出的格式
from pprint import pprint
a = {
"nihao":"hello",
"xiexie":"thanks",
"shuben":"books",
"diannao":"computers"
}
b = (2,4,6)
c = "hello"
d = [a,b,c]
pprint(d)
观察输出,相较于print(),格式更整齐
省略方括号单行输出列表
某些情况需要输出列表,通常有两种思路:
a = [1,2,3]
for i in a:
print(i,end=" ")
或
a = [1,2,3]
print(*a,end="")
以文本输出转义字符
若字符串有转义字符,我们想以文本的形式输出,只用print(string)会将转义字符表达
a = "qwe\n"
print(a)
使用repr(string)可以不表达转义字符而以文本形式输出
a = "qwe\n"
print(repr(a))
2、str.format(string)美化输出
内置函数str.format(string)提供美化输出功能
函数返回值是美化后的字符串,str对象
参数string是待美化的字符串,str对象
age = 15
grade = 9
print('My age is {} and grade is {}'.format(age,grade))
类比C语言的%d、%c,前面的花括号会被后面的变量所替换
默认顺序同参数传入顺序
改变顺序可以在花括号内添加序号,默认第一个参数为0号
age = 15
grade = 9
print('My age is {1} and grade is {0}'.format(grade,age))
或给变量命名
print('My age is {age} and grade is {grade}'.format(grade=9,age=15))
可以设定默认值
print('My age is {age} and grade is {}'.format(9,age=15))
以上方法可以混合使用
数字的常用格式化输出
四舍五入保留小数
print('I have {:.2f} yuan'.format(14.5))
print('PI is {:.2f}'.format(3.141))
补足空位
print('I am No.{:03d}'.format(1))
print('It is {:.02f}'.format(1))
替代str.format——Python3.6+的f-sting
age = 15
grade = 9
print(f'My age is {grade} and grade is {age}')
四舍五入保留小数
print(f'I have {14.5:.2f} yuan')
import math
print(f'PI is {math.pi:.2f}')
补足空位
print(f'I am No.{1:03d}')
print(f'It is {1:.02f}')
三、小试数据的序列化和反序列化——pickle
为什么要使用pickle?
将程序的对象信息永久存储到文件,并可以重构之前存储的对象
文件要求:
一般后缀为pkl,是类文件对象,有read()、readline()接口
1、序列化操作
import pickle
a = 5
with open("data.pkl","wb") as f:
pickle.dump(a,f)
函数pickle.dump(obj,file,[,protocol])提供序列化功能
参数obj为变量名
参数file为存储到的pkl文件,file对象
2、反序列化操作
import pprint,pickle
with open("data.pkl","rb") as f:
a = pickle.load(f)
pprint.pprint(a)
函数pickle.load(file)提供反序列化功能
参数file为读取的pkl文件,file对象
pprint为规范格式输出,使得输出整齐易读
完
欢迎在评论区留言
感谢浏览