为什么Python返回整数而不是字符串
问题描述:
class Clock(object):
def __init__(self, time):
self.time = time
def print_time(self):
time = '6:30'
print(self.time)
clock = Clock('5:30')
clock.print_time()
为什么打印5:30
而不是'5:30'
?为什么Python返回整数而不是字符串
答
当你编写一个python程序时,需要在引号内放置字符串,以便解析器知道它们是字符串。所以,你输入
>>> time = 5:30
File "<stdin>", line 1
time = 5:30
^
SyntaxError: invalid syntax
>>>
>>> time = '5:30'
>>>
但是python并没有真正把引号本身存储在字符串中。它创建一个str
类型的对象,其值为5:30
。当你打印字符串时,它会打印这个值,而不是打开python解析器工作所需的引用表示。
Python对象有两种显示自己的方法。 __str__
返回预期的人类可读字符串,而__repr__
返回通常包含类型信息的程序员友好字符串。对于一个字符串,它包含引号。如果你真的想出于某种原因的报价,你可以使用repr
>>> time = '5:30'
>>> print(time)
5:30
>>> print(type(time))
<class 'str'>
>>> print(repr(time))
'5:30'
>>>
答
""
和''
只是划定一个字符串,他们是不是它的一部分,因此不会被打印出来。 程序在此处正确地打印字符串。 (5:30
是不是整数反正)
PS:我不知道,如果在print_time
time = '6:30'
是应该改变的时间属性,Clock
,但如果是,应该是self.time = '6:30'
。当前的指令没有任何影响。
'5:30'不是一个整数。 – corn3lius
引号不是字符串的一部分,“5:30”不是int – depperm