欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3输入和输出实例讲解

程序员文章站 2022-05-10 22:50:02
Python3输入和输出 1、输出格式美化 Python两种输出值得方式:表达式语句和print()hanshu 第三种方式是使用文件对象的write()方法,标准输出文件可...

Python3输入和输出

1、输出格式美化

Python两种输出值得方式:表达式语句和print()hanshu

第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout引用

如果希望输出的形式更加多样,可以使用str.format()函数来格式化输出值

如果希望将输出的值转成字符串,可以使用pepr()或str()函数来实现。

str() :函数返回一个用户易读的表达形式

repr():产生一个解释器易读的表达形式

'''

import math

s = 'Hello , python'

print (str(s));

print(repr(s));

print(str(1/7));

x = 10 * 3.25

y = 200 * 200

s = 'x 的值为:' + repr(x) +', y的值为:' + repr(y) + '...'

print(s)

#repr()函数可以转义字符串中的特殊字符

hello = 'hello, python\n'

print(hello)

hellos = repr(hello)

print(hellos)

#repr() 的参数可以是Python的任何对象

print(repr((x,y,('Google','Runoob'))))

#输出平方与立方的表:

for x in range(1,11):

print(repr(x).rjust(2),repr(x*y).rjust(3),end=' ')

print(repr(x*x*x).rjust(4))

'''

1 40000 1

2 80000 8

3 120000 27

4 160000 64

5 200000 125

6 240000 216

7 280000 343

8 320000 512

9 360000 729

10 400000 1000

'''

for x in range(1,11):

print('{0:2d}{1:3d}{2:4d}'.format(x,x*x,x*x*x))

'''

1 1 1

2 4 8

3 9 27

4 16 64

5 25 125

6 36 216

7 49 343

8 64 512

9 81 729

101001000

'''

'''

在第一个例子中,每列间的空格由print()添加

这个例子展示了字符串对象的rjust()方法,他可以将字符串靠右,并在左边填充空格

还有类似地方法,如ljust()和center()。这些方法并不会写任何东西,他们仅仅返回新的字符串

另一个方法zfill(),它会在数字的左边填充0,如下

'''

print('12'.zfill(5))

print('-3.14'.zfill(7))

print('3.14159265359'.zfill(15))

#str.format()的基本使用如下:

print('{}网址:"{}!"'.format('菜鸟教程','www.runoob.com'))

#括号及其里面的字符(称作格式化字段)将会被format()中的参数替换

#在括号中的数字用于指向传入对象在format()中的位置,如下所示:

print('{0}和{1}'.format('Google','Runoob'))

print('{1}和{0}'.format('Google','Runoob'))

#如果在format()中使用了关键字参数,那么他们的值会指向使用该名字的参数

print('{name}网址:{site}'.format(name='菜鸟教程',site='www.runoob.com'))

#位置及关键字参数可以任意的结合:

print('站点列表{0},{1},和{other}。'.format('Google','Runoob',other='Taobao'))

#'!a'(使用ascii()),'!s(使用str())和'!r'(使用repr())可以用于在格式化某个值之前对其进行转化;

print('常量PI的值近似为:{}。'.format(math.pi))

print('常量PI的值近似为:{}。'.format(math.pi))

#可选项':'和格式标识符可以跟着字段名。这就允许对值进行更好的格式化。下面的例子将pi保留到小数点后三位:

print('常量PI的值近似为{0:.2f}'.format(math.pi))

#在':'后传入一个整数,可以保证该域至少有这么多的宽度。用于美化表格时很有用。

table = {'Google':1,'Runoob':2,'Taobao':3}

for name,number in table.items():

print('{0:10} ==> {1:10d}'.format(name,number))

#如果你有很长的格式化字符串,而你不想将他们分开,那么在格式化时通过变量名而非位置会是很好的事情

#最简单的就是传入一个字典,然后使用方括号'[]'来访问键值:

table = {'Google':1,'Runoob':2,'Taobao':3}

print('Runoob: {0[Runoob]:d}; Google: {0[Google]:d}; Taobao: {0[Taobao]:d}'.format(table))

#也可以通过在table变量前使用'*'来是想相同的功能:

table = {'Google':1,'Runoob':2,'Taobao':3}

print('Runoob: {Runoob:d}; Google: {Google:d}; Taobao: {Taobao:d}'.format(**table))

#旧式字符串格式化

#%操作符也可以实现字符串格式化。他将左边的参数作为类似sprintf()式的格式化字符串,而将右边的代入,然后返回格式化后的字符串

print('常量PI的值近似为:%5.3f。' % math.pi)

#因为str.format()比较新的函数,大多数的Python代码任然使用%操作符。但是应为这种旧式的格式化最终会从该语句中移除,应该跟多的使用str.format()

#读取键盘输入

#Python提供了input()内置函数从标准输入读入一行文本,默认的标准输入是键盘

#input可以接收一个Python表达式作为输入,并将运算结果返回。

#str = input("请输入:")

#print("你的输入内容是:",str)

#读和写文件:open()将会返回一个file对象

'''

open(filename,mode)

filename:变量是一个包含了你要访问的文件名称的字符串值

mode:决定了打开文件模式:只读,写入,追加等。所有可取值见如下的完全李彪。这个参数是非必须的,默认文件访问模式为只读(r);

'''

#打开一个文件

f = open("./tmp/foo.txt",'w')

#向文件里写入

f.write("Python 是一个非常好的语言。\n是的,的确非常好!!\n")

#关闭打开的文件

f.close()

'''

第一个参数为要打开的文件名

第二个参数描述文件如何使用的字符。mode可以是'r'如果文件只读,'w'只用于写(如果存在同名文件则被删除),和'a'用于追加文件内容;所有的任何数据都会被自动增加到末尾。'r+'同时

用于读写,mode参数是可选的;'r'将是默认值

'''

#文件对象的方法

'''

f.read()

为了读取一个文件的内容,调用f.read(size),这将读取一定数目的数据,然后作为字符串或字节对象返回。

size是一个可选的数字类型的参数。当size被忽略了或者为负,那么该文件的所有内容都将被读取并且返回。

'''

f = open("./tmp/foo.txt","r")

str = f.read()

print(str)

f.close()

#f.readline()会从文件中读取单独的一行。换行符为'\n'。f.readline()如果返回一个空字符串,说明已经读取到最后一行

f = open("./tmp/foo.txt","r")

str = f.readline()

print(str)

f.close()

#f.readlines()将返回该文件中包含的所有行

#如果设置可选参数sizehint,则读取指定长度的字节,并且将这些字节按行分割。

f = open("./tmp/foo.txt","r")

str = f.readlines()

print(str)

f.close()

f = open("./tmp/foo.txt","r")

for line in f:

print(line,end='')

f.close()

#f.write() 将string写入到文件中,然后返回写入的字符数

f = open("./tmp/foo.txt","w")

num = f.write("Python 是一个非常好的语言。\n是的,的确非常好!!\n")

print(num)

f.close()

#如果要写入一些不是字符串的东西,那么将需要先进行转换:

f = open("./tmp/foo.txt","w")

value = 'www.runoob.com'

f.write(value)

f.close()

#f.tell()返回文件对象当前所处的位置,它是从文件开头开始算起的字节数。

#f.seek()如果要改变文件当前的位置,可以使用f.seek(offset,from_what)函数

'''

from_what的值,如果是0表示开头,如果是1表示当前位置,2表示文件的结尾

seek(x,0):从起始位置即文件首航首字符开始移动x个字符

seek(x,1):表示从当前文职往后移动x个字符

see(-x,2):表示从文件的结尾往前移动x个字符

'''

f = open("./tmp/foo.txt","rb+")

num = f.write(b'0123456789abcdef')

print(num)

se = f.seek(5)

print(se)

r = f.read(1)

print(r)

se = f.seek(-3,2)

print(se)

r = f.read(1)

print(r)

#f.close() 在文本文件中(那些打开文件的模式面没有b的),只会相对于文件其实文职进行定位

#当你处理完一个文件后,调用f.close()来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常 <