Python中的print
Python 3.X的print
在Python 3.X中,print是一个内置函数,完整的声明形式如下:
print([object, ...][, sep=' '][, end='\n'][, file=sys.stdout][, flush=False])
sep
sep表示打印对象之间的分隔符,默认使用单个空格
>>>print(1, 2, sep='$')
1$2
end
end表示在打印的字符串末尾添加的字符串,默认是换行符
file
任何具有write(String)方法的对象都能成为file的值,默认是sys.stdout,即标准输出,file可以用来在print的时候临时进行重定向
flush
表示print是把内容立即输出,还是缓存一段在输出,默认是False,在这种情况下,是立即输出,还是缓存,主要取决于file的值,而如果是True,那么不管file是何种类型,都强制立即输出
Python 2.X中的print
在Python 2.X中,print是一个语句(statement):
>>>print x, y # print(x, y) Python 3.X的对应形式 >>>print x, y, # print(x, y, end='') Python 3.X的形式,不输出结尾换行符 >>>print >>afile, x, y # print(x, y, file=afile) Python 3.X的形式,重定向到afile
兼容Python 2.X和Python 3.X
1 使用2to3脚本将Python 2.X的形式转换成Python 3.X,使用3to2的脚本将Python 3.X转换成Python 2.X
2 import from __future__,在Python 2.X脚本的第一行加入如下代码:
from __future__ import print_function
那么,Python 2.X的脚本中也可以使用Python 3.X的print函数,对于__future__,需要注意两点:
1) 在Python 3.X的脚本中,__future__没有影响
2) __future__只对当前脚本起作用,没有传递性
3 在使用Python 2.X的print时,也加入括号,伪装成Python 3.X的调用:
# Python 2.X 的形式
# 但是打印出来的结果是tuple
# 并且tuple中每一个元素都有单引号
# 因此,虽然能够伪装,但是打印结果和Python 3.X不一样
>>>print('a', 'b', 'c')
('a', 'b', 'c') # Python 3.X的形式
>>>print('a', 'b', 'c')
a, b, c
Python 2.X中的print语法之所以可以加括号,是因为括号可以加到任何表达式上,加上括号之后,print的参数就是一个tuple了,这也是为什么伪装的print打印结果和Python 3.X不一样。要解决这个问题,可以使用格式化字符串的方法将多个参数格式化为一个,打印形式就统一了:
# Pyhon 2.X
# 转化成一个参数的好处,还可以消除上面伪装打印时,元素上的单引号
# 上面例子中,伪装打印元素上之所以有单引号,是在Python中,顶层对象
# 使用str函数转换成字符串,而嵌套对象使用repr转换成字符串
>>>print('%s %s %s' %('a', 'b', 'c'))
a b c # Python 3.X
>>>print('a', 'b', 'c')
a b c
Python中的print的更多相关文章
- 在python中使用print()时,raw write()返回无效的长度:OSError: raw write() returned invalid length 254 (should have been between 0 and 127)
写出一个不是code的bug,很烦恼,解决了挺长时间,都翻到外文来看,不过还是解决了,只尝试了一种简单可观的方法,希望对大家有用 我正在使用Django与Keras(tensorflow)来训练一个模 ...
- Python中的print、input函数以及Python中交换两个变量解析
一.Python中的值交换操作 首先明确一点点,Python中的一切都是面向对象的,可以理解为Python的中一切都是对象. 我们知道Java也是面向对象的语言,但是在Java中定义一个值变量如下: ...
- 浅析 python中的 print 和 input 的底层区别!!!
近期的项目中 涉及到相关知识 就来总结一下 ! 先看源码: def print(self, *args, sep=' ', end='\n', file=None): # known special ...
- python中的print()、str()和repr()的区别
print()函数,我们可以看出,在Python IDLE中直接输入的字符串都是有类型的,而print打印后的字符串相当于一串文字,把字符串的引号也省略了,没有类型 print()函数,生成可读性更好 ...
- python中,print函数的sep和end参数
print函数是我们经常使用的,但是它的sep和end参数或许对很多python使用者相对陌生,他们可以让我们的打印更具有个性化. 先来看下官方解释, sep:分割值与值,默认是一个空格 end:附件 ...
- python 中的 print 函数与 list函数
print() 函数: 传入单个参数时默认回车换行,关键词 end 可以用来避免输出后的回车(换行), 或者以一个不同的字符串结束输出. >>> a, b = 0, 1 >& ...
- python中的print函数
python3.x中将print由一个声明转变成了一个函数. 官方说法: Converts the print statement to the print() function. print(*ob ...
- Python中使用print打印进度条
import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个'*' per_str = '\r%s%% : % ...
- python中print()函数的“,”与java中System.out.print()函数中的“+”
python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出 ...
随机推荐
- Oracle->oracle单实例Shell脚本[20180122]
脚本主要用于redhat平台安装11g和12c软件 依赖包检查与安装 用户.组检查与安装 系统内核.用户限制 防火墙.selinux关闭 注意,linux组脚本 ...
- 第一代到第四代多址技术:从FDMA、TDMA、CDMA到OFDMA
做通信物理层有关的内容研究已经有很长一段时间了.一直没有怎么总结,今天借着秋招,来总结一波. 本文所讲的是多址技术,日常常见的有时分多址.频分多址.码分多址,对应TDMA.FDMA.CDMA. 那么什 ...
- Pagination
using System.Collections.Generic; namespace Oyang.Tool { public interface IPagination { int PageInde ...
- CentOS7 LNMP+phpmyadmin环境搭建(二、LNMP环境搭建)
上一篇博客我们在虚拟机上安装了centos7,接下来,就开始安装lnmp环境吧. 还是跟之前一样,进入命令行后,先使用su命令切换到root权限. 首先配置防火墙 CentOS 7.0默认使用的是f ...
- Flask基本介绍
Fask 1.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架对于Werkzeug本质是socket服务端,其用于接收http ...
- Kylin 几个sql报错原因 汇总
Can't create EnumerableAggregate! while executing SQL由distinct count引起的错误 null while executing SQLjo ...
- Simple, Poetic, Pithy
源自:Rob Pike points out Simple, Poetic, Pithy Don't communicate by sharing memory, share memory by co ...
- 第二节 双向链表的GO语言实现
一.什么是双向链表 和单链表比较,双向链表的元素不但知道自己的下线,还知道自己的上线(越来越像传销组织了).小煤车开起来,图里面可以看出,每个车厢除了一个指向后面车厢的箭头外,还有一个指向前面车厢的箭 ...
- Hangfire初探
Hangfire 是什么? Hangfire 是一个定时任务的管理后台,它拥有定时任务功能和及其相关的管理后台界面.Hangfire 原生使用 .NET 开发的,同时支持 .NET 和 .NET Co ...
- CF813D Two Melodies(dp)
题面 luogu Codeforces 题目大意: 给一个长度为\(n\)的序列,求两个不相交的子集长度之和最大是多少,能放入同一子集的条件是首先顺序不能变,然后每一个相邻的要么相差\(1\)或者相差 ...