当前位置:  开发笔记 > 编程语言 > 正文

Python - 当我在没有'print'的解释器中编写语句时会发生什么?

如何解决《Python-当我在没有'print'的解释器中编写语句时会发生什么?》经验,为你挑选了1个好方法。

我刚从文档开始学习python 2.7.11.我是做这是在那里给出的例子,但在弄糊涂了print,并r进行了介绍.我对如何将反斜杠显示为输出感到困惑.这与字符转义相关,但到目前为止我只是用于\b退格,\n新行,\\反斜杠

这就是我所说的:

在此输入图像描述

有四种不同的情况:

    既不使用print也不使用r

    使用print但不是r

    使用r但不是print

    使用printr

并且他们都提供不同的输出.我无法理解四种情况下实际发生的事情.



1> Vlad..:

两者之间没有任何联系,必然.r引入了一个原始字符串文字,它不解析转义码,这意味着\引号之间的a 将是\字符串数据中的实际字符.

print将打印出实际的字符串,而只是在>>>提示符下键入字符串文字将导致Python隐式打印字符串的值,但它将打印为字符串文字(特殊字符转义),所以你可以把它,将其粘贴回>>>并获得相同的字符串.

编辑:repr()在一些评论中提到过.基本上,它意味着返回一个可以被解析回等效对象的对象的表示,而str()更多的是针对人类可读的描述.对于内置对象,两者都预定义为合适,而对于用户对象,你可以通过定义特殊方法定义它们__repr__()__str__().

>>> obj将打印出来repr(obj),同时print obj将打印出值str(obj).

>>> class Foo(object):
...     def __str__(self):
...             return "str of Foo"
...     def __repr__(self):
...             return "Foo()"
...
>>> f = Foo()
>>> f
Foo()
>>> print f
str of Foo
>>> eval(repr(f))
Foo()

另外,关于\es,值得注意的是Python会忽略它不知道的转义序列:

>>> [c for c in '\w']
['\\', 'w']
>>> [c for c in '\n']
['\n']

\n成为一个换行符,但\w仍然是一个反斜杠后跟一个w.

例如,在'hello\\\world'第一个中,第一个\逃脱第二个,而第三个则单独留下,因为它后跟一个w.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有