Python■WTF?能把Python代码写得这么优雅的都是神仙程序员吧!( 二 )


2)使用enumerate进行迭代:enumerate方法用于将一个可遍历的数据对象组合为一个索引序列 , 同时输出数据和数据下标 , 一般用于for循环之中 , 演示如下:
不优雅的方法:
输出:
优雅的方法 , 使用enumerate函数:
3)用join方法生成字符串:join()函数能够将序列中的元素按照给定的字符链接生成一个新的字符串 。
不好的代码:
输出:我-在-知-了-课-堂-学-Python-
使用join方法:
输出:我-在-知-了-课-堂-学-Python
4)不适用临时变量交换两个值:
5)使用:
二、使用Cython模块提升代码执行速度Python有着良好的扩展性与接口功能 , 人工智能大多数库都是C++或者C写来由Python调用 。 大公司会使用Python来提升开发效率 , 用C来弥补性能缺口 。 在Python官方文档中 , 也给出了Python的C API接口的文档 , 但是下面也标注了“给 C/C++ 程序员的参考手册” , 绝非等闲之辈能轻易掌握!好消息是 , 有Cython模块 , 官方是这样介绍的(翻译):
[Cython
是一种编程语言 , 它使编写Python语言的C扩展与Python本身一样容易 。 它旨在成为[Python
语言的超集 , 从而为它提供高级 , 面向对象 , 功能和动态编程 。
Cython是Python编译器 。 这意味着它可以编译普通的Python代码而无需进行更改(除了一些尚不支持的语言功能的明显例外) , 接下来使用Cython提升Python执行速度 。
1)安装:使用cython最简单的方法是执行
也可以从https://cython.org/下载最新版本。 解压缩tarball或zip文件 , 输入目录 , 然后运行:
另外需要安装gcc , linux下一般自带 。
2)Hello ,Cython:使用官方推荐的方法(使用setuptools)构建我们的代码 ,
创建hello.pyx文件(你没看错 , 不是.py而是.pyx)并键入:
创建对应的setup.py脚本:
cmd到当前目录 , 执行:
gcc与g++都安装但是 , 报错 , 缺乏 Microsoft visual C++ 14.0遂下载安装:

4GB!太大了 , 用linux试试!

在centos环境下 , 重复上述步骤:
成功 , 并且生成了一个hello.cpython-36m-x86_64-linux-gnu.so文件 在Windows下会生成.pyd文件 。

使用:
hon VS Python :

斐波那契数列 , 通俗易懂 , 使用Python容易实现 , 也考验计算能力 。 我们分别用Python和cython来计算斐波那契第38项的值 , 同一台机器 , 看谁算的快!
使用Python:
创建fib1.py并键入:
成绩:11.73秒
使用Cython:

创建一个fib2.pyx并键入:
创建相应的setup.py
执行:
建立测试文件test.py
成绩 , 2.20秒
awesome!快了5倍多 , 实际上随着项的增大 , 成绩还会有所提升 。

使用cython不仅能够大幅提升代码的运行速度 , 还能够起到加密核心代码的作用 , 即便是被对手入侵了服务器 , 也不必担心核心代码泄露 。
三、使用科学计算库知名的科学计算库如numpy、pandas等底层都使用C++、C完成 , 这在一定程度上保证了执行速度 , 另一方面也能帮助我们提升可读性 。
我们分别用numpy和传统的**方法来计算一个数组的乘方 ,
很给力 , 快了数倍:
【Python■WTF?能把Python代码写得这么优雅的都是神仙程序员吧!】相信 , 不断的优化我们的编程习惯 , 像写诗一样写代码 , 养成良好科学的计算习惯 , 一定能够写出pythonic代码!