Python开发笔记

不定期更新中......


1. TypeError: unhashable type: 'list'
   字典的key不能为list类型,因为list类型是不可hash的
   字典的key只能为字符串,数值或者元组
   
2. a = b = c = []
   b.append(100)
   
   上面代码运行完后a,b,c都是[100]
   
3. sre_constants.error: look-behind requires fixed-width pattern
   正则匹配中使用后顾匹配时需要定长,也就是后顾正则中不能出现量词
   
4. not writable
   写文件时文件处于关闭状态或者以只读模式打开了文件
   
5. 遍历集合的过程中不要修改集合,copy一份出来

6. sql语句的参数应该在调用execute方法时传入,可以避免注入攻击,以及插入特殊字符时带来的问题
在往execute方法传入参数时,注意将参数以tuple或者list形式传入,例如传入100,则应该使用(100,)或者[100]传参

7.str与unicode的转换
处理字符串的一些函数如lower(),返回的的字符串编码可能会被改变(未深入研究),导致相互转换时报错:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 1: ordinal not in range(128)

例如:message = unicode(message.lower())
如果message在调用lower()函数前是str,则在unicode()函数会报上面的错
改为:message = unicode(message)
      message = message.lower()
正常

8.module 'sys' has no attribute 'setdefaultencoding'
    1.python2中解决方法:
    reload(sys)
    sys.setdefaultencoding('utf-8')

    2.python3中解决方法:
    imp.reload(sys)
    sys.setdefaultencoding('utf-8')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值