为什么这个Python ascii字符串不等同于常规字符串?
为什么以下失败为什么这个Python ascii字符串不等同于常规字符串?,python,python-3.x,comparison,ascii,Python,Python 3.x,Comparison,Ascii,为什么以下失败 assert ascii("cat") == "cat" => False (我想这与Python对字符串的比较/ASCII函数完成后对字符串的编码有关。)这是因为ASCII的输出是这样的: >>> ascii('cat') "'cat'" 这显然不同于仅仅是'cat' ascii返回字符串对象的repr版本,可与eval或ast.literal\u eval一起使用以重新生成字符串对象 >>> eval (ascii('cat'))
assert ascii("cat") == "cat" => False
(我想这与Python对字符串的比较/ASCII函数完成后对字符串的编码有关。)这是因为
ASCII
的输出是这样的:
>>> ascii('cat')
"'cat'"
这显然不同于仅仅是'cat'
ascii
返回字符串对象的repr
版本,可与eval
或ast.literal\u eval
一起使用以重新生成字符串对象
>>> eval (ascii('cat'))
'cat'
>>> from ast import literal_eval
>>> literal_eval(ascii('cat'))
'cat'
从:
str()
函数用于返回
是相当可读的,而repr()
是用来生成
口译员可以阅读的表述(或将强制
SyntaxError
如果没有等效语法)。对于没有
对于人类消费有一个特定的表示,str()
will
返回与repr()
相同的值。许多值,例如数字或
列表和字典等结构具有相同的表示形式
使用任一函数字符串和浮点数,以
特别是,有两种不同的表示法
再次感谢,太快了!