关于中国大学MOOC课程《python语言程序设计》(嵩天)实例11:自动轨迹绘制 报SyntaxError: invalid character in identifier错误的解决方法及原因

在学习中国大学MOOC的《python语言程序设计》课程中,实例11自动轨迹绘制遇到SyntaxError: invalid character in identifier的问题。原因是Python无法识别txt文件的编码。解决方案是声明文件编码为utf-8-sig,而非utf-8,因为txt文件可能包含'BOM'字符。通过测试和分析,最终在读取文件时使用正确的编码成功解决了问题,实现了预期的轨迹绘制效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,该课程实例11的内容为自动绘制轨迹
课程所给定的代码如下

#AutoTraceDraw.py
import turtle as t
t.title('自动轨迹绘制')
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals=[]
f=open("data.txt")
for line in f:
    line=line.replace("\n","")
    datals.append(list(map(eval, line.split(",")))
f.close()
#自动绘制
for i in range(len(datals)):
    t.pencolor(datals[i][3],datals[i][4],datals[i][5])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.right(datals[i][2])
    else:
        t.left(datals[i][2])

data.txt文本内容为

300,0,144,1,0,0
300,0,144,0,1,0
300,0,144,0,0,1
300,0,144,1,1,0
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,1,0,1
184,1,72,1,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0

代码全部敲进去,首次运行,提示报错

Traceback (most recent call last):
  File "F:/PycharmProjects/untitled/1.py", line 10, in <module>
    for line in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence

这里问题主要出在第10行代码

f=open("data.txt")

通过查找资料,原因可能是python识别不了txt文件的编码,这里需要声明一下
可以修改为

f=open("data.txt",encoding="utf-8")

再次运行,依然报错(这个错误也就是本文要说的主要问题,我花了一天的时间查找资料,反复尝试才找到解决办法),错误提示为:

Traceback (most recent call last):
  File "F:/PycharmProjects/untitled/1.py", line 12, in <module>
    datals.append(list(map(eval, line.split(","))))
  File "<string>", 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值