Python学习知识库
2017年10月16日
1. too broad exception clause
捕获的异常过于宽泛了,没有针对性,应该指定精确的异常类型
场景:
def check_data_type(column, value)
try:
# 根据数据字典中列的类型,对value进行数据类型转换(value为str)
return True
except:
print("列%s的值类型不正确", column)
2. 场景
from core import search
from core import update
from core import create
from core import remove def run():
sql_prefix = {
"select": search,
"update": update,
"insert": create,
"delete": remove
}
print("欢迎使用员工信息管理系统,输入SQL语句管理数据,输入exit退出程序\n")
statement = input("SQL> ")
sql = statement.strip().lower()
while sql != 'exit':
if sql[0:6] in sql_prefix:
sql_prefix[sql[0:6]](sql)
else:
print("无效的语句\n")
想通过以上方式调用相应的函数,提示错误: TypeError: 'module' object is not callable
原因:举例说明,当输入查询语句时,调用的函数是search(sql),而实际调用方式应该是serach.search(sql),因此无法调用
解决:在文件内声明相应的函数,调用search.search(sql)
def select(sql):
search.search(sql) def update(sql):
replace.update(sql) def insert(sql):
create.create(sql) def delete(sql):
remove.remove(sql)
3. python this dictionary creation could be rewritten a dictionary literal
将
d = {}
d["a"]=1
修改为
d = dict()
d["a"]=1
4. tuples don't support item assignment
元祖不支持元素修改,这是由于修改函数中的元组参数引起的
5. continuatation line under-indented for visual indent
一行中的字符在换行是存在问题
def check_data_type(column, value)
try:
# 根据数据字典中列的类型,对value进行数据类型转换(value为str)
return True
except:
print("列%s的值类型不正确", column)
2017年7月29日
>>> with open("login.txt","r+",ending="utf-8") as f:
...f.readline()
File "<stdin>", line 2 f.readline() ^ IndentationError: expected an indented block
原因:没有缩进,要在新行加空格或tab
with open("users_info", "rw", encoding="utf-8") as f: for line in f:
if "lisi" in line:
f.seek(f.tell()-len(line))
line="test 123 0"
f.write(line)
OSError: telling position disabled by next() call
原因:在循环中不能使用tell(),具体原因需要深入研究
TypeError: eval() arg 1 must be a string, bytes or code object
原因:对一个不是str,bytes,code object的类型使用eval()方法,例如我在终端中设置a = {“zhangsan","123"},eval(a),这是对字典使用了eval()方法,正确的方式是a=' {“zhangsan","123"}',eval(a)
python模块以及导入出现ImportError: No module named ‘xxx’问题
原因:根据我学习java的经验,导入错误是因为将代码放在了direction(package)下面,所以导入要加包前缀
例如:如果在模块m1下建立test.py文件,导入时应该为import m1.test
Traceback (most recent call last):
File "C:/Users/xintongwangluosuo/PycharmProjects/tasks/module1/three_level_menu/three_leval_menu.py", line 20, in <module>
current_layer = layer[-1]
KeyError: -1
layer=current_layer
current_layer = current_layer[choice]
if not current_layer:
print("没有下一级菜单")
current_layer = layer[-1]
layer.pop()
上面是编写一个“三级菜单”程序时的代码片段,出错提示KeyError: -1,是说-1这个key在layer中是不存在的
layer本意是定义为一个列表,保存当前菜单层级的字典值,直接赋值将layer类型改成了字典
因此代码应该修改成layer.append(current_layer)
PEP8代码风格错误
expected 2 blank lines, found 0 上面需要两行空白,找到0行
原因:文件代码应在注释后面空两行
Typo:In word 错误拼写
原因:单词拼写错误
变量、值、运算符前后应加空格,逗号后应加空格,输出字符串时应采用诸如"test%s", % name的方式,%前后要有空格
Python学习知识库的更多相关文章
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python学习之路【目录】
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...
随机推荐
- 大数据学习---大数据的学习【all】
大数据介绍 什么是大数据以及有什么特点 大数据:是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合. 大数据是一种方法论:“一切都被记录,一切都被数字化,从数据中寻找需求,寻找知 ...
- Fatal error: Call to undefined function fnmatch() 解决
我的PHP版本是5.6.30,linux 是CentOS 6.6,nginx,也不知啥问题,看了官方: https://secure.php.net/manual/en/function.fnmatc ...
- Java 基本IO操作
1.基本IO操作 有时候我们编写的程序除了自身会定义一些数据信息外,还需要引用外界的数据,或是将自身的数据发送到外界,这时我们需要使用输入与输出. 1)输入与输出 输入:是一个从外 ...
- IM
一.IM技术概念 IM技术全称Instant Messaging,中文翻译"即时通讯",它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在 ...
- 为网页元素增加resize事件
默认只有window支持resize事件,但有时我们需要为div等元素添加resize事件 代码见下面,原理是在元素内添加一个内嵌html,然后监听这个内嵌html的resize事件 import { ...
- Dell R720上的系统安装问题的解决办法(关于RAID建立磁盘阵列的技术)
摘要:本篇是本人在搭建大数量存储.搜索环境时,对于使用Dell PowerEdge R720 and R720xd作为服务器所遇到的一些问题进行的总结. 开始时,我们使用Dell提供的安装光盘(蓝色) ...
- 异常:Neither BindingResult nor plain target object for bean name 'command' available as request attribute
Neither BindingResult nor plain target object for bean name 'command' available as request attribute ...
- Django 创建model的一些注意事项
自增主键字段¶ 默认情况下,Django 会给每个模型添加下面这个字段: id = models.AutoField(primary_key=True) 这是一个自增主键字段. 如果你想指定一个自定义 ...
- 搭建一个redis高可用系统
一.单个实例 当系统中只有一台redis运行时,一旦该redis挂了,会导致整个系统无法运行. 单个实例 二.备份 由于单台redis出现单点故障,就会导致整个系统不可用,所以想到的办法自然就是备份( ...
- 数据元&数据字典&元数据
1. 数据元 data element(数据元素),单个数据单元,是数据的基本单位.参阅data field(数据字段). 2. 元数据 首先,我们举个例子来看看什么叫做“元”,在后现代主义文学中有一 ...