如何解决Python 3中多行字符串赋值代码的报错问题
问题分析与解决
错误原因
你的代码报错是因为普通双引号字符串("...")无法直接跨行书写,当前代码里的字符串在换行处没有正确处理,导致Python解析器认为字符串未终止,进而引发后续的语句分隔错误。
修复方案
以下三种方法任选其一即可:
方法1:用反斜杠转义换行
在每一行的末尾添加\(注意\后面不能有任何空格或字符,直接接换行):
line = "48,[['c0', 700, 2401], ['c1', 300, 2002], ['c2', 100, 1803], ['c3', 900, \ 2604], ['c4', 200, 1905], ['c5', 700, 2406], ['c8', 1200, 2909], ['c11', \ 600, 2312], ['c14', 400, 2115], ['c28', 500, 2229], ['c29', 300, 2030], \ ['c31', 1200, 2932], ['c35', 1600, 3336], ['c36', 1700, 3437], ['c39', \ 300, 2040], ['c13', 800, 3215], ['c17', 1600, 5230], ['c15', 1600, 5229], \ ['c19', 1100, 4335], ['c10', 1500, 3513], ['c22', 900, 4535], ['c9', 1800, \ 3715], ['c18', 900, 4532], ['c7', 1000, 3612], ['c12', 500, 3117], ['c16', \ 700, 4329], ['c6', 500, 2913], ['c20', 1400, 4334], ['c30', 1200, 5763], \ ['c25', 1500, 5860], ['c27', 700, 5958], ['c26', 900, 6157], ['c24', 1800, \ 7054], ['c23', 500, 5753], ['c21', 1200, 3534], ['c37', 300, 7392], \ ['c33', 500, 6287], ['c40', 1100, 7099], ['c34', 1000, 6993], ['c41', \ 1900, 8099], ['c32', 100, 5896], ['c38', 700, 6599], ['c45', 800, 7839], \ ['c43', 1300, 7943], ['c42', 300, 8442], ['c47', 1800, 9240], ['c44', 400, \ 7837], ['c46', 300, 7739]]"
方法2:改用三重引号字符串
三重引号("""..."或'''...''')支持直接跨行书写,无需转义:
line = """48,[['c0', 700, 2401], ['c1', 300, 2002], ['c2', 100, 1803], ['c3', 900, 2604], ['c4', 200, 1905], ['c5', 700, 2406], ['c8', 1200, 2909], ['c11', 600, 2312], ['c14', 400, 2115], ['c28', 500, 2229], ['c29', 300, 2030], ['c31', 1200, 2932], ['c35', 1600, 3336], ['c36', 1700, 3437], ['c39', 300, 2040], ['c13', 800, 3215], ['c17', 1600, 5230], ['c15', 1600, 5229], ['c19', 1100, 4335], ['c10', 1500, 3513], ['c22', 900, 4535], ['c9', 1800, 3715], ['c18', 900, 4532], ['c7', 1000, 3612], ['c12', 500, 3117], ['c16', 700, 4329], ['c6', 500, 2913], ['c20', 1400, 4334], ['c30', 1200, 5763], ['c25', 1500, 5860], ['c27', 700, 5958], ['c26', 900, 6157], ['c24', 1800, 7054], ['c23', 500, 5753], ['c21', 1200, 3534], ['c37', 300, 7392], ['c33', 500, 6287], ['c40', 1100, 7099], ['c34', 1000, 6993], ['c41', 1900, 8099], ['c32', 100, 5896], ['c38', 700, 6599], ['c45', 800, 7839], ['c43', 1300, 7943], ['c42', 300, 8442], ['c47', 1800, 9240], ['c44', 400, 7837], ['c46', 300, 7739]]"""
方法3:字符串拼接
把每行字符串拆分后用+连接,换行处同样可以用\转义:
line = "48,[['c0', 700, 2401], ['c1', 300, 2002], ['c2', 100, 1803], ['c3', 900, " + \ "2604], ['c4', 200, 1905], ['c5', 700, 2406], ['c8', 1200, 2909], ['c11', " + \ "600, 2312], ['c14', 400, 2115], ['c28', 500, 2229], ['c29', 300, 2030], " + \ "['c31', 1200, 2932], ['c35', 1600, 3336], ['c36', 1700, 3437], ['c39', " + \ "300, 2040], ['c13', 800, 3215], ['c17', 1600, 5230], ['c15', 1600, 5229], " + \ "['c19', 1100, 4335], ['c10', 1500, 3513], ['c22', 900, 4535], ['c9', 1800, " + \ "3715], ['c18', 900, 4532], ['c7', 1000, 3612], ['c12', 500, 3117], ['c16', " + \ "700, 4329], ['c6', 500, 2913], ['c20', 1400, 4334], ['c30', 1200, 5763], " + \ "['c25', 1500, 5860], ['c27', 700, 5958], ['c26', 900, 6157], ['c24', 1800, " + \ "7054], ['c23', 500, 5753], ['c21', 1200, 3534], ['c37', 300, 7392], " + \ "['c33', 500, 6287], ['c40', 1100, 7099], ['c34', 1000, 6993], ['c41', " + \ "1900, 8099], ['c32', 100, 5896], ['c38', 700, 6599], ['c45', 800, 7839], " + \ "['c43', 1300, 7943], ['c42', 300, 8442], ['c47', 1800, 9240], ['c44', 400, " + \ "7837], ['c46', 300, 7739]]"
内容的提问来源于stack exchange,提问作者bw13300
相关产品推荐
相关产品推荐

