Python —— 函数

作者: 2023开始学 | 来源:发表于2019-01-13 18:58 被阅读0次

一、切片(Slice)

在很多编程语言中,针对字符串提供了很多截取函数(i.e. substring),目的就是对字符串切片。python中没有针对字符串的截取函数,需要通过“切片”来完成。

取一个list或tuple的部分元素可以用切片

格式: 假定list或tuple组成的元素组名为m

             m[起始值:终止值:步长]  

说明:

a. 起始值如果是0,可以省略,但是中间的冒号(:)一定要带上

b. 起始值,终止值限定的是索引范围。

c. 如果从前面开始取数,那么索引时不包括索引[终止值],因为索引时下标从0开始。

d. 如果倒数取数,m[-2:] 则取最后两个元素,m[-2:-1]则取倒数第二个元素.

e. 不管从前面开始或从后面开始取数,最终取的元素个数为都为终止值-起始值。

   python支持m[-1]取倒数第一个元素,那么它同样支持倒数切片。

   tuple也可以用切片操作,操作结果仍是tuple。

   字符串也可以用切片操作,只是操作结果仍是字符串。

   字符串'xxx'也可以看成一种list,每个元素就是一个字符。
image

二、迭代

   如果给定一个list或tuple,通过for循环来遍历这个list或tuple,这种遍历称为迭代。

  可迭代对象:list, tuple,字典dict,字符串,生成器generator 等

1、如何判断一个对象是可迭代对象呢?方法:通过collections模块的Iterable类型判断;isinstance( )函数


image

2、dict迭代

默认情况下,dict迭代的是key,如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items().

 d={'a':1,'b':2,'c':3} #这是一个dict
 for key in d:   # 遍历key
       print(key)

 for value in d.values():   #遍历每一个值
       print(value)

 for k,v in d.items():  #遍历key和值
       print(k,v)

3、字符串也是可迭代对象

for ch in 'abdf':
       print(ch)

4、python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身

for i, value in enumerate(['a','b','c']):
       print(i,value)

三、列表生成式

  是Python内置的可以用来创建list的生成式。

使用方法: 前面一部分是对元素进行的操作,最后面一部分是对元素进行判断

print([x*x for x in [1,2,3,4,5]]) 
 
 print([x*x for x in range(1,11)])
 
 print([x*x for x in range(1,11) if x % 2 == 0 ])
 
 print([m+n for m in 'ABC' for n in 'XYZ'])'''
image

实例1:列出当前目录下的所有文件和目录名

 import  os # 导入os模块
 print([d for d in os.listdir('.')])
image

实例2:把list中所有的字符串变成小写

L=['hello','world','IBM','Apple']
print([s.lower() for s in L])

注意:s.lower()中的括号一定要带上,否则会报错

image

实例3:把一个list中的所有字符串变成小写。

思路: 如果list中既包含字符串,又包含数字,由于非字符串类型没有Lower()方法,所以列表生成式会报错:

L1=['Hello','World',18,'Apple']
print([s.lower() for s in L1 ])

报错信息:

image
可以使用isinstance()函数判断一个变量是不是字符串,下面为修改后并测试成功的代码:
L1=['Hello','World',18,'Apple']
print([s.lower() for s in L1 if isinstance(s,str) == True])

四、生成器generator

在Python中,一边循环 一边计算的机制,称为生成器:generator。

创建generator的方法
第一种:把一个列表生成式的[ ]改成( ),就创建了一个generator。

g=(x*x for x in range(10))
for n in g:
    print(n)

创建generator,并通过Next( )函数打印generator中的每个元素:

image

上面通过Next( )函数太繁琐了,正确的方法时使用for循环,因为generator也是可迭代对象:


image

第二种创建generator方法:yield关键字,
如果一个函数定义中包含了yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。

五、迭代器

可直接作用于for循环的数据类型有:

第一类是集合数据类型,如list, tuple, dict, set, str等。

第二类是generator, 包括生成器和带 yield 的generator function.

可直接作用于for循环的对象统称为可迭代对象:Iterable.

可被next( )函数调用并不断返回下一个值的对象称为迭代器:Iterator.

使用isinstance( )函数来判断一个对象是否是Iterable对象或Iterator对象。

生成器都是Iterator对象,但list, dict, str虽然是Iterable,却不是Iterator。可以使用iter( )函数把list, dict, str等Iterable转换成Iterator。

相关文章

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python高阶函数学习笔记

    python中的高阶函数是指能够接收函数作为参数的函数 python中map()函数map()是 Python 内...

  • Python学习笔记1

    Python注释 Python变量 Python运算符 Python输入输出 输入函数 输出函数(3.x) ...

  • Python:内置函数

    python的内置函数,匿名函数 内置函数 内置函数就是python给你提供的,拿来直接用的函数,比如print,...

  • 二级Python----Python的内置函数及标准库(DAY

    Python的内置函数 嵌入到主调函数中的函数称为内置函数,又称内嵌函数。 python的内置函数(68个) Py...

  • python3 range() 函数和 xrange() 函数

    python3 range 函数 python3 取消了 xrange() 函数,并且和 range() 函数合并...

  • 7、函数

    1、Python之什么是函数 2、Python之调用函数 Python内置了很多有用的函数,我们可以直接调用。 要...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • Python函数详解

    函数是Python里组织代码的最小单元,Python函数包含以下几个部分: 定义函数 调用函数 参数 函数的返回值...

网友评论

    本文标题:Python —— 函数

    本文链接:https://www.haomeiwen.com/subject/vsyldqtx.html