我一直说python是非常优美的语言,那到底如何个美呢,其中有一个特性就是简洁.很多果粉为啥特别喜欢苹果手机和苹果电脑,一方面确实做的漂亮,另外一个就是简洁。你想苹果手机开机关机,删软件都是一个步骤,而我们用win,关机至少3-5步,删软件更不要说了,非常麻烦.

有的时候做产品不是要做加法而且要做减法,并且做到极致(有点跑题了,我们还是回到python)

我把python里面非常有名的简洁,高效,方便的代码整理出来,让我们来一睹她的风采。其实每个主题展开讲都是很大的篇幅,今天我们先overview一下

看完之后,相信初学者会更快的喜欢上python.

1.列表推导

要说python里面最简洁最神奇的代码,列表推导应该算排行第一。

这是一种非常精炼的写法,可以根据一份列表来制作另外一份。这种表达式称为list comprehension(列表推导)

例子1,利用一个列表生成一个新的列表

例子2,甚至可以过滤一些列表中的元素,列如:

例子3:若要需要对序列里面的内容进行循环处理时,也可以加一个函数进行组合完成

看完列表推导的用法,是不是觉得眼前一亮好很方便啊.

2.with用法

一般我们处理文件都是先打开->然后处理->然后关闭.比较麻烦,还需要防止异常保护try/finally,很多时候我们都把精力集中在如何处理文件这样会忘掉关闭文件.Python里面有一种非常简洁的方法:

普通的打开,关闭文件处理:

用with语句,使用起来非常简单,有点像英语,用with语句能够保证当写操作执行完毕之后,自动关闭文件

其实with的使用场景非常多,除了对于文件的处理关闭,在多线程的使用里面对锁的处理也是经常使用的 。以后的文章会讲python的多线程,多进程的使用,会展开讲.

with的用法体现了python的一个精髓:把一些繁琐的事务交给语言本身,开发者只要focus放在处理问题的逻辑上就可以了.

3.匿名函数lambda

python里面有一个"懒人专用的函数",叫做匿名函数(也就是没有函数名)的函数.我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.

lambda(这个名字其实是借鉴了另外一个黑客非常喜欢的语言LISP),lambda一般的形式是关键字lambda 后面跟一个或者多个参数,后面紧跟一个冒号,之后是一个表达式:

lambda arg1,agr2,...agrN:express using arguments

以map()函数为例,若要计算一个列表里面的每个元素的平方,可以直接传入匿名函数:

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])

[1, 4, 9, 16, 25, 36, 49, 64, 81]

通过对比可以看出,匿名函数lambda x: x * x实际上就是:

def f(x):

return x * x

用匿名函数的好处是显而易见的:

一方面是可以免去取名字的麻烦(因为高质量的代码对函数的取名是有一定的要求的)

而且不必担心函数名冲突

此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:

4.生成器

生成器是python里面一个比较难理解的概念,也是Python中引入的两个强大的特性之一(猜猜另外一个特性是啥,对了就是装饰器)

今天我先来看一下它的一个简单例子,一个关于斐波那契数列的实现:

用了生成器的函数:

看第二种方法代码是不是简洁很多,这就是yield关键字的魅力.

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个生成器函数,打印看一下.

print(fac2(10))

>>>

生成器函数和普通函数的执行流程非常不一样:

函数是顺序执行,遇到return语句或者最后一行函数语句就返回。

而变成生成器的函数,只会相应迭代操作时才运行,一般都是配合for使用(也有配合sum(),list())

在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

好了,以上几个就是python中非常神奇的代码,不知道大家看完之后是不是对python的喜爱又加深了一分

注:想学习Python的小伙伴们进群:984632579领取从0到1完整学习资料 视频 源码 精品书籍 一个月经典笔记和99道练习题及答案

python简单代码-Python中几个非常神奇的代码的简洁,方便,高效!相关推荐

  1. python 字典代码_python中的字典用法大全的代码

    标签: 如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_ ...

  2. python简单实例-python简单案例

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 一个简单的python资讯采集案例,列表页到详情页,到数据保存,保存为txt文档, ...

  3. android 方形按钮代码,Android中实现图文并茂的按钮实例代码

    效果图如下所示: 代码: android:orientation="horizontal" android:layout_width="match_parent" ...

  4. python简单编程-编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

  5. python 找出列表中出现最多的元素_利用Python找出序列中出现最多的元素示例代码...

    前言 Python包含6种内置的序列:列表.元组.字符串 .Unicode字符串.buffer对象.xrange对象.在序列中的每个元素都有自己的编号.列表与元组的区别在于,列表是可以修改,而组元不可 ...

  6. Python使用栈将中序转后序(代码)

    这里使用字母来表示数字 # 从中序表达式到后序表达式的转换 # string模块中定义了一些常用的属性(包含所有数字,字母,可打印的所有ascii码等) from pythonds.basic imp ...

  7. python简单发音-Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相 ...

  8. python快递费用计算_[Python]简单用Python写个查询快递的程序最后附源代码

    [Python] 纯文本查看 复制代码from requests_html import HTMLSession session = HTMLSession() def sb(dh): '''用来识别 ...

  9. python简单项目-Python小项目:快速开发出一个简单的学生管理系统

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...

  10. php中的网页漂浮代码,网页中上下漂浮的按钮JS代码-DEDE

    实现按钮在网页中的上下漂浮的效果,只要把以下代码放到页面的 head 标签之间就可以了. suspendcode=" " document.write(suspendcode); ...

最新文章

  1. Overfull \hbox或Underfull \hbox错误提示 基于LaTex+VSCode+MAC
  2. Mac下好用的取色器 Sip
  3. 由C过渡到C++-入门知识点
  4. python饼状图教程_Python数据可视化:饼状图的实例讲解
  5. python字符串的方法和列表的方法_Python 中列表和字符串的方法总结
  6. xslt调用自定义函数(C#/Js/Java)
  7. JS判断两个日期的差或者判断两个日期的大小
  8. flume avro java_flume之Avro Source和Avro Sink
  9. nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
  10. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_6_Stream流中的常用方法_count...
  11. python 中的[::-1]和[:-1]
  12. 普林斯顿微积分读本07第五章--可导性
  13. innerHTML、innerText和outerHTML的区别
  14. 【FPGA】精品FPGA书籍推荐
  15. liunx的du命令查看文件夹大小
  16. Java开发就业前景,2017java开发就业前景分析
  17. OpenCV——简单的识别提取图像中的水平线与垂直线
  18. mysql初始化后启动失败_初始化MySQL后服务不能正常启动
  19. 实时网速监测app_实时网速app下载-实时网速下载1.0.0安卓版-西西软件下载
  20. waves效果器_Waves混音指南:疯狂、混乱、创造性的失真,用Berzerk失真开脑洞!...

热门文章

  1. 花了半个多小时,纯手点,为500多人点赞
  2. C++中编译速度与平时代码规范
  3. java中日期做减法_Java中日期的加法和减法
  4. 武术擂台机器人所需传感器_华北工控:嵌入式计算机在AMR机器人中的应用
  5. 关于计算机技术职业资格那些事
  6. C++程序中调用exe可执行文件
  7. CCNA 网络安全答案汇总
  8. 极速稳定网络加速服务器,零点云 极速服务器
  9. django2.2-form表单详解
  10. MATLAB实现一个简单的车牌识别小程序