扫描字符串literal:TOTEM时SyntaxError:EOL

2024-06-13 10:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我们必须用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"\____/ \____/"

Tags: 字符串代码a2returndefa1特征a3
2条回答

这是原始字符串的一个奇怪的怪癖,由语法突出显示差异来表示,请参见lexical analysis

Even in a raw string, string quotes can be escaped with a backslash, but the backslash remains in the string; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes)

要修复它,请使用普通字符串和/或串联:

 "/    \\ /    \\"
r"/    \ /    " + '\\'

不能将\用作raw string literal中的最后一个字符:

r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw string cannot end in a single backslash (since the backslash would escape the following quote character).

不要使用原始字符串;只需将反斜杠加倍:

a2= "/    \\ /    \\"

或者通过使用三重引号使用原始多行字符串:

^{pr2}$

切片用于删除作为字符串一部分的初始换行符。在

相关问题 更多 >