【学习笔记】python2的print和python3的print()

python2.x和3.x中的输出语句有着明显不同

2.x中的print不是个函数,输出格式如下

1 Python 2.7.12+ (default, Aug  4 2016, 20:04:34)
2 [GCC 6.1.1 20160724] on linux2
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> print "There is only %d %s in the sky."%(1,‘sun‘)
5 There is only 1 sun in the sky.

3.x中的print成了函数,输出格式如下

1 Python 3.5.2+ (default, Aug  5 2016, 08:07:14)
2 [GCC 6.1.1 20160724] on linux
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> print("There is only %d %s in the sky."%(1,‘sun‘))
5 There is only 1 sun in the sky.

为什么要做出这样的变化,主要原因有以下几点:

1.print不是函数,不能使用help(),对使用者不方便。

python2中help(print)会报错。

1 >>> help(print)
2   File "<stdin>", line 1
3     help(print)
4              ^
5 SyntaxError: invalid syntax

python3中,可以使用help(print),清楚的看到print的参数。

 1 Help on built-in function print in module builtins:
 2
 3 print(...)
 4     print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False)
 5
 6     Prints the values to a stream, or to sys.stdout by default.
 7     Optional keyword arguments:
 8     file:  a file-like object (stream); defaults to the current sys.stdout.
 9     sep:   string inserted between values, default a space.
10     end:   string appended after the last value, default a newline.
11     flush: whether to forcibly flush the stream.
12 (END)

2.从上面的help(print)中我们也可以看到在print()中的两个重要参数,sep和end。这两个参数使print()相比print多了两个新功能,自定义间隔符(默认空格)和结束符(默认回车)。

1 >>> print("123","456","789")
2 123 456 789
3 >>> print("123","456","789",sep=‘-‘)
4 123-456-789
1 >>> x=1024
2 >>> print(t)
3 256
4 >>> print(t,end=" end")
5 256 end>>>
6 >>> print(t,end=" end\n")
7 256 end

3.print()重定向输出文件更加方便。

2.x需要print>>重定向输出,感觉代码很混乱。

1 >>> out=open("test.txt","w")
2 >>> print>>out,"123"

3.x中输出文件成了一个参数,使用更方便。

1 >>> out=open("test.txt","w")
2 >>> print("123",file=out)

4.python2.x中print语句的格式化输出源自于C语言的格式化输出,这种语法对于C这种静态语言比较适用,但是对于拥有很多先进数据结构的python来说就有点力不从心了。python的元组,列表,字典,集合等不适合用这种结构表示,这些数据结构大多元素用下标表示,在这种结构中写出来很混乱。python3.x的print()函数提供了有点类似C#(不知道这么说对不对)中的格式化输出函数format()。另外print()也兼容原来的格式化输出方式。

1 >>> print("%s is %s."%(‘Aoko‘,‘good‘))
2 Aoko is good.

format()让输出格式更清晰。

1 >>> print("{0} is {1}.".format(‘Aoko‘,‘good‘))
2 Aoko is good.

format()支持数组下标,使python中的一些数据结构输出更加方便。

1 >>> name=["Kaito",5]
2 >>> print("{0[0]} has {0[1]} dollars.".format(name))
3 Kaito has 5 dollars.

format()下的格式限定符,和原来的差不多。

1 >>> x=5.6
2 >>> print("{0:4f}".format(x))
3 5.600000

由此看来,print()相比print还是有很大进步的。说句题外话,我希望更多的python用户多花点时间实现代码对新版本的兼容,而不是花时间用在争论“python2和python3谁更好”的口水战上。python作为一种免费语言给我们带来了很多方便,我们应该吝惜自己那么一点时间,花一点时间让python发展下去,变得更强。

时间: 2024-10-16 20:52:47

【学习笔记】python2的print和python3的print()的相关文章

python3.5学习笔记:linux6.4 安装python3 pip setuptools

前言: python3应该是python的趋势所在,当然目前争议也比较大,这篇随笔的主要目的是记录在linux6.4下搭建python3环境的过程 以及碰到的问题和解决过程. 另外,如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 不要动现有的python2环境! 不要动现有的python2环境! 重要的使用说三遍! 一.安装python3.5 下载pyth

python3.X学习笔记(week1)老男孩20160114

学习背景: 我在西藏拉萨出差已经连续将近2个月了,实时想到会精通一门编程语言并编写出自己想要的程序是我多年的梦想,一定找时间实现,回想高中时,自己对编程的兴趣十分浓厚,父母给自己购买了学习机插卡式的,只能敲basic代码,同时学校有计算机课,经常和老师讨论编程问题,时光一晃20多年过去了,编程放下了,但是我的梦想没有放下,正好看到老男孩在51cto网站上开设网络培训PYTHON语言学习班,我犹豫了怕在高原坚持不下来,后来想早报名早学习,不能再耽误下去了,我毅然报了名,花了5000多money,自

python3学习笔记(1)

#python学习笔记 17/07/07# !/usr/bin/evn python3# -*- coding:utf-8 -*- #r"" 引号当中的字符串不转义 #练习#打印 '\\\t\n'print(r'\\\t\n') #打印 n = 123print('n = 123') # 打印 f = 456.789print("f = 456.789") #打印 s1 = 'Hello, world!'print("s1 = 'Hello, world!

Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) -         url:  需要打开的网址 -         data:Post提交的数据 -         timeout:设置网站的访问超时时间 直接用urllib.request模块的urlopen()

python3.x学习笔记2018-02-02更新

前言:python3.x部分学习笔记,有意交流学习者可加wechat:YWNlODAyMzU5MTEzMTQ=.如果笔记内容有错,请指出来. *** 对数据类型的操作 可变数据类型:列表,集合,字典 列表: ``` li=['a','b'] 增: li.insert(2,'c') #在序号2位置上插入'c' li.append('d') #在列表末尾添加'd' li.extend(li2) #在列表li后面添加li2 删: li.remove('c') del li[2] li.pop(3) 改

python3学习笔记(0)

一.编程语言主要从以下几个角度分类:1.编译型和解释型2.静态语言和动态语言3.强类型定义语言和弱类型定义语言 编译型:程序运行前先由负责翻译的程序将代码转换成可执行代码进行执行.例如C/C++.Pascal/Delphi.VB.其优点为运行速度快,对系统要求低,适用于开发操作系统.大型应用程序.数据库系统等.解释型:程序运行时每直行到一条指令就由解释程序将所执行到的代码转换成可执行代码进行执行,如此反复,直至程序直行完毕.例如Java.JavaScript.VBScript.Perl.Pyth

ruby学习笔记(1)-puts,p,print的区别

ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将先处理转义再输出p 基本与puts相同,但不会处理参数中的转义符号print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符 1 2 3 4 5 6 7 s = "aaaa\nbb\tbb" p s p "****************" puts s p

Python2和Python3中print的不同点

在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异 主要体现在以下几个方面: 1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构: 2.Python2打印时可以不加括号:print 'hello world', Python3则需要加括号   print("hello world") 3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的一些行为

python3学习笔记(3)

一.内置函数补充1.callable()检测传递的参数是否可以被调用.def f1() pass可以被调用 f2 = 123不可以被调用 2.chr()和ord()chr()将ascii码转换成字符,ord()将字符转换成acsii码在2.7中chr()和ord()用来翻译参数和ascii码的对应关系.例:r = chr(65)print(r)和r = ord("B")print(r) 实例:随机验证码import random #用来生成随机数的模块li = []for i in r