Python-函数(上)详解笔记
python学习网站推荐
一、set()
set:类似dict,是一组key的集合,不存储value
本质:无序和无重复元素的集合
1.创建
#创建set需要一个list或者tuple或者dict作为输入集合
#重复元素在set中会自动被过滤
s1 = set([1,2,3,4,5,3,4,5])
print(s1)
s2 = set((1,2,3,3,2,1))
print(s2)
s3 = set({1:"good", 2:"nice"})
print(s3)
2.添加
s4 = set([1,2,3,4,5])
s4.add(6)
s4.add(3) #可以添加重复的,但是不会有效果
#s4.add([7,8,9]) #set的元素不能是列表,因为列表是可变的
s4.add((7,8,9))
#s4.add({1:"a"}) #set的元素不能是字典,因为字典是可变的
print(s4)
3.插入整个list、tuple、字符串,打碎插入
s5 = set([1,2,3,4,5])
s5.update([6,7,8])
s5.update((9,10))
s5.update("sunck")
print(s5)
4.删除
s6 = set([1,2,3,4,5])
s6.remove(3)
print(s6)
5.遍历
s7 = set([1,2,3,4,5])
for i in s7:
print(i)
#set没有索引的
#print(s7[3])
for index, data in enumerate(s7):
print(index, data)
s8 = set([1,2,3])
s9 = set([2,3,4])
6.交集
a1 = s8 & s9
print(a1)
print(type(a1))
7.并集
a2 = s8 | s9
print(a2)
print(type(a2))
二、类型转换
1.list去重复
l = [1,2,3,4,3,4,5,6]
'''
s = set(l)
l = list(s)
print(l)
'''
l = list(set(l))
print(l)
2.类型转换
(1)list–>set
l1 = [1,2,3,4,5,3,4,5]
s1 = set(l1)
(2)tuple–>set
t2 = (1,2,3,4,3,2)
s2 = set(t2)
(3)set–>list
s3 = {1,2,3,4}
l3 = list(s3)
print(l3)
(4)set–>tuple
s4 = {2,3,4,5}
t4 = tuple(s4)
print(t4)
三、迭代器
from collections import Iterable
from collections import Iterator
可迭代对象:可以直接作用于for循环的对象统称为可迭代对象(Iterable)。可以用isinstance()去判断一个对象是否是Iterable对象
可以直接作用于for的数据类型一般分两种
1、集合数据类型,如list、tuple、dict、set、string
2、是generator,包括生成器和带yield的generator function
print(isinstance([], Iterable))
print(isinstance((), Iterable))
print(isinstance({}, Iterable))
print(isinstance("", Iterable))
print(isinstance((x for x in range(10)), Iterable))
print(isinstance(1, Iterable))
迭代器:不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后跑出一个StopIteration错误表示无法继续返回下一个值
可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator对象)
可以使用isinstance()函数判断一个对象是否是Iterator对象
print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("", Iterator))
print(isinstance((x for x in range(10)), Iterator))
l = (x for x in [23,4,5,64,3435])
print(next(l))
print(next(l))
print(next(l))
print(next(l))
print(next(l))
#print(next(l))
转成Iterator对象
a = iter([1,2,3,4,5])
print(next(a))
print(next(a))
print(isinstance(iter([]), Iterator))
print(isinstance(iter(()), Iterator))
print(isinstance(iter({}), Iterator))
print(isinstance(iter(''), Iterator))
四、函数概述
认识函数:在一个完整的项目中,某些功能会反复的使用。那么会将功能封装成函数,当我们要使用功能的时候直接调用函数即可
本质:函数就是对功能的封装
优点
1、简化代码结构,增加了代码的复用度(重复使用的程度)
2、如果想修改某些功能或者调试某个BUG,还需要修改对应的函数即可
1.定义函数:
格式:
def 函数名(参数列表):
语句
return 表达式
def:函数代码块以def关键字开始
函数名:遵循标识符规则
():是参数列表的开始和结束
参数列表(参数1,参数2,……,参数n):任何传入函数的参数和变量必须放在圆括号之间,用逗号分隔。函数从函数的调用者哪里获取的信息
冒号:函数内容(封装的功能)以冒号开始,并且缩进
语句:函数封装的功能
return:一般用于结束函数,并返回信息给函数的调用者
表达式:即为要返回给函数的调用者的信息,
注意:最后的return 表达式,可以不写,相当于return None
凯 = "帅"
print(凯)
函数的调用
格式:函数名(参数列表)
函数名:是要使用的功能的函数函数名字
参数列表:函数的调用者给函数传递的信息,如果没有参数,小括号也不能省略
函数调用的本质:实参给形参赋值的过程
五、定义了一个无参无返回值的函数
def myPrint():
print("sunck is a very good man!")
print("sunck is a nice man!")
print("sunck is a handsome man!")
myPrint()
myPrint()
myPrint()
myPrint()
myPrint()
六、函数的参数
需求:编写一个函数,给函数一个字符串和一个年龄,在函数内部打印出来
形参(形式参数):定义函数时小括号中的变量,本质是变量
参数必须按顺序传递,个数目前要对应
def myPrint(str, age, hoby):
print(str, age)
def myPrint(str, age):
print(str, age)
实参(实际参数):调用函数时给函数传递的数据,本质是值
myPrint("sunck is a good man", 18)
上一篇: jq处理div的一些操作及思路
下一篇: JQ 作业一