- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
>> >>> sentence="I like pyt-6ren">
我需要删除句子中多余的空格。句子是"I like python"
我需要制作 "I like python"
.所以我用这样的替换:
>>>
>>> sentence="I like python"
>>> def checkio(element):
newelement=element.replace(" ", " ") and element.replace(" ", " ")
return newelement
>>> checkio(sentence)
'I like python'
>>>
你看,结果是"I like python"
即使我(认为)我告诉它替换 " "
与 " "
.有人可以为我解决为什么这不起作用吗?
最佳答案
这可能是您想要做的:
def checkio(element):
newelement = element.replace(" ", " ").replace(" ", " ")
return newelement
你甚至可以将其缩短为
def checkio(element):
return element.replace(" ", " ").replace(" ", " ")
但是,如果您想替换任意数量的空格怎么办?最好在任意数量的空格上拆分句子,然后用一个空格将其重新连接在一起。为此,您将使用
def checkio(element):
return " ".join(element.split())
split
方法接受一个字符串并将其分成一个列表。没有参数,它以空格分隔:
>>> "I like python".split()
["I", "like", "python"]
join
方法接受一个列表并使用列表元素之间的字符串从中生成一个字符串:
>>> ' '.join(["I", "like", "python"])
"I like python"
>>> '__HELP__'.join(["I", "like", "python"])
"I__HELP__like__HELP__python"
为什么您最初的尝试失败了
线
newelement = element.replace(" ", " ") and element.replace(" ", " ")
没有按照您的预期进行,因为它使用了字符串的“真实性”。 and
运算符着眼于逻辑事物。在 python 中,除 ""
之外的所有字符串都被视为 True
。您可以使用它来做一些叫做“短路”的事情,这就是您所做的。
当您使用 and
时,左语句和右语句都必须为真才能计算为 True
。如果左边的部分为 False
,则没有理由继续到右边的部分并且评估停止在那里(又名“短路”)。如果为真,则需要检查右侧以查看整个语句是否为真。您可以利用这一事实,如果左边的语句为假,则返回左边的语句;如果左边的语句为真,则返回右边的语句:
>>> a = "a" and "b"
>>> a
"b"
>>> a = "" and "b"
>>> a
""
>>> # It works oppositely with "or"
>>> a = "a" or "b"
>>> a
"a"
>>> a = "" or "b"
>>> a
"b"
element.replace("", "")
返回一个字符串,element.replace("", "")
也是如此。由于字符串的计算结果为 True
,因此您实际上只会返回 and
的正确语句。
这不是 python 中逻辑运算符的常见用法(不过在其他语言中更常用)
关于python - 有人可以解释为什么替换对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583841/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!