推导式:

推导式是一个或者多个迭代器快速简洁的创建数据结构的一种方法。
它可以将循环和条件判断结合,从而避免语法冗长的代码。
悄悄告诉你,会使用推导式。很大程度上说明,你已经超过许多初学者啦·
也就是说,使用推导式更加像python的风格·

列表推导式:
一个一个追加。

也可以使用,上面说过的range()函数

但是,更加像python风格的操作:
利用推导式。

第一个是输入列表的值,第二个是循环变量·
下面再举一个例子试试:

明显嘛·就是输入其中的值·
还可以添加一个条件筛选(有难度喽·)
一个筛选出来偶数,一个筛选出来奇数。

这个远比老方法,简单。而且比较秀·

这个就显得很冗长啦。

下面来探索一下两元素的输出。
老办法:

利用推导式:

(还是要实战去练习的呀·)

不带小括号的就让它输出来两个元素就好啦·

字典推导式:
当然字典推导式也可以有if判断语句以及for循环语句

哈哈,是不是有点懵呀。其实我也不太懂。那就化困难为简单。来看看简单的表达意思是啥·

w.count('a'):是统计某个字符在单词里面出现的次数~
for z in w:是让单词里面的所有字符都输出一遍~


这么看来就是:一个推导式的功能等于那两个程序加在一起的功能喽·

n = {z:w.count(z) for z in w}

神奇
但是,也有优化可以做。因为某些字符出现不止是一次,
但是因为那个.count()函数,对每一个字符一次就可以统计其出现次数和。
所以没必要多次进行计算·
我们借助集合来:

第一次n和第二次n内容没变,但是次序却发生变换啦
set(w)其中的字符没有重复出现过·
可以~


集合推导式:
这个可以参照之前的东西,都是很相近的~
这里就说一个比较简单的。

range()范围:


生成器推导式:
元组没有推导式,就是那种带圆括号的。
其实,他们是生成器推导式,返回的是一个生成器对象~

但是只能调用一次,列表,集合,字符串,字典都存储在内存里面。
生成器仅仅在运行的时候会产生数值。不能被备份为一个新的生成器,或者是第二次使用。

函数:
def 函数名 带有函数参数的圆括号:
虽然上面的你早就知道啦。跟C一样的命名规则。

if-elif-else:叫做逻辑链·

调用:

位置参数:
(括号别搞错了·)

最后:

但是我这个没有出现书上的顺序错乱。
所以,也就不好引出关键字参数啦。
那就直接来,就是指定了参数!不会出现顺序紊乱·

指定默认参数值:

注意,参数是“=”符号。
不输入的话,默认会是c自己。但是一旦输入参数值的话,就会发生顶替。

仅使用一次的空列表:

但是,有也可以反过来用啊。利用列表来存储好多东西。哈哈·
使用*收集位置参数:
将不固定数量的参数,变成元组传进去!
Python里面没有指针一说
(这个用着挺好的)

这样做的好处,是你可以确定几个输出。其他的都可以来进行追加!

但是,不能进行空白输出!图中用红色线圈起来的。

两个**符号的,将不固定数量的参数,变成字典传进去!
会出现键值对!
{}:代表字典·

a='b’的格式!

文档字符串:
(但是那个_doc_的我失败啦!)

一等公民:函数

Python里面的一切都是对象,包括数字,字符串,元组,列表,字典,函数。
不过,函数可以将返回值赋值给变量,可以作为参数被其他函数调用。
也可以从其他函数里面返回值!

跟C语言里面的()一样,代表调函数的意思!

就是调用函数啦!


rr:里面的参数,第一个是可以调用的函数,另外两个是参与运算的参数。
ff(x,y)
是这个函数执行的操作!

老朋友:
*a(位置参数收集) 元组
**a(关键字参数收集) 字典

sum()是Python自定义的函数。可以进行求和。

内部函数:

再来一个例子:

return "the name is '%s'" % qq#新知识呦~


闭包:

内部函数可以看作为一个闭包。
闭包是一个可以由另一个函数动态生成的函数,并且可以改变和存储函数外创建的变量的值。闭包就是能够读取其他函数内部变量的函数。
例如在javascript中,只有函数内部的子函数才能读取局部变量,
所以闭包可以理解成“定义在一个函数内部的函数“。
在本质上,闭包是将函数内部和函数外部连接起来的桥梁。


只是进行复制,并没有进行调用。看类型。
只有a(),这个调用函数才可以输出正确结果!
因为返回的是一个函数名字。看作复制就好啦~

匿名函数

生成器:
生成器是用来创建Python里面序列的。可以通过它迭代庞大的序列。
但是是通过yield来进行返回值声明
但是调用一次就会进行释放:
(比如下面的例子):

装饰器:
是对函数进行再次改变,不改变源代码就可以实现!
感觉很重要的样子,嘻嘻
装饰器本质上就是一个函数,将一个函数作为输入。并且返回另外一个函数。
*a,**b利用这两个知识进行做装饰器。

是不是有点晕,哎呀。看不懂操作·
感觉有点像C里面的函数调用。

这个就是对前面那个:cc = tt(add)
代码的代替。
一个函数可以有多个装饰器。

调用顺序不同,最后得到的结果也会不同的。
靠近def的修饰器先执行,但是所返回的数值。也会被后面执行的所替换掉!

二者就是数值结果不同,别的都是一样的。得到的值取决于第一个被调用的修饰器!

命名空间和作用域:
一个名称在不同使用情况下,可能代指不同的事物。每一个命名空间和别的命名空间没有关系。
但是,同样也可以调用别的。
就像以前我写爬虫用的全局:global

不使用global就会出错误!
关于变量的ID号的!
全局和函数局部是不一样的!

local():返回一个局部命名空间内容的字典
global():返回一个全局命名空间内容的字典
(看不清就点开看!)

就说说:名称里面的_和__。这些都是Python的保留用法。自变量定义的时候不可以使用这些。
https://www.cnblogs.com/hester/articles/4936603.html

用try和except处理错误:

就是缩短你找错误的时间啦。
写这个用的时间多,将来排查错误用的时间就少啦!

当然,也可以更加精确一点!

>>> while True:
...  vv = input('q to quit!')
...  if vv == 'q':
...   break
...  try:
...   pp = int(vv)
...   print(s[pp])
...  except IndexError as err:#那个是保留字!标准库提前定义好的!
...   print('index error.',pp)
...  except Exception as other:
...   print('something else error.',other)
...
q to quit!1
2
q to quit!0
1
q to quit!2
3
q to quit!3
index error. 3
q to quit!6
index error. 6
q to quit!7
index error. 7
q to quit!8
index error. 8
q to quit!tt
something else error. invalid literal for int() with base 10: 'tt'
q to quit!


好用!

Python外壳:代码结构!(推导式和函数 )相关推荐

  1. Python笔记002-列表推导式

    Python笔记002-列表推导式 以下是我学习<流畅的Python>后的个人笔记,现在拿出来和大家共享,希望能帮到各位Python学习者. 首次发表于: 微信公众号:科技老丁哥,ID: ...

  2. Python 中的列表推导式

    Python 中的列表推导式 简单用法 添加多个条件 多个列表使用 替换 Reduce 和 Lambda 嵌套列表推导式 列表推导式是一种 Python 构造,可减少生成新列表或过滤现有列表所需的代码 ...

  3. 列表解析python_基于Python列表解析(列表推导式)

    列表解析--用来动态地创建列表 [expr for iter_var in iterable if cond_expr] 例子一: map(lambda x: x**2, range(6)) [0, ...

  4. Python学习笔记 —— 独步天下推导式语法糖

    Python学习笔记 -- 独步天下推导式语法糖 前言 介绍 列表推导式 获取当月天数 字典推导式 模拟三条用户数据 结束语 前言 最近心血来潮,学习了一下Python,其中关于 推导式语法糖 感觉功 ...

  5. python中的字典推导式_python 字典推导式(经典代码)(22)

    文章首发微信公众号,微信搜索:猿说python 在昨天的文章中,我们介绍了关于字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要 ...

  6. python基础知识-8-三元和一行代码(推导式)

    python其他知识目录 1.三元运算(三目运算) 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式:[on_true] if [expression] else [on_false] ...

  7. python 基础(数据类型、运算符、流程控制、推导式、函数等...更新中)

    python基础 一.认识Python 1.python起源 Python 的创始人为吉多·范罗苏姆(Guido van Rossum),江湖人称"龟叔". 1991年,第一个Py ...

  8. python中的字典推导式_17.python 字典推导式(经典代码)

    在昨天的文章中,我们介绍了关于** python列表推导式** 的使用,字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要写在{ ...

  9. 【Python学习】 - - 链表推导式[ 2*x for x in X ]、匿名函数、并行迭代

    列表推导式[x for x in range(n)] 问题:请计算出1~9间的整数的平方 常规方法 for i in range(1,10):print(i*i) 链表推导式: print([x*x ...

最新文章

  1. 人工神经网络背后的数学原理!
  2. hdu 2896:病毒侵袭
  3. python星期计算_Python简单计算给定某一年的某一天是星期几示例
  4. python保存csv_python怎样保存csv文件
  5. ELK 中的elasticsearch 集群的部署
  6. 微信获取位置 转化为 高德地图 位置 地址
  7. php 反射类 解析注释,php反射获取类和方法中的注释
  8. 使用iframe设置frameset的高度
  9. Android JNI使用方法,JNI机制详解
  10. Mybatis的简单增删查改(CRUD)
  11. Windows下Nginx的启动、停止、重启等命令
  12. python双人格斗游戏代码_百行 HTML5 代码实现四种双人对弈游戏
  13. ABAQUS 转子动力学载荷
  14. 金额小写转大写 java_JAVA 小写金额转换大写金额
  15. 手机安全卫士(四)----- Splash界面
  16. Maven聚合SSM项目(八)
  17. 云服务优缺点_云服务器优点和缺点
  18. 一个程序员的自白(认同迷失)
  19. oracle12c rac恢复,oracle 12c rac恢复votedisk碰到问题了(asm)
  20. ASP.Net请求处理机制初步探索之旅 - Part 2 核心(转)

热门文章

  1. 十步,教你把Python运行速度提升 30%
  2. 二维码检测哪家强?五大开源库测评比较
  3. 恶犬秒变萌汪:东京大学开源“治愈系”GAN图片拼贴工具 | 技术头条
  4. 在家想远程公司电脑?Python +微信一键连接
  5. 为什么阿里巴巴强制要求使用包装类型定义属性?
  6. 再见了,收费的 Navicat!
  7. SpringCloud 之 Zuul 网关搭建及配置
  8. 详细介绍!Linux 上几种常用的文件传输方式
  9. 半年 5 战 5 金:Kaggle 史上最快 GrandMaster 是如何炼成的?
  10. 超全!CS 顶会历届最佳论文大列表,机器学习、深度学习一应俱全!