What are common pitfalls and tips in Python programming?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1136个文字,预计阅读时间需要5分钟。
《Python 技巧与捷径:学习 Python 的实用技巧和技巧》
以下是关于 Python 的几个实用技巧和捷径整理:
1. 链接资源: - [Python Tips, Tricks, and Hacks](http://www.siafoo.net/article/52) - [Programming FAQ](http://docs.python.org/faq/programming)
2. Python 语法与功能: - 利用 `pip` 管理包 - 使用列表推导式简化代码 - 掌握 `lambda` 函数的运用 - 熟悉模块导入和函数封装 - 理解异常处理机制 - 使用 `with` 语句进行资源管理
3. 数据结构与算法: - 掌握列表、元组、字典等基本数据结构 - 学习集合操作和排序算法 - 了解递归和迭代方法 - 掌握常用算法,如搜索、排序、图论等
4. 面向对象编程: - 理解类和对象的概念 - 学习封装、继承和多态 - 实践面向对象设计模式
5. 文件操作: - 使用 `open()` 函数读写文件 - 理解文件路径和编码问题 - 实现文件压缩和解压缩
6. 网络编程: - 使用 `socket` 库进行网络通信 - 了解 HTTP、HTTPS 协议 - 使用第三方库实现网络爬虫
7. 测试与调试: - 使用 `unittest` 或 `pytest` 进行单元测试 - 理解断言和测试覆盖率 - 使用 `pdb` 或 `print()` 函数进行调试
8. 性能优化: - 分析代码性能瓶颈 - 使用 `cProfile` 或 `timeit` 库进行性能测试 - 掌握 Python 内置的优化技巧
通过学习以上技巧和捷径,可以更高效地掌握 Python 编程。
开篇几个链接, 有很多的tips, 值得认真学习
Python Tips, Tricks, and Hacks
www.siafoo.net/article/52
Programming FAQ
docs.python.org/faq/programming
下面是我整理的Python语言的几个特殊之处(多和c#相比)
1. python的多行注释
在很多语言中, /* */是多行注释的写法, 但在python中, 没有专门的多行注释写法, 如果要写多行注释, 推荐的写法是, 每行以#开头. 当然, 也可以使用docstrings来做多行注释, 但不推荐这个写法.
2. python没有枚举类型
我觉得一般情况下可以使用dict来模拟一个枚举, key为序号, value为枚举值.
3. python没有switch语句
这个有点不太适应. 可以使用if 或者table的选择驱动来实现, 不闲麻烦, 还有类的多态也可以用一用.
4. 布尔类型和逻辑运算符
Python中用True和False来定义真假,None、任何数值类型中的0、空字符串''、空元组() 、空列表[]、空字典{}都被当作False,其他对象都可被看做True.
Python用关键字and、or、not代替了C#语言中的逻辑运算符&&、|| 和! ,此外 Pyhton中参与逻辑运算的操作数不限于布尔类型,任何类型的值都可以参与逻辑运算, and 和 or 所执行的运算结果并不一定是布尔值,确切地说, 而是返回最后参与计算的运算子.(何为最后参与计算的运算子呢? Python中的逻辑表达式是“短路”执行的,也就是说只有需要时才会进行逻辑表达式右边值的计算,例如表达式 a and b 只有当a为True时才计算b。), 例如
'a' and 'b' 返回 'b'
'a' or 'b' 返回 'a'
5. 超强的布尔表达式, 居然可以怎么写if (0 < i < 10)
def test(i):if (0 < i < 10):
print("ok")
else:
print("")
6. i++, i-- 与++i, --i
python没有i++和i--, 可以使用i+=1, i-=1.
但++i和--i是可以用的, 但也不用于c语言, 这里的+和-是取正和取负运算符, ++i相当于+(+i), 结果仍然是i, --i相当于-(-i), 结果仍然是i
7. python的for语句
不同于C#的for语句, 更像foreach语句.
8. python的while语句
while语句也很特别, 还可以带一个else字句
9. exception的抛出
这个和Object Pascal写法完全的一致, raise Exception("some error.")
10. exception的捕获
这个也和Object Pascal写法类似, 和C#的try catch不太一样, 另外不能直接使用err对象来输出callback信息, 需要使用额外的traceback类完成. try exception 还可以加else子句, 如果没有异常, else部分就会执行, 个人觉得没有必要, 仅仅的好处是, 代码结构显得清晰一点. (while 带else, 我觉得存在意义比这个大一些)
1 #-----------------------2 try:
3 i=int(s)
4 except Exception as err:
5 #except Exception,err: #这是老的写法, 不推荐
6 print(err)
7 finally: # Clean up action
8 print("Goodbye!")
9 #-----------------------
本文共计1136个文字,预计阅读时间需要5分钟。
《Python 技巧与捷径:学习 Python 的实用技巧和技巧》
以下是关于 Python 的几个实用技巧和捷径整理:
1. 链接资源: - [Python Tips, Tricks, and Hacks](http://www.siafoo.net/article/52) - [Programming FAQ](http://docs.python.org/faq/programming)
2. Python 语法与功能: - 利用 `pip` 管理包 - 使用列表推导式简化代码 - 掌握 `lambda` 函数的运用 - 熟悉模块导入和函数封装 - 理解异常处理机制 - 使用 `with` 语句进行资源管理
3. 数据结构与算法: - 掌握列表、元组、字典等基本数据结构 - 学习集合操作和排序算法 - 了解递归和迭代方法 - 掌握常用算法,如搜索、排序、图论等
4. 面向对象编程: - 理解类和对象的概念 - 学习封装、继承和多态 - 实践面向对象设计模式
5. 文件操作: - 使用 `open()` 函数读写文件 - 理解文件路径和编码问题 - 实现文件压缩和解压缩
6. 网络编程: - 使用 `socket` 库进行网络通信 - 了解 HTTP、HTTPS 协议 - 使用第三方库实现网络爬虫
7. 测试与调试: - 使用 `unittest` 或 `pytest` 进行单元测试 - 理解断言和测试覆盖率 - 使用 `pdb` 或 `print()` 函数进行调试
8. 性能优化: - 分析代码性能瓶颈 - 使用 `cProfile` 或 `timeit` 库进行性能测试 - 掌握 Python 内置的优化技巧
通过学习以上技巧和捷径,可以更高效地掌握 Python 编程。
开篇几个链接, 有很多的tips, 值得认真学习
Python Tips, Tricks, and Hacks
www.siafoo.net/article/52
Programming FAQ
docs.python.org/faq/programming
下面是我整理的Python语言的几个特殊之处(多和c#相比)
1. python的多行注释
在很多语言中, /* */是多行注释的写法, 但在python中, 没有专门的多行注释写法, 如果要写多行注释, 推荐的写法是, 每行以#开头. 当然, 也可以使用docstrings来做多行注释, 但不推荐这个写法.
2. python没有枚举类型
我觉得一般情况下可以使用dict来模拟一个枚举, key为序号, value为枚举值.
3. python没有switch语句
这个有点不太适应. 可以使用if 或者table的选择驱动来实现, 不闲麻烦, 还有类的多态也可以用一用.
4. 布尔类型和逻辑运算符
Python中用True和False来定义真假,None、任何数值类型中的0、空字符串''、空元组() 、空列表[]、空字典{}都被当作False,其他对象都可被看做True.
Python用关键字and、or、not代替了C#语言中的逻辑运算符&&、|| 和! ,此外 Pyhton中参与逻辑运算的操作数不限于布尔类型,任何类型的值都可以参与逻辑运算, and 和 or 所执行的运算结果并不一定是布尔值,确切地说, 而是返回最后参与计算的运算子.(何为最后参与计算的运算子呢? Python中的逻辑表达式是“短路”执行的,也就是说只有需要时才会进行逻辑表达式右边值的计算,例如表达式 a and b 只有当a为True时才计算b。), 例如
'a' and 'b' 返回 'b'
'a' or 'b' 返回 'a'
5. 超强的布尔表达式, 居然可以怎么写if (0 < i < 10)
def test(i):if (0 < i < 10):
print("ok")
else:
print("")
6. i++, i-- 与++i, --i
python没有i++和i--, 可以使用i+=1, i-=1.
但++i和--i是可以用的, 但也不用于c语言, 这里的+和-是取正和取负运算符, ++i相当于+(+i), 结果仍然是i, --i相当于-(-i), 结果仍然是i
7. python的for语句
不同于C#的for语句, 更像foreach语句.
8. python的while语句
while语句也很特别, 还可以带一个else字句
9. exception的抛出
这个和Object Pascal写法完全的一致, raise Exception("some error.")
10. exception的捕获
这个也和Object Pascal写法类似, 和C#的try catch不太一样, 另外不能直接使用err对象来输出callback信息, 需要使用额外的traceback类完成. try exception 还可以加else子句, 如果没有异常, else部分就会执行, 个人觉得没有必要, 仅仅的好处是, 代码结构显得清晰一点. (while 带else, 我觉得存在意义比这个大一些)
1 #-----------------------2 try:
3 i=int(s)
4 except Exception as err:
5 #except Exception,err: #这是老的写法, 不推荐
6 print(err)
7 finally: # Clean up action
8 print("Goodbye!")
9 #-----------------------

