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学习知识库的更多相关文章

  1. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  2. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. Python学习路径及练手项目合集

    Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159

  5. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  6. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  7. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  8. [Python] 学习资料汇总

    Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...

  9. Python学习之路【目录】

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! 目录: Python学习[第一篇]python简介 Python学习[第二篇]p ...

随机推荐

  1. easyUI datagrid 重复发送URL请求

    如果在table属性中配置了URL参数,在初始化datagrid时,会发送一次url请求.或者在js中datagrid{url:''}时,也会自动发送一次url请求. 在初始化datagrid时,我并 ...

  2. window搭建svn服务器,本地提交至服务器后,直接同步

    找到版本库目录(在安装svnserver时指定的目录),如下图指定了一个版本库的hooks 在其中创建post-commit.bat文件(可先创建post-cmmit.txt再修改后缀名为bat). ...

  3. json转换为tree对象(递归)

    const newTeam = function (data, parentId) { 2 let itemArr = []; 3 for (let i = 0; i < data.length ...

  4. Oracle 时段负载情况

    ALTER session SET nls_date_format='yyyy-mm-dd hh24:mi:ss'; SELECT *  FROM ( SELECT A.INSTANCE_NUMBER ...

  5. mongodb---js脚本操作速记

    之前写一些mongodb的同步或操作程序,往往使用perl,甚至c实现,这样程序很繁琐,而且逻辑不好控制,甚至一些功能和命令什么的,在这些语言的mongo驱动中就没有实现.后来发现mongodb 的s ...

  6. ANT table表格合并

      1.    合并前提 后台返回数据必须是:相同重复的数据必须是连在一起的,这样前台才能通过rowspan方法合并表格数据.(这是前提,后台需要注意) 2.步骤 1.前台需要根据后台返回的数据内容, ...

  7. 单片机课程设计>八音盒

    2017—2018学年度第一学期 <单片机原理及应用>作品考试 八音盒 2017-2018-1<单片机原理及应用>作品设计提交文档 一.作品设计目的 1.利用51单片机的各个部 ...

  8. Hive之数据类型

    Hive之数据类型   (本文是基于多篇文章根据个人理解进行的整合,参考的文章见末尾的整理) 数据类型 Hive支持两种数据类型,一类叫原子数据类型,一类叫复杂数据类型.原子数据类型包括数值型.布尔型 ...

  9. Selenium应用代码(常见封装的方法二)

    滚动窗口: //将滚动条滚到适合的位置 , 方法一 public static void setScroll(WebDriver driver,int height){ try { // String ...

  10. mybatis动态sql语句学习(一)

    动态 SQL MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格 ...