python的print()函数详解

admin 2015年12月25日 Python学习 848次阅读 查看评论

print的一些基本用法,在前面的讲述中也涉及一些,本讲是在复习的基础上,尽量再多点内容。

eval()

在print干事情之前,先看看这个东东。不是没有用,因为说不定某些时候要用到。

>>> help(eval)      #这个是一招鲜,凡是不理解怎么用,就用这个看文档Help on built-in function eval in module __builtin__:

eval(...)
    eval(source[, globals[, locals]]) -> value

    Evaluate the source in the context of globals and locals.
    The source may be a string representing a Python expression    or a code object as returned by compile().
    The globals must be a dictionary and locals can be any mapping,
    defaulting to the current globals and locals.
    If only globals is given, locals defaults to it.

能看懂更好了,看不懂也没有关系。看我写的吧。哈哈。概括一下,eval()是把字符串中符合python表达式的东西计算出来。意思就是:

>>> 3+4         #这是一个表达式,python会根据计算法则计算出结果来7

>>> "3+4"       #这是一个字符串,python就不计算里面的内容了,虽然里面是一个符合python规范的表达式'3+4'

>>> eval("3+4") #这里就跟上面不一样了,就把字符串里面的表达式计算出来了7

下面再看一个字符串“相加”的例子:

>>> "qiwsir"+".github.io"'qiwsir.github.io'

>>> "'qiwsir'+'.github.io'"    #字符串里面,python是不会进行“计算”的

"'qiwsir'+'.github.io'"

>>> eval("'qiwsir'+'.github.io'") #eval()做的事情完全不一样,它会把字符串里面的计算出来
'qiwsir.github.io'

顺便再说一下另外一个跟eval()有点类似的函数:exec(),这个函数专门来执行字符串或文件里面的python语句。

>>> exec "print 'hello, qiwsir'
"hello, qiwsir
>>> "print 'hello, qiwsir'"
"print 'hello, qiwsir'"

print详解

print命令在编程实践中用的比较多,特别是要向看看程序运行到某个时候产生了什么结果了,必须用print来输出,或者说,本讲更宽泛地说,就要说明白把程序中得到的结果输出问题。

比较简单的输出,前面已经涉及到过了:

>>> name = 'qiwsir'
>>> room = 703
>>> website = 'qiwsir.github.io'
>>> print "MY name is:%s\nMy room is:%d\nMy website is:%s"%(name,room,website)
MY name is:qiwsirMy room is:703My website is:qiwsir.github.io

其中,%s,%d就是占位符。

>>> a = 3.1415926>>> print "%d"%a    #%d只能输出整数,int类型3
>>> print "%f"%a  #%f输出浮点数3.141593
>>> print "%.2f"%a #按照要求输出小数位数3.14
>>> print "%.9f"%a  #如果要求的小数位数过多,后面就用0补全3.141592600
>>> b = 3          
>>> print "%4d"%b   #如果是整数,这样写要求该整数占有四个位置,于是在前面增加三个空格
   3                #而不是写成0003的样式

换一种范式,写成这样,就跟上面有点区别了。

>>> import math     #引入数学模块
>>> print "PI=%f"%math.pi #默认,将圆周率打印成这个样子PI=3.141593
>>> print "PI=%10.3f"%math.pi #约束一下,这个的含义是整数部分加上小数点和小数部分共计10位,并且右对齐PI=     3.142
>>> print "PI=%-10.3f"%math.pi #要求显示的左对齐,其余跟上面一样PI=3.142
>>> print "PI=%06d"%int(math.pi) #整数部分的显示,要求共6位,这样前面用0补足了。PI=000003

其实,跟对上面数字操作类似,对字符串也可以做一些约束输出操作。看下面实验,最好看官也试试。

>>> website'qiwsir.github.io'>>> print "%.3s"%website
qiw>>> print "%.*s"%(3,website)qiw>>> print "%7.3s"%website
    qiw>>> print "%-7.3s"%website
qiw

总体上,跟对数字的输出操作类似。不过,在实际的操作中,这些用的真的不是很多,至少在我这么多年的代码生涯中,用到上面复杂操作的,就是现在给列位展示的时候,充其量用一用对float类型的数据输出小数位数的操作,其它的输出操作,以默认的那种方式居多。请看官在这里鄙夷我的无知吧。

行文到此,提醒列位,如果用python3的,请用print(),要加个括号。

print有一个特点,就是输出的时候,每行后面都自动加上一个换行符号\n,这个在前面已经有所提及。

>>>  website'qiwsir.github.io'
>>> for word in website.split("."):...     print word
... qiwsirgithubio
>>> for word in website.split("."):...     print word,         #注意,加了一个逗号,输出形式就变化了吧。
... qiwsir github io

%r是万能的吗?

我曾经说过,懒人改变世界,特别是在敲代码的领域。于是就有人问了,前面一会儿是%s,一会儿是%d,麻烦,有没有一个万能的?于是网上就有人给出答案了,%r就是万能的。看实验:

>>> import math
>>> print "PI=%r"%math.pi
PI=3.141592653589793
>>> print "Pi=%r"%int(math.pi)
Pi=3

真的是万能呀!别着急,看看这个,你是不是就糊涂了?

print还有其他用法,同时打印


#!/usr/bin/python3
a=type(1111111)
b=type('aaa')
print(a,b)

输出结果


$ python type.py

(<type 'int'>, <type 'str'>)


« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:pythonprint()函数

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合