Python str.split(';';)给我;ValueError:空分隔符“;对于字符串形式的句子

Python str.split(';';)给我;ValueError:空分隔符“;对于字符串形式的句子,python,python-2.7,Python,Python 2.7,TLDR: 如果未指定要拆分的str.split字符,则默认为空格或制表符。我的错误是因为我的引号之间没有空格 如果您想知道,我指定的分隔符是一个空格: words = stuff.split(" ") 有问题的字符串是这是一个问题示例。 我还试着用作为分隔符,把放进我的句子中,得到了同样的错误 编辑:这是完整的块 def break_words(stuff): """This function will break up words for us.""" words = stuff

TLDR: 如果未指定要拆分的
str.split
字符,则默认为空格或制表符。我的错误是因为我的引号之间没有空格


如果您想知道,我指定的分隔符是一个空格:

words = stuff.split(" ")
有问题的字符串是
这是一个问题示例。
我还试着用
作为分隔符,把
放进我的句子中,得到了同样的错误

编辑:这是完整的块

def break_words(stuff):
"""This function will break up words for us."""
    words = stuff.split(" ")
    return words
sentence = "This is an example of a sentence."
print break_words(sentence)
当我以py文件的形式运行这个文件时,它就工作了。 但当我运行解释器时,导入模块并键入:
句子=“这是一个句子示例。”
然后是
print break\u单词(句子)

我得到了上面提到的错误

是的,我意识到这是多余的,我只是在玩函数

编辑2:以下是整个回溯:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "ex25.py", line 6, in break_words
words = stuff.split(' ')
>>> s = "sdfd dfdf ffff"
>>> ex25.break_words(s)
['sdfd', 'dfdf', 'ffff']
>>> words = ex25.break_words(s)
>>>

如您所见,没有错误。

如下面的REPL输出所示,此错误是通过将空字符串传递给

>>s=“abc def ghi jkl”
>>>s.split(“”)
['abc','def','ghi','jkl']
>>>s.split(“”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:空分隔符
>>> 

您的代码必须将空值传递给
split
。解决这个问题,错误就会消失。

我在《艰难地学习Python》的这个练习中也遇到了同样的问题。我只需要在引号之间加一个空格

def break_words(stuff):
    """this function will break up words."""
    words = stuff.split(" ")
    return words
另外,正如有人提到的,您必须重新加载模块。虽然在本例中,由于我在Windows上使用命令提示符,我必须退出(),然后重新启动我的
py
会话并再次导入练习。


  • 在那里添加一个空格:
    words=stuff.split(“”)

  • 重新加载您的解释器


  • 我遇到了完全相同的问题。最初的错误是由于空分隔符“”,我忘了在其中填入空格。修改代码后,需要退出Python,然后重新启动Python并导入ex25。这会奏效的。如果您没有退出Python并再次导入代码,那么它将无法工作。或者最简单的方法是重新加载(ex25),这样就可以解决问题。希望能对我有所帮助

    我也遇到了同样的问题,当我从书本上学习Python的时候——艰难地学习Python

    删除2个撇号(“”)为我解决了这个问题


    words=stuff.split()#删除撇号可以消除错误

    我遇到了一个类似于相同错误的问题

    但问题是,我在split(“”)函数中遗漏了空格。#值错误:空分隔符


    如果在撇号之间插入空格,则错误已修复

    括号内肯定不需要引号

    sentence = "bla mla gla dla"
    sentence.split()
    
    我会给你

    ['bla','mla','gla','dla']


    因此,默认情况下。

    如果要将单词拆分为字符,请改用list()方法:

    word = "Easy"
    x = list(word)
    print(x)
    #["w", "o", "r", "d"]
    

    从powershell运行Windows 10。 ***硬道蟒蛇***

    我从split()方法中删除了(“”)。另外,请阅读研究练习#3。它提到使用了“from ex25 import*”。只有这两个更改允许我从解释器运行,而无需回溯。更改导入行后,它将按书中所述运行


    在此之前,在解释器(不是ex25.py)中,我必须将第3行“words=break_words(句子)”更改为“funtwords=break_words(句子)”。

    您确定在代码中,
    ”之间有空格吗?您确定这是正确的代码行吗?错误表明,某个地方有东西在调用
    字符串.split(“”)
    。它并没有突然开始工作。您运行的代码版本已经过时,但传递了一个空的分割参数。即使您再次导入ex25,它也不会更改已加载的模块(为此您需要重新加载)。您的意思是说..ex25=relad(ex25)?@dsm您也不能传递任何内容:
    s.split()
    。这会导致将一行中的一组空格视为拆分的对象。例如,
    “ab”.split(“”
    返回
    ['a','','b']
    ,但
    “ab”。split()
    返回
    ['a','b']
    ,并且已经说过要执行此操作。
    word = "Easy"
    x = list(word)
    print(x)
    #["w", "o", "r", "d"]