欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python-函数(上)详解笔记

程序员文章站 2024-03-23 17:46:46
...

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)