2017-09-25 16 views
1

私はASCIIで名前を印刷しようとしていますが、エラーが発生し続けます。この単純なpython印刷プログラムで構文エラーが発生するのはなぜですか?

print (" ---", " _", "|\ |", " ___ ", " |") 
print (" | | ", " | |", "| \ |", "/ \ ", " |") 
print (" |---", " ---", "| \|", " /_____\", " |____",) 
print ("       /  \", "| |") 

エラーメッセージは次のとおりです。

File "C:File "C:\[path]\jonah.py", line 3, in ? 
    print (" |---", " ---", "| \|", " /_____\", " |____",) 

Syntax Error: EOL while scanning string literal: C:\[path]\jonah.py, line 3, pos 57 
print (" |---", " ---", "| \|", " /_____\", " |____",) 
+2

なぜあなたはあなたの母を信じられないでしょう: -

はまた、あなたは複数行の文字列を区切るために"""を使用することができ、それが簡単にASCIIアートを作るために作るには? –

答えて

1

あなたの\文字をエスケープする必要があります。また、3行目のかっこを閉じる前にを削除してください。 PSあなたはあなたが指定した別の\

print (" |---", " ---", "| \|", " /_____\\", " |____",end='') 

であなたの\文字をエスケープする必要も使用する必要が改行文字で終わっていない行を終了するためにはPython 3では""" your very long string that can span multiple lines """

0

を使用してみてくださいただ

print 'text', 
0

を使用することによって、それを行うのpython 2の方法は、あなたのTHID行の末尾にカンマがある

print (" |---", " ---", "| \|", " /_____\", " |____",) <--- HERE 
+1

これは構文エラーではありません。 –

0

二重引用符の前にEscape Charactersを使用しました。 Pythonの文字列(および他のほとんどの言語)で

print (" |---", " ---", "| \|", " /_____\\", " |____",) 
1

\文字が特定の目的を果たす - それはあなたの文字列でそれらを配置することができ、他の特殊文字をエスケープします。そうしないとあなたが有する硬質時間(例えば、利用可能な他のエスケープコードがある)と同じ文字列で'"両方持っていると思います:

foo = "'\"" 
# gives a string with the content '" 

をのpythonからのエラーメッセージは、それが見つけることができないことを示しています最後\"をエスケープした文字列の一部になりますので、実際の文字列を区切る"「sの数がunbalaある

" /_____\" 

:によって引き起こされるリテラル文字列の末尾したがって、Pythonは文句を言う。

実際に\が必要なときに何をして、何か他のものをエスケープしたくないのですか?あなたはそれをエスケープする!したがって、上記の代わりに\\を使用する場合は、次の"をエスケープする代わりに、\を文字列でそのまま使用してください。

foo = """ 
This can span many lines 
Yup 
    Yup 
""" 
関連する問題