草庐IT

str_cardNum

全部标签

python - 如何在 python str.format 中转义点

我希望能够访问字典中带有str.format()点的键。我该怎么做?例如,不带点的键格式:>>>"{hello}".format(**{'hello':'2'})'2'但是当键中有一个点时它不会:>>>"{hello.world}".format(**{'hello.world':'2'})Traceback(mostrecentcalllast):File"",line1,inKeyError:'hello' 最佳答案 你不能。FormatStringSyntax支持仅整数或有效的Python标识符作为键。来自文档:arg_nam

python - 如何检查 __str__ 是否由对象实现

如果对象尚未实现__str__方法,我想在该对象上动态实现它。我尝试使用hasattr(obj,'__str__')它总是返回true,因为它从对象类中获取它。有没有办法确定对象是否实际实现了__str__?我知道我可以使用inspect.getmembers(obj)但我正在寻找更pythonic的方式编辑classEmployee(object):def__init__(self,name,age,emp_code):self.name=nameself.age=ageself.emp_code=emp_code测试e=Employee("A",23,"E1")printhasat

Python 字符串格式 - 旧 `%` 与新 `str.format`

新格式让我们可以做到这一点:'{:.-可选的填充字符。我们可以使用旧格式来做到这一点吗?(我知道我们可以用空格填充'%-12s'%'##')此外,旧格式让我们可以这样做:'%-*s'%(12,'##')-可变长度。我们可以使用新的格式来做到这一点吗? 最佳答案 要使用new-format实现可变长度,您可以使用替换嵌套->>>'{:{}>>'{:{}>>'{:{}偶数空格作为填充字符->>>'{:{}请注意,您并不总是需要使用替换嵌套,您也可以直接在格式中指定它们->>>'{:您还可以指定每个参数的位置来决定哪个参数去哪里。示例->

python - Python 中 str.replace 函数的大 O 表示法是什么?

str.replace的大Oh表示法是什么?Python中的函数?它总是O(n)吗?str="thisisstringexample"printstr.replace("is","was")thwaswasstringexample 最佳答案 大O符号是在最坏情况下计算的,最坏情况下的Python源代码只是“找到substr的下一个位置,替换,然后走得更远”。一个替换执行O(n)操作(复制字符串)。一搜,根据http://effbot.org/zone/stringlib.htm,在最坏的情况下执行O(n*m)操作。由于它最多可以替

python - 为什么 f 字符串比 str() 解析值更快?

我在玩弄f字符串(参见PEP498),我决定比较一下f字符串解析的速度(例如f"{1}")使用通常的str解析(例如str(1))。但令我惊讶的是,当我使用timeit检查这两种方法的速度时函数,我发现f弦更快。>>>fromtimeitimporttimeit>>>timeit("f'{1}'")0.1678762999999961鉴于>>>timeit("str(1)")0.3216999999999999甚至是reprfunc,在大多数情况下它比strcast更快>>>timeit("repr(1)")0.2528296999999995请问这是为什么?我认为f弦在内部称为str

python - __str__ 和 __repr__ 的区别?

这个问题在这里已经有了答案:Whatisthedifferencebetween__str__and__repr__?(28个答案)关闭9年前。我写这段代码:classItem:def__init__(self,name):self._name=name;def__str__(self):return"Item:%s"%self._name当我运行时print((Item("Car"),))输出是(,)当我将代码更改为:classItem:def__init__(self,name):self._name=name;def__repr__(self):return"Item:%s"%s

python - <class 'str'> 和 <type 'str' > 有什么区别

我是python新手。我对感到困惑.我通过使用得到了一个str:response=urllib.request.urlopen(req).read().decode()“响应”的类型是,不是.当我尝试在“for循环”中操作此str时:forIDinresponse:'response'不是按行读取,而是按字符读取。我打算将每一行“响应”放入列表的单个元素中。现在我必须将响应写入文件并使用“打开”来获取的字符串我可以在“for循环”中使用它。 最佳答案 没有区别。Python更改了type的文本表示python2(Typesarewr

Python str(u'a') 和 u'a'.encode ('utf-8' 之间有什么区别)

如标题,有没有理由不使用str()将unicode字符串转换为str?>>>str(u'a')'a'>>>str(u'a').__class__>>>u'a'.encode('utf-8')'a'>>>u'a'.encode('utf-8').__class__>>>u'a'.encode().__class__更新:感谢您的回答,也不知道我是否使用特殊字符创建字符串它会自动转换为utf-8>>>a='€'>>>a.__class__>>>a'\xe2\x82\xac'也是python3中的Unicode对象 最佳答案 当您编写st

python - 类型错误 : Type str doesn't support the buffer API when splitting string

大家好,我有这段代码:data=data.split('&')我收到以下错误:data=data.split('&')TypeError:Typestrdoesn'tsupportthebufferAPI如何拆分我的字符串? 最佳答案 data是一个bytes对象。你只能使用另一个bytes值来拆分它,你可以使用bytes文字(以b前缀开头)来创建一个:data.split(b'&') 关于python-类型错误:Typestrdoesn'tsupportthebufferAPIwhen

Python str.translate VS str.替换

为什么在Python中,replace比translate快1.5倍?In[188]:s='1a2'In[189]:s.replace('','')Out[189]:'1a2'In[190]:s.translate(None,'')Out[190]:'1a2'In[191]:%timeits.replace('','')1000000loops,bestof3:399nsperloopIn[192]:%timeits.translate(None,'')1000000loops,bestof3:614nsperloop 最佳答案 假