# 打印
1.打印`print`类似于文件`.write()`方法,它将默认地把对象打印到`stdout`流中。它会自动添加一些自动化的格式。
> 和文件的`.write()`方法不同的是,`print`不需要将对象转换为字符串
2.在Python3中,`print`是一个内置函数,用关键字参数表示特定模式,其语法格式为:
`print(obj1,obj2,sep=' ',end='\n',file=sys.stdout)`,返回值为`None`
* 参数意义依次为:
* 待打印对象作为位置参数依次给出
* `sep`关键字参数指定分隔符,默认为空格
* `end`关键字参数指定结尾字符串,默认为换行符
* `file`指定输出位置,默认为标准输出文件,它必须是一个写打开的文件对象
* 每个被打印的对象依次自动通过内置的`str()`函数取得其文本表示
* 当没有打印对象时,`print()`会把一个换行符(或者由`end`指定的其他字符串)打印到标准输出流中(或者由`file`指定的文件中)
* 关键字参数可以以任何顺序出现,但必须在位置参数之后
* 如果想指定对齐或者位宽,则可以先构建格式化表达式来生成字符串,然后在`print`这个字符串

>Python2中,`print`是语句,有自己的特定语法:`print x,y`,如果想指定结尾字符串(默认为换行),则用`print x,y, '\t'`
3.`print`实际上是向文件对象中写文本字符串,因此对于字符串常量的一对引号实际上是不输出的,它只是输出字符串的内容。而交互式命令中,为了显示指定字符串,输出中带有一对引号。

4.你也可以用`sys.stdout.write(str(x)+' '+str(y)+'\n')`代替`print(x,y)`
5.`file`关键字指定的对象可以是文件对象,也可以是拥有`.write()`方法的其他对象
6.指定了默认的`file`关键字参数时,也可以输出重定向,如
```
temp=sys.stdout #保存旧值
sys.stdout=open('test.txt','a') #重新对stdout赋值,该文件对象必须写打开
print(obj1,obj2)
sys.stdout.close() #此句可以不要,此时文件对象自动回收,文件自动关闭
sys.stdout=temp #恢复旧值
```
7.在Python3中,可以通过`from __future __import print_function`使用Python3中的`print()`函数
8.Python3的`input()`直接把输入的文本作为一个字符串返回,不会求值
(输入什么,字符串中就是什么)。
>Python2中的`input()`会对字符串求职,就像他们是输入到一个脚本的程序代码一样
