我是一名正在研究python细微差别的新程序员。我的问题是,python中的文字究竟是什么?我在谷歌和python文档中搜索答案,但谷歌只是引用字符串文字,而python文档没有明确说明文字是什么。我遇到了这个页面http://www.dalkescientific.com/writings/NBN/python_intro/literals.html,提供了以下答案:
对象也称为数据结构。 Python附带了一些内置对象。有些经常被使用,Python可以快速制作这些对象,称为文字。文字包括字符串,unicode字符串,整数,浮点数,长整数,列表,元组和字典类型。
这是对的吗?我可以假设文字只是python内置对象的另一个术语吗?还有更多的文字没有在描述中涵盖?我的印象是有二元文字这样的东西,而且布尔也被认为是文字。
答案 0 :(得分:23)
文字是解析器识别为直接编写对象的语法。 Python 2中的一些示例:
-3
,-2
,-1
,0
,1
,2
,3
(int
文本)2+3j
,0+5j
,2j
,-3-5j
(complex
文字)3.5
,-2.7
(float
文字)""
,"hello"
(str
文字)u""
,u"hello"
(unicode
文字)[]
,[1,2]
(list
文字)()
,(1,)
,(1,2)
(tuple
文字){}
,{'a': 2}
(dict
文字){1,2,3}
(在Python 2.7中引入的set
文字)None
(我认为这被视为文字,而不是关键字或简单名称。)空集合没有文字,因为明显的符号{}
是
已经dict
字面。 Python 2没有真正的布尔文字; True
和False
只是布尔对象的内置全局名称。元组在技术上由逗号创建,只有在需要消除表达式歧义时才需要括号;例外是空元组()
。
请参阅phihag的答案,了解Python 3中的一些差异。
答案 1 :(得分:10)
文字is a language-independent programming term。文字是一种简洁易懂的写作方式。例如,您可以使用int()
构造零值,但0
更方便。
在Python中,可以使用以下文字:
'Düsseldorf'
,u'Köln'
(第一个是Python 2.x中的字节字符串文字)b'\x89PNG'
-12
1.2e-19
1+2.3j
True
和False
(不是旧版(2.x)Python版本中的文字)None
(1, 2, 3)
[1, 2, 3]
{1: 'one', 2: 'two'}
{1, 2, 3}
答案 2 :(得分:2)
我可以假设文字只是python内置对象的另一个术语吗?
关闭。它们是编写(某些)Python内置对象的一种方式。如果你需要一个特定的数字,并且你没有从文件或用户那里读取它,或者从数据库中获取它或计算它或从另一个模块或或者......导入它你可以使用数字文字把它放在你的代码中。
[Bindable]
public class TestClass
{
public TestClass(String name, int id)
{
Name = name
Id = id;
}
public String Name { get; set; }
public int Id { get; set; }
}
number = 42
这里是整数42,使用文字指定。
Python的number
和True
值(以及False
)不是真正的文字,而是这些值的预定义名称。但这个概念是相似的:Python为您提供了一种将这些值直接写入代码的方法。
几乎所有编程语言都有大多数常用类型的文字。
答案 3 :(得分:1)
在这种情况下,我认为这只意味着Python解析器接受这些实体的内置语法。例如,"abc"
为str
,123
为int
,1.2
为float
等。