199

上記のエラーがありますs1="some very long string............"

誰かが私が間違っていることを知っていますか?

4

17 に答える 17

265

"行末の前にaを付けていません。

"""これを実行したい場合に使用します。

""" a very long string ...... 
....that can span multiple lines
"""
于 2010-08-24T23:07:50.030 に答える
113

私はこの問題を抱えていました-結局、その理由は\文字列に文字を含めたからだとわかりました。これらのいずれかがある場合は、それらを「エスケープ」すると、正常\\に機能するはずです。

于 2011-02-28T11:52:19.463 に答える
18

(文字列に改行がない/必要ない場合...)

この文字列は本当にどれくらいの長さですか?

ファイルまたはコマンドラインから読み取られる行の長さに制限があると思います。行の終わりが切り取られるため、パーサーはs1="some very long string..........(終わりなしで")のようなものを見て、解析エラーをスローしますか?

次のようにソースの改行をエスケープすることで、長い行を複数の行に分割できます。

s1="some very long string.....\
...\
...."
于 2010-08-24T23:36:10.123 に答える
12

私の状況では\r\n、一重引用符で囲まれた辞書の文字列がありました。のすべてのインスタンスを\rwith\\r\nwithに置き換えたところ\\n、問題が修正され、評価されたdictでエスケープされた改行が適切に返されました。

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
  .....
于 2014-10-23T20:53:16.620 に答える
8

私も同様の問題に直面しました。Windowsのフォルダへのパスを含む文字列がありました。たとえばC:\Users\、問題は\エスケープ文字であるため、文字列で使用するには、もう1つ追加する必要があります\

正しくない:C:\Users\

正しい: C:\\\Users\\\

于 2015-12-31T09:18:14.147 に答える
6

あなたはこれを試すことができます:

s = r'long\annoying\path'
于 2019-11-03T14:53:24.243 に答える
5

/私もこの問題を抱えていましたが、ここに答えがありましたが、空きスペースがあってはならないので、これに重要なポイントを示したいと思い ます。注意してください。

于 2013-08-17T06:56:21.573 に答える
4

また、この正確なエラーメッセージが表示されました。私にとっては、「\」を追加することで問題が修正されました。

私の長い文字列は、最後に「\」が付いた約8行に分割されていましたが、1行に「\」がありませんでした。

Python IDLEは、このエラーが発生した行番号を指定しませんでしたが、完全に正しい変数割り当てステートメントが赤で強調表示され、私を失望させました。実際の奇形の文字列ステートメント(「\」で長さの複数行)は、強調表示されているステートメントに隣接していました。多分これは他の誰かを助けるでしょう。

于 2013-08-15T15:25:58.823 に答える
4

私の場合、Windowsを使用しているため、一重引用符ではなく二重引用符を使用する必要があります。

C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
于 2016-09-08T23:18:37.823 に答える
4

Mac OS Xの場合、次のステートメントがありました。

model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)

エラーが発生していました:

  File "<stdin>", line 1
model.export_srcpkg(platform, toolchain, 'mymodel_pkg.zip', 'mymodel.dylib’)
                                                                             ^
SyntaxError: EOL while scanning string literal

私がに変更した後:

model.export_srcpkg(platform, toolchain, "mymodel_pkg.zip", "mymodel.dylib")

機能した...

デビッド

于 2018-08-03T04:56:52.747 に答える
3

postgresql関数でこのエラーが発生していました。読みやすくするために、長いSQLを\で複数行に分割しました。しかし、それが問題でした。問題を解決するために、すべてを削除して1行にまとめました。私はpgadminIIIを使用していました。

于 2018-01-29T12:05:49.003 に答える
3

私の場合、文字列の最後に('または ")を忘れました。例:'ABC'または"ABC "

于 2021-01-04T07:45:25.007 に答える
2

あなたvariable(s1)は複数の行にまたがっています。これを行うには(つまり、文字列を複数行にまたがらせる)、三重引用符( "" ")を使用する必要があります。

s1="""some very long 
string............"""
于 2018-10-13T06:11:26.933 に答える
1

この場合、3つの一重引用符または3つの二重引用符の両方が機能します。例えば:

    """Parameters:
    ...Type something.....
    .....finishing statement"""

また

    '''Parameters:
    ...Type something.....
    .....finishing statement'''
于 2020-03-24T16:00:28.137 に答える
1

ハードドライブディレクトリにアクセスしているときに同じ問題に直面しました。それから私はそれをこのように解決しました。

 import os
 os.startfile("D:\folder_name\file_name") #running shortcut
 os.startfile("F:") #accessing directory

ここに画像の説明を入力してください

上の図は、エラーと解決された出力を示しています。

于 2020-04-23T02:26:30.243 に答える
0

以前のほとんどの回答は正しく、私の回答はaaronasterlingと非常によく似ています。また、3つの一重引用符s1='''非常に長い文字列............'''を実行することもできます。

于 2019-11-27T23:16:36.767 に答える
0

以下のすべてのコードはPython3.8.3でテストされています


最も単純です-三重引用符を使用するだけです。
いずれかのシングル:

long_string = '''some
very 
long
string
............'''

またはダブル:

long_string = """some
very 
long
string
............"""

注:三重引用符で囲まれた文字列はインデントを保持します。つまり、

long_string = """some
    very 
    long
string
............"""

long_string = """some
    very 
long
string
............"""

または単に

long_string = """
some
very 
long
string
............"""

同じではありません。 これを処理するための関数が標準ライブラリに
ありますが、それを操作することは問題の範囲外です。textwrap.dedent


\nまた、 1行にある文字列内で使用することもできます。

long_string = "some \nvery \nlong \nstring \n............"

また、文字列に改行(つまり改行)が必要ない場合は、\通常の文字列内で使用できます。

long_string = "some \
very \
long \
string \
............"
于 2020-12-10T11:26:05.870 に答える