sda*_*das 2 python comparison ascii python-3.x
为什么以下失败?
assert ascii("cat") == "cat" => False
Run Code Online (Sandbox Code Playgroud)
(我想这与Python对字符串的比较/ ASCII函数完成后字符串的编码有关.)
那是因为输出ascii是这样的:
>>> ascii('cat')
"'cat'"
Run Code Online (Sandbox Code Playgroud)
这显然不同于'cat'.
ascii返回repr字符串对象的版本,可以与字符串对象一起使用eval或ast.literal_eval重新生成字符串对象.
>>> eval (ascii('cat'))
'cat'
>>> from ast import literal_eval
>>> literal_eval(ascii('cat'))
'cat'
Run Code Online (Sandbox Code Playgroud)
来自文档:
该
str()函数用于返回值相当于人类可读的值的表示,同时repr()用于生成可由解释器读取的表示(或者SyntaxError如果没有等效语法则强制执行 ).对于没有特定人类消费代表的对象,str()将返回与之相同的值repr().许多值,例如数字或结构(如列表和字典),使用任一函数都具有相同的表示.特别地,字符串和浮点数具有两个不同的表示.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |