有关序列

1.列表,元组和字符串的共同特点

  1. 都可以通过索引得到每一个元素,并且索引默认都是从0开始,注意索引也有负数,-1表示倒数第一个元素
  2. 可以通过分片的方式得到一定范围内元素的集合
  3. 有很多的共同操作符,如重复操作符*,拼接操作符+,关系操作符in/not in
    以上三点统称为序列

2.列表的 内置函数
list() 把一个可迭代对象转换为列表
tuple() 把一个可迭代对象转换为元组
*str() 把参数对象转换为字符串
len(sub) 返回参数sub的长度

max() 返回序列或者参数中的最大值
min()返回序列或参数中的最小值,要保证序列或参数的数据类型相同
sum()返回序列和可选参数的总和
sorted() 默认从小到大的排序,作用等同于list.sort()
reversed()逆向排序,不过返回的是迭代器,可通过list()转换为列表
enumerate() 将列表内元素与其索引值成对组成
zip() 将两个列表打包组成

>>> a= list()
>>> a
[]
>>> b = 'i love bts'
>>> b =list(b)
>>> b
['i', ' ', 'l', 'o', 'v', 'e', ' ', 'b', 't', 's']
>>> c = {1,2,3,4,5,6,11,46,65}
>>> c= list(c)
>>> c
[1, 2, 3, 4, 5, 6, 65, 11, 46]
>>> len(b)
10
>>> max(1,2,3,4,5,)
5
>>> max(b)
'v'
>>> min(c)
1
>>> tuple = {1,2,3,3,4,4,5,6}
>>> max(tuple)
6
>>> tuple2 = {3,1,3,4,5,4}
>>> sum(tuple)
21
>>> numbers = [1,2,3,4,5,6,7,8]
>>> reversed(numbers)
<list_reverseiterator object at 0x00000277A366FE10>
>>> #返回迭代器对象
>>> list(reversed(numbers))
[8, 7, 6, 5, 4, 3, 2, 1]
>>> #转换为列表
>>>
>>> enumerate(numbers)
<enumerate object at 0x00000277A37255A0>
>>> list(enumerate(numbers))
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)]
>>> a = [1,2,3,4,5,6,7,8]
>>> b = []4,5,6,7,8]
SyntaxError: invalid syntax
>>> b = [4,5,6,7,8]
>>> zip(a,b)
<zip object at 0x00000277A3727DC8>
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6), (4, 7), (5, 8)]
>>>

函数

1.函数的定义及定义方法
能够完成某种功能的代码块
使用 def 来定义实现

>>> def myfirstfunction():print('这是我创建的第一个函数')print('感谢Bilibili....')>>> myfirstfunction()这是我创建的第一个函数
感谢Bilibili....

2.函数的参数相关学习
参数分为形参和实参
形参指函数创建和定义过程中小括号内的参数,而实参指的是函数调用时括号内的参数

函数文档
用来解释函数作用,与注释还是有区别的

>>> def myfirstfx(name):'函数定义过程中的name叫做形参'#因为他只是一个形式,表示占据一个参数的位置print('传递进来的'+name+'叫做实参,因为他是具体的参数值')>>> myfirstfx('suga')传递进来的suga叫做实参,因为他是具体的参数值
>>> help(myfirstfx)Help on function myfirstfx in module __main__:myfirstfx(name)函数定义过程中的name叫做形参

关键字参数
让python不根据索引来运行,使用关键字匹配运行,避免了当参数非常多时,可能出现的顺序错误

默认参数
表示定义了默认值的参数

>>> def sayname(name = 'v',words = 'bts'):print(name +'in'+words)

默认参数在运行函数时是可以更改的

>>> sayname('suag')suaginbts

alt+p 重复上一条语句

收集参数
也可以叫可变参数,有时定义函数时不确定函数需要几个参数
此时,在括号内的参数前加上型号* 即可

>>> def suga(*v):print('参数长度是:',len(v))print('第二个参数是:',v[1])>>> suga(1,2,3,4,'jimin')参数长度是: 5
第二个参数是: 2

如果需要此时要不变的参数,需要在函数定义时,在收集参数后面使用关键字来指出不变的参数

函数与过程

函数是有返回值的,而过程procedure是简单的,特殊并且没有返回值的,返回值是指函数运行过后留下的值
函数变量的作用域问题
局部变量,全局变量

def discounts(price,rate):final_price = price*ratereturn final_priceold_price = float(input('请输入原价:'))
rate = float(input('请输入折扣:'))
new_price = discounts(old_price,rate)
print('打折后的价格是:',new_price)

本段代码中的final_price就是一个局部变量,它仅在函数discounts中其作用,出了这个范围就不起作用,在函数中定义的参数及变量都成为局部变量,python在调用这个函数时,使用栈进行存储,当执行完这个给函数后,函数会被自动删除,栈内的数据会被自动清空,函数外是无法访问到内部的局部变量的
全局变量拥有更大的作用域,他们的作用域是整个代码段
如上面代码中的old_price
但是使用全局变量要小心,访问可以,但是试图修改全局变量的话,python会自动创建一个新的全局变量,名称和原来的全局变量一样,此时就会出现意想不到的错误

内嵌函数和闭包

1.global关键字
声明的局部变量变为全局变量,此时Python不进行屏蔽

2.内嵌函数
允许在函数内部创建另一个函数,这个函数称为内嵌函数或内部函数

>>> def fun1():print('fun1()正在被调用...')def fun2():print('fun2()正在被调用')fun2()>>> fun1()
fun1()正在被调用...
fun2()正在被调用

在内部函数整个作用域都在外部函数作用域内

3.闭包
函数是编程一个重要的语法结构,闭包是一种编程范式
如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就认为是闭包

>>> def funx(x):def funy(y):return x*yreturn funy>>> #对funx来讲,funy就是内部函数
>>> #内部函数funy引用了外面的x,因此funy这个函数就是闭包
>>> #可以理解为要引用外部函数的变量的内部函数
>>> i = funx(8)
>>> i
<function funx.<locals>.funy at 0x000002BD46DCF158>
>>> type(i)
<class 'function'>
>>> i = (5)
>>> i
5
>>> i(5)
Traceback (most recent call last):File "<pyshell#13>", line 1, in <module>i(5)
TypeError: 'int' object is not callable
>>> funx(8)(5)
40
>>>

匿名函数

1.lambda表达式
lambda : ******
冒号前面是原函数的参数,可以是多个,使用逗号隔开即可。冒号后面是函数的返回值

>>> def ds(x):return 2*x+1>>> ds(5)
11
>>> lambda x:2*x+1
<function <lambda> at 0x000002BD46DCF510>
>>>

使用方法如下

>>> g = lambda x:2*x+1
>>> g(5)
11
>>>

2.lambda表达式的作用
python写一些脚本时,使用lambda就可以省下定义函数的过程,例如只是需要写一个简单的脚本来管理服务器的时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简

对于一些抽象并且整个程序执行下来只需要调用一两次的函数,此时给函数起名字比较麻烦,而此时使用lambda表达式就不需要考虑命名的问题

简化代码的可读性

3.两个重要的BIF,内置函数
*filter()*过滤器

>>> list(filter(None,[1,2,3,4,False,True,5]))
[1, 2, 3, 4, True, 5]
>>> #把任何非True的内容过滤掉,前面的None可以自己来定义过滤的方法

一个筛选出奇数的过滤器

>>> def odd(x):return x%2>>> temp = range(10)
>>> show =filter(odd,temp)
>>> list(show)
[1, 3, 5, 7, 9]

使用lambda表达式实现

>>> list(filter(lambda x : x % 2,range(10)))
[1, 3, 5, 7, 9]
>>>

map()
在编程领域,map()可以看做映射来解释
将序列的每一个元素作用函数的参数进行运算加工,然后返回所有加工后的元素构成的新序列

>>> list(map(lambda x : x * 2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>>

python学习相关03相关推荐

  1. python学习——相关软件汇总

    python学习--相关软件汇总 Part 1:准备工作 安装所需软件. 文本编辑器 VScode.pycharm 工具包 anaconda 交互式运行 python3.x 一.需要安装: 1.文本编 ...

  2. Python学习笔记-03

    第三章 基本数据类型 学习要点 数字类型:整数类型.浮点数类型和复数类型 数字类型的运算:数值运算操作.数值运算函数 字符串类型及格式化:索引.切片.基本的format()格式化方法 字符串类型的操作 ...

  3. Python学习相关资料

    #Python开发者门户网站 http://www.pythontab8888.com/ webserver服务器: tornado #Python和tornado介绍 --Tornado源码分析之h ...

  4. python学习笔记 -- 03 实现切割九图

    废话 朋友问我能不能搞个九图切割的小软件,我就着手搞了 不过这次注释我会用英文写 九图切割 一.需求 选择图片路径 裁剪图片成九张 保存裁剪的九张图片 二.步骤分析 选择图片 打开图片 裁剪图片 保存 ...

  5. Python学习相关文档

    试验性Numpy教程 Numpy相关函数官方文档 matplotlib教程 matplotlib官方文档 Pandas教程 Pandas官方文档 Pandas入门教程 Pandas进阶教程 Seabo ...

  6. python学习相关软件

    1.python3.8 链接:https://pan.baidu.com/s/13GPZfptJb0eFBf9x3khK0Q  提取码:wqa0 2.pycharm 链接:https://pan.ba ...

  7. Python学习系列(一)(基础入门)

    Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频 ...

  8. python学习笔记02

    python学习笔记02 面向对象Object Oriented 概述 类和对象 封装 继承 多态 类与类的关系 设计原则 总结 python学习笔记03 面向对象Object Oriented 概述 ...

  9. Python 基础学习笔记 03

    Python基础系列 Python 基础学习笔记 01 Python 基础学习笔记 02 Python 基础学习笔记 03 Python 基础学习笔记 04 Python 基础学习笔记 05 文章目录 ...

最新文章

  1. 对数函数定义域和值域_呆哥数学每日一题 —— 复合函数值域
  2. 京东零售CEO徐雷升任京东集团总裁,刘强东:将把更多时间投入乡村振兴等事业中...
  3. hive 时间转字符串_2. HIVE 基本操作
  4. SQL server 2000 和2005中怎么让ldf文档变小
  5. 51nod 1073约瑟夫环
  6. linux日志区别,你要了解的linux系统日志知识点都在这
  7. Enterprise Library 4.1 Caching Block 图文笔记
  8. 高并发下线程安全的单例模式(最全最经典,值得收藏)
  9. 乱码 问号 java_java 中文 乱码 问号
  10. 【PyQt5】串口数据实时绘图
  11. latex 罗马数字方程组大括号
  12. 阿里C++工程师面试小记
  13. LeetCode | 0665. Non-decreasing Array非递减数列【Python】
  14. 《那些年啊,那些事——一个程序员的奋斗史》——94
  15. Directx11进阶教程之Tiled Based Deffered Shading
  16. 乐高机器人走进图书馆活动方案_乐高机器人制作~~乐高大派对
  17. java图形界面计算器_java图形界面 计算器实现
  18. AngularJs 最新验证手机号码,成功测试通过
  19. SQL数据分析淘宝用户分析实操
  20. 我拿流年,乱了浮生:伤感QQ空间日志

热门文章

  1. 输入URL按回车后,究竟发生了什么?
  2. 处理C++源代码的程序
  3. Docker Swarm (服务发现和负载均衡原理)
  4. SfN2019中与植入式肢体运动脑机接口有关的成果
  5. AI换脸为什么服务器没响应,ai换脸 云服务器
  6. 索爱E30超重低音炮蓝牙音箱怎么样啊?
  7. 在游戏中看状态机与状态模式
  8. 各式各样的极品程序员
  9. Android中的设计模式-桥梁模式
  10. dnf能测试套装的软件,DNF史诗套装查看系统怎么用 ss套装查看系统详细规则