Python两种输出值的方式,表达式语句和print()函数。
第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout的引用。
如果你希望输出的形式更加多样,可以使用str.fomat()函数来格式化输出值。
如果你希望将输出的值转化成字符串,可以使用repr()和str()函数来实现。
str():函数返回一个用户易读的表达式
repr():产生一个解释器易读的表达形式。
这里有两种方式输出一个平方和立方的表:
注意:在第一个例子种,每个列间的空格由print添加。
这个例子展示了字符串对象的rjust()方法,它可以将字符串靠右,并在左边填充空格。
还有类似的方法,如ljust()和center()。这些方法并不会写任何东西,他们仅仅返回新的字符串。
还有一个zfill(),它会在数字的左边填充0,如下所示:
str.format()的基本用法如下:
print(’{}网址: “{}!“’.format(‘菜鸟教程’,‘www.runoob.com’))
菜鸟教程网址:”www.runoob.com”
括号及其里面的字符(俗称格式化字符)将会被format()中的参数替换。
在括号中的数字用于指向传入对象在format()中的位置
如果format()中使用了关键字参数,那么他们的值会指向使用该名字的参数。
位置和关键字参数可以任意结合:
!a(使用ascii()),!s(使用str())和!r(使用repr())可以用于格式化某个值之前对其进行转化:
可选项: 和格式标识符可以跟着字段名。这允许对值进行更好的格式化。
在 : 后传入一个整数,可以保证该域至少有这么多宽度。用于美化表格时很有用:
旧式字符串格式化:
%操作符也可以实现字符串格式化它将左边参数作为类是sprintf()式的格式化字符串,而将右边的代入,然后返回格式化后的字符串。
因为str.format()比较新的缘故,大多数python仍然使用%操作符,但是因为这种旧时的格式化最总会从该语言中移除,应该更多的使用str.format()
读取键盘输入
python提供了input()内置函数从标准输入读入一行文本,默认的标准输入是键盘。
input可以接受一个Python表达式作为输入,然后从运算结果返回。
读和写文件
open()将会返回一个file文件,基本语法格式如下:
open(filename,mode)
filename:包含了你要访问的文件名的字符串值。
mode:决定了打开文件的模式:只读,写入,追加等。
不同模式打开文件的文件完全列表:
模式 | 描述 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式 |
rb | 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头 |
rb+ | 以二进制格式打开一个文件用于读写,文件指针将会放在文件的开头 |
w | 打开一个文件只用于写入如果该文件 |
wb | 以二进制格式打开一个文件用于读写,如果该文件已存在则打开文件,并且从头开始编辑,即原有内容会被删除,如果该文件不存在则创建新文件。 |
a | 打开一个文件用于追加,如果该文件已存在,文件指针将会放在文件的结尾。也就是说新的内容会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加如果该文件已存在,文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后如果该文件不存在,创建新文件进行读写。 |
a+ | 打开一个文件用于读写如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式,如果该文件不存在,创建新文件用于读写。 |
ab+ | 以为禁止格式打开一个文件用于追加,如果该文件已存在。如果文件已存在,文件指针会放在文件结尾,如果该文件不存在,创建新文件用于读写。 |
模式 | r | r+ | w | w+ | a | a+ |
读 | + | + |
| + |
| + |
写 |
| + | + | + | + | + |
创建 |
|
| + | + | + | + |
覆盖 |
|
| + | + |
|
|
指针在开始 | + |
| + | + |
|
|
指针在结尾 |
| + |
|
| + | + |
以下实例将字符串传入到foo.txt
文件对象的方法
f.read()
为了读取一个文件的内容,调用f.read(size),这将读取一定数目的数据,然后作为字符串或者字节对象返回。
size是一个可选的数字类型的参数。当size被忽略了或为负时,那么该文件的所有内容都将被读取并且返回。
f.readline()
该函数会从一个文件中读取单独的一行换行符为’\n’。f.readline()如果返回一个空字符串,说明已经读取到最后一行。
f.readlines():
该函数会返回文件所包含的所有行。
如果参数可选参数sizehint,则读取指定长度的字节,并且将这些字节按行分隔。
另一种方式迭代一个文件对象然后读取每行。
这个方法虽然很简单,但是没有提供一个很好的控制,因为两者的处理机制不同
f.write()
f.write(string)将string写入到文件中,然后返回写入的字符数。
如果要写入的东西不是字符串的话,那么需要先将其转换成字符串。
f.tell()
该函数返回文件对象当前所处的位置,它是从文件开头开始算起的字节数
f.seek()
如果要该改变文件当前的位置,可以使用f.seek(offset,from_what)函数。
from_what的值,如果是0表示开头,如果是1表示当前位置,2表示文件的结尾。
seek(x,0):从起始位置即文件首行首字符开始移动x个字符。
seek(x,1):表示从当前位置往后移动x个字符。
seek(-x,2):表示从文件的结尾往前移动x个字符。
from_what值为默认为0,即文件开头
f.close()
在文本文件中(那些打开文件的模式下没有b的),只会想相对于文件起始位置进行定位。
当你处理完一个文件后,调用f.close()来关闭文件并释放系统资源,如果尝试再调用该文件,则会抛出异常。
当处理一个文件对象时,使用with关键字也是非常好的方法。在结束时他会帮助你正确的关闭文件,并且写起来也要比try-finally语句块要简短。
格式化输出:
1.整数的输出
分别输出八进制十进制和十六进制。
2.浮点数输出
%f保留小数点后面六位有效数字float
%e保留小数点后六位有效数字
%g在保证六位有效数字前提下,使用小数方法,否则就使用科学记数法
1)默认保留6位小数
2)娶一位小数1.1
3)默认六位小数,用科学记数法
4)去三位小数,用科学记数法
5)默认六位有效数字
6)取七位有效数字
7)取2位有效数字
3.字符串输出
%s字符串输出string
%10s 占位符10位
%-10s 左对齐占位符10位
%.2s 截取2位字符串
%10.2s 10位占位符,截取两位字符串
1) 字符串输出hello world
2) 右对齐,取20位,不够则补位
3) 左对齐,取20位,不够则部位
4) 取两位he
5) 右对齐取两位
6) 左对齐取两位