python自动计算多个教学班的优秀率_班门弄斧:Python的代码能有多简洁?

此文很水,高手略过...

Python以它的开发效率而闻名,优秀的开发效率自然意味着它能够用更少的代码实现更多的功能。那么,对于同一个问题,Python的代码能有多简洁?而我们怎么平衡开发效率和运行效率?笔者学了几个月Python,略懂一点,在此班门弄斧一翻。

在此,我们来编程计算

$$\sum_{n=0}^{10} n^2$$

这当然是一道非常简单的习题。按照一般思路,写出来的最自然的代码就是:

不过,如果追求代码的简洁性,我们只需要写

只需要一行就搞定了!这是Python以及其他脚本语言精简代码和提高效率的思路之一:利用数组以及现成的函数,尽量避免自己写循环。

不过,后面的代码虽然简洁,但是效率不算高。原因在于Python中的列表是一个很方便的对象,它的每个元素不一定要同一类型,比如a=[1,[2,3]]这样的代码是成立的,这样子第一个元素a[0]=1是一个整数,第二个元素a[1]=[2,3]是一个列表。这样子的弊端是每次调用列表中的元素时都要检测数据类型,导致效率下降。

解决的办法是用numpy中真正的数组来代替列表:

这样子便兼顾了运行效率和开发效率。

当然,更多的技巧需要在实践中不断总结。望读者赐教。

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

打赏

微信打赏

支付宝打赏

因为网站后台对打赏并无记录,因此欢迎在打赏时候备注留言。你还可以点击这里或在下方评论区留言来告知你的建议或需求。

如果您需要引用本文,请参考:

苏剑林. (Oct. 07, 2014). 《班门弄斧:Python的代码能有多简洁? 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/2971

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值