Python自学笔记---16.Python中的print语句

Python中print语句

1.逗号分隔符

在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:

x = 1
y = 2
z = 3
print("the values are", x, y, z)
#打印结果为 the values are 1 2 3

在上述实例中,对于每个对象,将调用str()函数来生成输出字符串。这些输出字符串会连接在一起,彼此之间用一个空格分开,从而得到最终的输出字符串。输出通过一个换行符终止。

2.格式化输出

要生成格式化输出,可以使用字符串格式运算符 % 或 .format()方法。

x = 1
y = 2
z = 3
print("the values are %d %7.5f %s" % (x, y, z))
#format方法会在下一节单独叙述

3.更改print语句的目标

更改print语句的目标,也就是重定向。方法是添加特殊的 >>file修饰符和一个逗号,其中file是一个允许写入的文件对象

f = open("file_path", 'w')
print >>f, "hello world"  #这是python2中的用法,在python3的具体方法请看下文
...
f.close()

4.print()函数

Python3中最重要的更改之一就是将print转变为函数,在python2中他是一个关键字

其用法与Python2中的大致相同,但是一些细枝末节还是有区别的,下文就简述这三种。

print("the values are",x, y, z, end = '') #禁止换行符

print("the values are",x, y, z, file = f) #重定向到文件对象f

print("the values are",x, y, z, sep = ',') #在值之间添加逗号

5.文本输出中的变量插入

生成输出时一个常见的问题是,生成其中包含了嵌入式变量替换的大型文本片段。比如shell脚本就支持 $name这样的变量插入。在python中无法实现这一功能。但是可以通过将格式化I/O与引导的字符串来模仿这种行为。

form = """\
Dear %(name)s,
Please send back my %(item)s or pay me $%(amount)0.2f.

                            Sincerely yours,

                            Joe Python User
"""
print(form % {'name': 'Mr.Bush',
              'item': 'blender',
              'amount': 50.00,
    })

这段代码输出:

Dear Mr.Bush,
Please send back my blender or pay me $50.00.

                            Sincerely yours,

                            Joe Python User

format()方法是一种更加先进的替代方法,他可以使上面的代码更加简洁:

form = """\
Dear {name}s,
Please send back my {item}s or pay me ${amount:0.2f}.

                                    Sincerely yours,

                                    Joe Python User
"""
print(form.format(name = 'Mr.Bush', item = 'blender', amount = 50.00))

6.生成输出

直接处理文件是我们最熟悉的I/O模型。生成器函数也可以用于一个数据片段序列的形式输出I/O流,为此只需要使用yield语句,就像使用write()或print()语句一样,这样做的好处就是在处理某一段非常庞大的数据时,就不需要将所有的内容都读到内存中,可以显著减少内存的使用。

path = 'G:/Python/boke/test111.txt'
def countdown(n):
    while n > 0:
        yield "T-minus %d\n" % n
        n -= 1

count = countdown(10)
f = open(path,'w',encoding='UTF-8')

f.writelines(count)

f.close()

在test111.txt文件中打印结果如下:

T-minus 10
T-minus 9
T-minus 8
T-minus 7
T-minus 6
T-minus 5
T-minus 4
T-minus 3
T-minus 2
T-minus 1

总结

  • 本节重点学习了python3中print()函数的格式化输出以及print()函数在使用过程中的一些细节用法(比如重定向到文件中等)
  • 本节还遗留了一个问题就是format方法的使用

你可能感兴趣的:(Python自学笔记)