为什么我在这个简单的python打印程序中遇到语法错误?

时间:2017-09-25 21:36:08

标签: python

我正在尝试以ASCII格式打印名称,但仍然出现错误。

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 (" |---", " ---", "| \|", " /_____\", " |____",)

5 个答案:

答案 0 :(得分:1)

你必须逃脱你的\字符。另外,在关闭第三行的括号之前,请删除。 PS尝试使用""" your very long string that can span multiple lines """

答案 1 :(得分:1)

在python字符串(和大多数其他语言)中,\字符用于特定目的 - 它会转义其他特殊字符,允许您将它们放在字符串中。否则,您在同一个字符串中遇到'"时很难(例如,还有其他可用的转义码):

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

来自python的错误消息告诉您它无法找到字符串文字的结尾,这是由以下原因引起的:

" /_____\"

由于上一个\ 转义下一个"并使其成为字符串的一部分,因此分隔实际字符串的"的数量是不平衡,因此,python抱怨。

那么当你需要一个真正的\并且不希望它逃避别的东西时你会怎么做?你逃脱了!因此,如果您在上面使用\\,则会在字符串中逐字使用以下\,而不是转义下一个"

此外 - 为了更容易制作ASCII艺术品,您可以使用"""来分隔多行字符串:

foo = """
This can span many lines
Yup
   Yup
"""

答案 2 :(得分:0)

在Python 3中结束一条不以新行字符结尾的行,您还需要使用另一个\

来转义\字符。
print (" |---", "  ---", "|  \|", " /_____\\", " |____",end='')

您只需使用

指定了python 2的方法
print 'text',

答案 3 :(得分:0)

你的第一行末尾有一个逗号

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

答案 4 :(得分:0)

您在双引号前使用了Escape Characters

class NetworkProvider  {
   public var userID: String

   func observeStateChange() {

        FIRAuth.auth()?.addStateDidChangeListener({ (auth, authenticatedUser) in
          if let user = authenticatedUser {
              userID = user.uid
          }
       }
    }

   func currentUserID() -> String {
        return self.userID
  }
}`