python常见问题及解决办法(更新ing)
1、SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 76-77: truncated \uXXXX escape
原因是代码中的⽂件路径不正确。window 读取⽂件可以⽤\,但是在字符串中\是被当作转义字符来使⽤。’d:\a.txt’会被转义成’d:\a.txt’这是正确路径,所以不会报错。
但是accounts_file = 'F:\Myself\xxx\' 这个就会报错,经过转义之后可能就不到原本的⽂件路径了。所以,需要改成这样accounts_file = 'F:\\Myself\\xxx\\xxx\\xx\\' 或者accounts_file = r'F:\Myself\xxx\'或者按照linux的路径写法accounts_file =
'F:/Myself/xxx/'。Linux的写法在linux和windows都可以识别。
2、使⽤input输⼊的字段全部按照string类型处理,若需要跟其他类型⽐较,可以转换类型。如转换成整型,可以直接⽤int, score = int(score)  score 是input输⼊的
3、break和continue的区别
break:在循环⾥⾯,只要遇到break⽴即结束循环
continue:在循环⾥⾯,只要遇到continue时,结束本次循环,继续下次循环。Continue后⾯的代码都不执⾏
break和continue两个都写在循环中
4、while和for下⾯都可以对应⼀个else,是指正常结束循环之后,执⾏else⾥⾯的代码。若循环时break结束的,那么不会执⾏
5、print打印多个字段的时候,⽤逗号隔开即可。如print("欢迎%s,今天是%s" % (username, time))    %s是占位符
6、for循环的range中,是顾头不顾尾。如range(10),就是0~9,若写(1,10),1~9,顾头不顾尾。想要输出10 ,那么就是range(1,11)
7、print()⾥⾯没有写end时,默认相当于是print(end=’\n’)。可⼈⼯在print后加空格,写为print(xxx, end=’  ’)
8、IndentationError: unindent does not match any outer indentation level
最常见的原因是,的确没有对齐。去代码中看了下,有没有没对齐的
python脚本中,是否有多余的不该有的空格。可以复制所有的代码在notepad++中查看。 Notepad++中需要设置,视图-->显⽰符号-->显⽰空格和制表符
新的Python语法,是不⽀持的代码对齐中,混⽤TAB和空格的。
9、TypeError: 'list' object is not callable    (11.22)
出现该错误的原因是参数名称和函数名称相同
list = ['a','b',2,5,'1']
print(list)
python新手代码错了应该怎么改stus = []
stus1 = list()
print(stus)
print(stus1)
callable()是python的内置函数,⽤来检查对象是否可被调⽤,可被调⽤指的是对象能否使⽤()括号的⽅法调⽤
在如上代码中,由于变量list和函数list重名了,所以函数在使⽤list函数时,发现list是⼀个定义好的列表,⽽列表是不能被调⽤的,因此抛出⼀个类型错误
修改变量名list后,运⾏正常。
10、读取⾃⼰写的⽂件,encoding=‘utf-8’时,会报错'utf-8' codec can't decode byte 0xca in position 0: invalid continuation byte,需要将读取的encoding改成encoding='gbk'
with open(file,encoding='utf-8') as fr:
data = fr.read()
改成:
with open(file,encoding='gbk) as fr:
data = fr.read()
11、InternalError: (1054, "Unknown column 'uname in 'field list'")
sql='insert into app_myuser(username,passwd,is_admin) values(uname,password,is_admin);')
#报错,"Unknown column 'uname in 'field list'",改成下⾯将不会报错
sql='insert into app_myuser(username,passwd,is_admin) values("%s","%s",is_admin);'%(uname,password))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。