上記のエラーがありますs1="some very long string............"
誰かが私が間違っていることを知っていますか?
上記のエラーがありますs1="some very long string............"
誰かが私が間違っていることを知っていますか?
"
行末の前にaを付けていません。
"""
これを実行したい場合に使用します。
""" a very long string ......
....that can span multiple lines
"""
私はこの問題を抱えていました-結局、その理由は\
文字列に文字を含めたからだとわかりました。これらのいずれかがある場合は、それらを「エスケープ」すると、正常\\
に機能するはずです。
(文字列に改行がない/必要ない場合...)
この文字列は本当にどれくらいの長さですか?
ファイルまたはコマンドラインから読み取られる行の長さに制限があると思います。行の終わりが切り取られるため、パーサーはs1="some very long string..........
(終わりなしで"
)のようなものを見て、解析エラーをスローしますか?
次のようにソースの改行をエスケープすることで、長い行を複数の行に分割できます。
s1="some very long string.....\
...\
...."
私の状況では\r\n
、一重引用符で囲まれた辞書の文字列がありました。のすべてのインスタンスを\r
with\\r
と\n
withに置き換えたところ\\n
、問題が修正され、評価されたdictでエスケープされた改行が適切に返されました。
ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n'))
.....
私も同様の問題に直面しました。Windowsのフォルダへのパスを含む文字列がありました。たとえばC:\Users\
、問題は\
エスケープ文字であるため、文字列で使用するには、もう1つ追加する必要があります\
。
正しくない:C:\Users\
正しい: C:\\\Users\\\
あなたはこれを試すことができます:
s = r'long\annoying\path'
/
私もこの問題を抱えていましたが、ここに答えがありましたが、空きスペースがあってはならないので、これに重要なポイントを示したいと思い
ます。注意してください。
また、この正確なエラーメッセージが表示されました。私にとっては、「\」を追加することで問題が修正されました。
私の長い文字列は、最後に「\」が付いた約8行に分割されていましたが、1行に「\」がありませんでした。
Python IDLEは、このエラーが発生した行番号を指定しませんでしたが、完全に正しい変数割り当てステートメントが赤で強調表示され、私を失望させました。実際の奇形の文字列ステートメント(「\」で長さの複数行)は、強調表示されているステートメントに隣接していました。多分これは他の誰かを助けるでしょう。
私の場合、Windowsを使用しているため、一重引用符ではなく二重引用符を使用する必要があります。
C:\Users\Dr. Printer>python -mtimeit -s"a = 0"
100000000 loops, best of 3: 0.011 usec per loop
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")
機能した...
デビッド
postgresql関数でこのエラーが発生していました。読みやすくするために、長いSQLを\で複数行に分割しました。しかし、それが問題でした。問題を解決するために、すべてを削除して1行にまとめました。私はpgadminIIIを使用していました。
私の場合、文字列の最後に('または ")を忘れました。例:'ABC'または"ABC "
あなたvariable(s1)
は複数の行にまたがっています。これを行うには(つまり、文字列を複数行にまたがらせる)、三重引用符( "" ")を使用する必要があります。
s1="""some very long
string............"""
この場合、3つの一重引用符または3つの二重引用符の両方が機能します。例えば:
"""Parameters:
...Type something.....
.....finishing statement"""
また
'''Parameters:
...Type something.....
.....finishing statement'''
以前のほとんどの回答は正しく、私の回答はaaronasterlingと非常によく似ています。また、3つの一重引用符s1='''非常に長い文字列............'''を実行することもできます。
以下のすべてのコードは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 \
............"