我们必须使用由13个字符宽组成的字符串来创建图腾柱。每个头必须具有不同的特征。我的一些特征功能如下。但是,当我运行我的代码时,它给了我上面的语法错误。
import random
def hair_spiky():
return"/\/\/\/\/\/\/"
def hair_middlepart():
return"\\\\\\ //////"
def eye_crossed():
a1= r" ____ ____"
a2= r"/ \ / \"
a3= r"| O| |O |"
a4= r"\____/ \____/"
return a1 +"\n" + a2 + "\n" + a3 + "\n" a4
def eye_left():
a1=r" ____ ____"
a2=r"/ \ / \"
a3=r"|O | |O |"
a4=r"\____/ \____/"
答案 0 :(得分:1)
您无法使用\
作为raw string literal中的最后一个字符:
r"\"
不是有效的字符串文字(即使原始字符串也不能以奇数个反斜杠结尾)。具体来说,原始字符串不能以单个反斜杠结尾(因为反斜杠会转义以下引号字符)。
不要在那里使用原始字符串;只需加倍反斜杠:
a2= "/ \\ / \\"
或使用三重引号使用原始多行字符串:
def eye_crossed():
return r"""
____ ____
/ \ / \
| O| |O |
\____/ \____/"""[1:]
def eye_left():
return r"""
____ ____
/ \ / \
|O | |O |
\____/ \____/"""[1:]
切片用于删除作为字符串一部分的初始换行符。
答案 1 :(得分:0)
这是原始字符串的奇怪怪癖,并通过语法突出显示区别来表示,请参阅lexical analysis:
即使在原始字符串中,字符串引号也可以使用反斜杠进行转义,但反斜杠仍保留在字符串中;例如,r" \""是一个有效的字符串文字,由两个字符组成:反斜杠和双引号; R" \"不是有效的字符串文字(即使是原始字符串也不能以奇数个反斜杠结尾)
要修复它,请使用普通字符串和/或连接:
"/ \\ / \\"
r"/ \ / " + '\\'