python函数笔记_小白学习笔记之Python函数(一)

遍历字典

keys() 返回字典的所有的key

d={'name':'葫芦娃','age':'7','gender':'男'}

for k in d.keys():

print(k) #name,age,gender

values() 返回字典的所有的key所对应的值

d={'name':'葫芦娃','age':'7','gender':'男'}

for v in d.values():

print(v) # 葫芦娃,7,男

items() 返回字典中所有的项,返回值是⼀个序列

d={'name':'葫芦娃','age':'7','gender':'男'}

for i in d.items():

print(i) #('name', '葫芦娃'),('age', '7'),('gender', '男')

集合

集合的特点

1.只能存储不可变对象

2.存储的对象是无序的(不是按照元素的插入顺序来保存)

3.不能出现重复的元素

4.表现形式为{}

# s = {1,2,3,4}

# print(s,type(s)) #集合的类型

# s = {10,1,2,3,4}

# print(s,type(s)) #集合的无序性

# s = {100,10,1,2,3,4}

# print(s,type(s)) #集合的无序性

# s = {100,10,1,2,3,4,1,2,3,4}

# print(s,type(s)) ##集合的不重复性

# s={[1,2,3],[4,5,6]}

# print(s,type(s))#TypeError: unhashable type: 'list'

# s={(1,2,3,4,5,6)}

# print(s,type(s)) #集合的不可变对象性

# s={}

# print(s,type(s)) #{}为空是字典类型

# s={1,2}

# print(s,type(s)) #{}不为空是集合类型

# s=set() #创建一个集合

# print(s,type(s))

#s=set(1,2,3)

# print(s,type(s)) #TypeError: set expected at most 1 arguments, got 3

#s=set(1)

#print(s,type(s)) #TypeError: 'int' object is not iterable

# s=set('hello')

# print(s,type(s)) #创建的集合对象必须是可迭代的

s={'a','b',1,2,3}

# print(s,type(s)) #集合中的元素是无序的所以不能使用下标来索引

#print(s[0])#TypeError: 'set' object does not support indexing

集合的方法

set() 将序列和字典转换成集合

# s=set([1,2,3,4,5,6])

# print(s,type(s))

len() 获取集合中元素的数量

s = {1,2,3,4}

print(len(s)) #4

add() 向集合中添加元素

s = {1,2,3,4}

s.add(5)

print(s) #{1,2,3,4,5}

update() 将⼀个集合中的元素添加到另⼀个集合当中

s={'a','b',1,2,3}

s2=set('hello')

s.update(s2)

print(s) #{1, 2, 3, 'h', 'a', 'o', 'e', 'l', 'b'}

pop() 随机删除集合中的⼀个元素

#一般是删除最后一个元素,并返回该删除的元素

s={'a','b',1,2,3}

r=s.pop()

print(r) #2

print(s) #{'a','b',1,3}

remove() 删除集合中指定的元素

s={'a','b',1,2,3}

s.remove(1)

print(s) #{'a','b',2,3}

clear() 清空集合

s={'a','b',1,2,3}

s.clear()

print(s) #set()

集合的运算

1.& 交集运算(两个集合中相同的元素)

2.| 并集运算(两个集合合并,并覆盖相同元素)

3.- 差集运算 (一个集合对另一个集合做差,所得为另一个集合中不存在此集合的元素部分)

4.^ 亦或集 (两集合中除相同元素外的其他元素合集)

5.<= 检查⼀个集合是否是另⼀个集合的⼦集

6.< 检查⼀个集合是否是另⼀个集合的真⼦集

7.>=检查⼀个集合是否是另⼀个集合的超集

8.>检查⼀个集合是否是另⼀个集合的真超集

函数(一)

概念

#函数也是一个对象

#对象是内存中专门用来存储数据的一块区域

#函数⽤来保存⼀些可执⾏的代码,并且可以在需要时,对这些语句进⾏多次调⽤

#定义一个函数

def fn():

print('这是我的第一个函数')

# fn()

# fn() #可多次调用

# fn()

# fn()

#print(fn)#

#fn是函数对象 fn()调用函数

print(fn)#

print(fn())#这是我的第一个函数

参数

#在定义函数的时候,可以在函数后边的括号中定义数量不等的形参

#多个形参之间要用,隔开

#有几个形参就得传递几个实参

def s(a, b):

print(a + b)

s(2, 3)

参数的传递方式

#在定义函数的形参的时候,可以指定一个默认值

# def fn(a,b,c=20):

# print('a=',a)

# print('b=',b)

# print('c=',c)

# fn(1,2,3) #1,2,3

# fn(1,2) #1,2,20

#函数的传递方式

#位置传参(对应的形参位置,传递对应实参位置)

#关键字传参(可以不按照定义的顺序来传递,它是根据参数的名字来传递)

# def fn(b=1,c=2,a=3):

# print('a=', a)

# print('b=', b)

# print('c=', c)

# fn() #a=3,b=1,c=2

#混合使用时,关键字传递在位置传递后边

# def fn(c=2,a):

# print('a=', a)

# print('c=', c)

# fn(1)#SyntaxError: non-default argument follows default argument

可变对象

#对象在内存中都保存了三个数据

#id(标识)

#type(类型)

#value(值)

'''

a=[1,2,3]

a

[1, 2, 3]

a[0]=10

a

[10, 2, 3]

a=[4,5,6]

a

[4, 5, 6]

列表是一个可变对象

a=[1,2,3]

a[0]=10(改对象里面的value)

这个操作是在通过变量去修改对象的值

这个操作不会改变变量所指向的对象

a=[4,5,6](改变量,改对象里面的value,同时还有id)

这个操作是在给变量重新赋值

这个操作会改变量所指向的对象

'''

a=[1,2,3]

b=a

b[0]=10

print('a',a,id(a)) #a [10, 2, 3] 1826753172040

print('b',b,id(b)) #b [10, 2, 3] 1826753172040

a=[1,2,3]

b=a

#b[0]=10

b=[10,2,3]

print('a',a,id(a)) #a [1, 2, 3] 1826753172616

print('b',b,id(b)) #b [10, 2, 3] 1826753172040

实参的类型

def fn(b=1, c=2, a=3):

print('a=', a)

print('b=', b)

print('c=', c)

def fn2(a):

print('a=', a)

b = 123

b = True

b = 'hello'

b = None

fn2(fn) #实参的类型可以是任意对象

def fn3(a, b):

print(a + b)

fn3(123, 456)

fn3(123, '456') # TypeError: unsupported operand type(s) for +: 'int' and 'str'

def fn4(a):

print('a=',a) #10

c=10

fn4(c)

print('c=',c) #10

#在函数中对形参重新赋值,不会影响其他的变量

def fn5(a):

a=20

print('a=',a) #a=20

c=10

fn5(c)

print('c=',c) #c=10

#指向同一个对象

def fn6(a):

a[0]=30

print('a=', a,id(a))#a= [30, 2, 3] 1776475329096

c = [1, 2, 3]

fn6(c)

print('c=', c,id(c))#c= [30, 2, 3] 1776475329096

#浅复制指向不同对象

def fn7(a):

a[0]=30

print('a=', a,id(a))#a= [30, 2, 3] 2493401027720

c = [1, 2, 3]

fn7(c.copy())

print('c=', c,id(c))#c= [1, 2, 3] 2493401027144

#列表切片也指向不同对象

def fn8(a):

a[0]=30

print('a=', a,id(a))#a= [30, 2, 3] 2210691896456

c = [1, 2, 3]

fn8(c[:])

print('c=', c,id(c))#c= [1, 2, 3] 2210691895880

原文链接:https://blog.csdn.net/weixin_43232381/article/details/108410054

本文链接:https://my.lmcjl.com/post/6306.html

展开阅读全文

4 评论

留下您的评论.