1. ホーム
  2. python

[解決済み] str.split(' ')で文字列形式の文に「ValueError: empty separator」と表示されました。

2022-02-17 21:39:04

質問

TLDR に文字を指定しない場合 str.split で分割する場合、デフォルトはスペースまたはタブ文字になります。私のエラーは、引用符の間にスペースを入れていなかったことが原因です。


因みに、私が指定したセパレータはスペースです。

words = stuff.split(" ")

問題の文字列は This is an example of a question. また、試しに # をセパレータとして使用し # を文中に入れると、同じエラーが発生しました。

編集:以下は、完全なブロックです。

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ファイルとして実行すると、動作します。 しかし、インタプリタを実行し、モジュールをインポートし、タイプしたとき。 sentence = "This is an example of a sentence." に続いて print break_words(sentence)

上記のようなエラーが発生します。

そして、はい、私はこれが冗長であることに気づいています、私はちょうど関数で遊んでいます。

編集2:トレースバックの全体像です。

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

編集3:さて、何が違ったのか分かりませんが、今もう一度やってみたら、うまくいきました。

>>> s = "sdfd dfdf ffff"
>>> ex25.break_words(s)
['sdfd', 'dfdf', 'ffff']
>>> words = ex25.break_words(s)
>>>

ご覧の通り、エラーはありません。

解決方法は?

このエクササイズで同じ問題が発生しました。 Pythonを学ぶには難しい方法 . 引用符の間にスペースを入れればよかったんだ。

def break_words(stuff):
    """this function will break up words."""
    words = stuff.split(" ")
    return words

また、誰かが言っていたように、モジュールを再読み込みする必要があります。この例では、Windowsのコマンドプロンプトを使用していたので、以下のようにしました。 exit() を再起動し py セッションを開き、エクササイズを再度インポートしてください。