python输出值的方式有两种:
-
表达式语句
-
print()函数
str.format()函数用来格式化输出值,可以让输出的形式多样化;
repr()和str()函数可以将输出值改为字符串。
一. print()函数
print()函数输出不同元素的格式:
print("python") # 输出字符串
print(20) # 输出数字
str = "我是变量输出"
print(str) # 输出变量
L = [10,"abc",'hello']
print(L) # 输出列表
tup = (15,'def',"main")
print(tup) # 输出元组
dict = {3.1,415926,'gfh'}
print(dict) # 输出字典
Pycharm中运行结果:
"D:\Program Files\Python310\python.exe" D:/Project/Ubuntu_Projects/text.py
python
20
我是变量输出
[10, 'abc', 'hello']
(15, 'def', 'main')
{3.1, 'gfh', 415926}
Process finished with exit code 0
1.1输出格式化整数
在python中支持格式化输出,但往往会涉及到一些字符串格式化符号,如下表所示:
符号 描述
%c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整型 %u 格式化无符号整型 %o 格式化无符号八进制 %x 格式化无符号十六进制 %X 格式化无符号十六进制(大写) %f 格式化浮点数字,.数字f可以指定精度值 %e 用科学计数法格式化浮点数 %g %f和%e的简写 %p 指针(用十六进制数格式化变量的地址)
%n 存储输出字符的数量放进参数列表的下一个变量中
整数既可以使用%s当占位符也可以使用%d当占位符
\textcolor{red}{下面是一些占位的案例:}
==> %d
age = 48
print("my age is %d" %age)
print("我的年龄是%d岁" %age) # 后面的 %之前空格就行,不能用逗号或分隔符
Pycharm中运行结果:
my age is 48
我的年龄是48岁
==>%f
print("%4.1f" %1.65) # 输出浮点数长度为4位(不够用空格补全),小数点后保留1位
print("%f" %1.6) # 默认小数点后保留6位
Pycharm中运行结果:
1.6
1.600000
==>%s
name = "宽哥"
print("大家都叫我%s" %name)
Pycharm中运行结果:
大家都叫我宽哥
\textcolor{blue}{辅助的格式化操作指令:}
-
定义宽度或者精度 *
-
常用左对齐 -
-
在正数前面显示加号 +
-
在正数前面显示空格 <sp>
-
映射变量 (var)
-
在八进制里显示“0“ ;在十六进制里显示 ”0X" #
-
数字前面填充0而不是默认的空格 0
-
‘%%’ 输出一个单一的‘%’ %
-
m是显示最小总宽度;n是小数点后的位数 m.n.
类型转换(float):
在python中,类型的转换可以将整形转换成浮点型。
pi = 3.1415926
print('%8.4f' %pi) # 字段宽8,精度4
print("pi = %.*f" %(2,pi)) # 输出小数点后的位数为2
pi = 3.142
print("%010.3f" %pi) # 用0替代默认的空格
print("%-10.3f" %pi) # 左对齐 长度不够显示空格
print("%+f" %pi) # 显示正号
Pycharm中运行结果:
3.1416
pi = 3.14
000003.142
3.142 # 长度不够,后面补有空格
+3.142000
二 format()函数格式化输出
2.1 format()位置映射
print("{}:{}".format('3.1415', 926))
2.2 format()关键字映射
print("{server}{1}_{0}".format(926, '3.1415', server='pi:'))
2.3 填充对齐
print("{0}+{1}-{2:>2}".format(1,2,1+2))
在填充对齐中:
-
“^" 是居中对齐
-
"<" 是左对齐
-
">" 是右对齐
例如下:
print("{}:{}".format('3.1415', 926))
print("{server}{1}_{0}".format(926, '3.1415', server='pi:'))
print("{0}+{1}={2:>2}".format(1, 2, 1+2)) # :>2 是将结果右对齐两个单位
pycharm中运行结果:
3.1415:926
pi:3.1415_926
1+2= 3
三.str()函数与repr()函数
str()函数与repr()函数在很多时候是相同的,除了字符串类型外,当需要直接用对象进行输出调用时用repe(),print()输出调用时用str()。
str()函数与repr()函数的区别在于:
-
str()函数:将值转化为适宜人阅读的字符串的形式,是面向用户的;
-
repr()函数:将值转化为解释器读取的字符串形式,是面向程序员的。
==>str()的语法为:
str.strip([character])
strip是用来删除字符串头部以及尾部的指定字符或者字符序列
character 是需要美化的字符串
str = "+-*/python 3+-*"
print(str.strip('*,+,-,/')) # 指定字符串 ”+ - * /“
pycharm中运行的结果:
python 3
str()函数删除了中间的“python"以外的头尾指定的字符
str()函数与repr()函数的大致用法,案例如下:
list1 = 3.1415926
print(type(str(list1)))
print(type(repr(list1)))
print(repr(list1))
print(str(list1))
pycharm中运行结果:
<class 'str'>
<class 'str'>
3.1415926
3.1415926
两者的结果是没有区别的,但是当我们将字符串传给str()函数时打印时不带引号,repr()函数打印时是带引号的
print('3.1415926'.__repr__())
print('3.1415926'.__str__())
pycharm中运行结果:
'3.1415926'
3.1415926
从以上结果来看出,当erpr()作用时,会在字符串外多加一层引号,而在eval()执行时会将字符串的引号去掉,因为这个字符串会被当作变量来处理。如果没有这层引号,那么就无法执行eval(),会生成 错误的文件
四.input()函数raw_input()函数
python()提供的读入函数input()函数,在执行函数时会读入一行文本
input()函数和raw input()函数都可以接受字符串,区别在于:
-
python 3.X 中没有了raw_input()函数
-
raw input()函数 直接读取控制台的输入,接受所有类型的输入方式
-
input()函数默认接受的是string类型,如果只是输入字符串的话必须将字符串用引号标记
-
input() 在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )
-
input() 可接受合法的 python 表达式
例如:
str =input("python读入")
print(str)
结果:
python读入
五.读和写文件
5.1 打开文件
读和写文件open()的基本用法如下:
open(filename, mode=’r',encoding='utf-8',errors=None)
-
filename 是字符串的值
-
mode 是打开的模式
-
encoding参数:用来指定打开文件时的文件编码,默认是
-
errors参数:用来指定在文本文件发生编码错误时如何处理。推荐errors的取值为‘ignore’,表示碰到编码错误时忽略错误,继续执行
\textcolor{blue}{**打开模式mode的参数表**}
字符串 说明
rt或r 以只读模式打开文本文件 wt或w 以只写模式打开文本文件
5.2 关闭文件
使用close()方法关闭文件
with as提供了代码块,在as后面声明一个资源变量,在with as代码块结束之后自动释放资源
f_name = 'abc.txt'
with open(f_name) as f:
content = f.read()
5.3 读写文本文件
-
read(size=-1):从文件中读取字符串,size表示读取的字符数,size=-1表示读取字符数无限制
-
readline(size=-1):在读取到换行符或者文件尾时返回单行字符串。如已到文件尾,则返回一个空字符串
-
readlines():读取文件数据到一个字符串列表中,每一行数据都是列表的一个元素
-
write(s):将字符串s写入文件中,并返回写入的字符串数
-
writelines(lines):向文件中写入一个字符串列表。不添加行分隔符,因此通常为每一行末尾都提供行分隔符
-
flush():刷新写缓冲区,在文件没有关闭的情况下将数据写入文件中
5.4 读写二进制文件
-
read(size=-1):从文件中读取字节,size表示读取的字节数,size=-1表示读取全部字节
-
readline(size=-1):从文件中读取并返回一行,size是限制读取的字节数
-
readlines():读取文件数据到一个字节列表中,每一行数据都是列表的一个元素
-
write(b):写入b字节,并返回写入的字节数
-
writelines(lines):向文件中写入一个字节列表,不添加行分隔符,因此通常为每一行末尾都提供行分隔符
-
flush():刷新写缓冲区,在文件没有关闭的情况下将数据写入文件中