python基础班笔记8 集合、函数(一)

2021-01-30

集合

集合的简介
集合表现形式为set

集合和列表非常相似

  • 不同点
    集合只能存储不可变对象
    集合中存储的对象是无序的

集合不能出现重复元素
使用{}来创建集合
可以通过set()来将序列和字典转换成集合
len() 使用len()来获取集合中元素的数量
add()像集合中添加元素
update()将一个集合中的元素添加到另一个集合当中
pop()随机删除集合中的一个元素一般是删除最后一个元素
remove() 删除集合中指定的元素
clear() 清空集合

集合的运算
• & 交集运算
• | 并集运算
• - 差集运算
• ^ 亦或集
• <= 检查一个集合是否是另一个集合的子集
• < 检查一个集合是否是另一个集合的真子集
• >=检查一个集合是否是另一个集合的超集
• >检查一个集合是否是另一个集合的真超集


可变类型和不可变类型

可变类型(mutable)
列表,字典(key是不可变),集合
里面的元素改变了,但是他的id还是不会变化

不可变类型(unmutable)
int,float,字符串,元组
里面的元素改变了,那么他的id也就发生了变化

这里的可变不可变,从对象内存地址方向来说,是指内存中的值(value)是否可以被改变。
python所声明的变量都以对象的形式存在,存在于机器的固定内存之中。


函数

函数简介

• 函数也是一个对象
• 函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用
注意:
函数名必须符合标识符的规范(可以包含字母、数字、下划线但是不能以数字开头)
print是函数对象 print()是调用函数

函数的参数

形参和实参

• 形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值
• 实参(实际参数)指定了形参,那么在调用函数时必须传递实参,实参将会赋值给对应的形参,简单来说有几个形参就要有几个实参

函数的传递方式

• 定义形参时,可以为形参指定默认值。指定了默认值以后,如果用户传递了参数则默认值不会生效。如果用户没有传递,则默认值就会生效
• 位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参
• 关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,而根据参数名进行传递
• 混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面去

不定长参数

• 定义函数时,可以在形参前面加一个*,这样这个形参可以获取到所有的实参,它会将所有的实参保存到一个元组中
• 带*号的形参只能有一个,可以和其他参数配合使用
• *形参只能接受位置参数,不能接受关键字参数
• **形参可以接收其他的关键字参数,它会将这些参数统一保存到字典当中。字典的key就是参数的名字,字典的value就是参数的值
• **形参只有一个,并且必须写在所有参数的后面

参数的解包

• 传递实参时,也可以在序列类型的参数前添加星号,这样它会自动的将序列中元素依次作为参数传递
• 要求序列中的元素的个数必须和形参的个数一致


作业

打印名片程序:输入姓名,电话号码,性别,最后打印出来名片
• 控制姓名长度为6-20
• 电话号码长度11
• 性别只能允许输入男或女
• 每一样信息不允许为空

flag = ['男','女']
name = input('请输入您的姓名:')
if len(name) < 6 or len(name) > 20:
    name = input('请重新输入您的姓名,姓名长度为6-20:')
else:
    tel = input('请输入您的电话号码')
    if len(tel) != 11:
        tel = input('请重新输入您的电话号码,长度11:')
    else:
        sex = input('请输入您的性别')
        if sex not in flag:
            sex = input('性别只能允许输入男或女,请重新输入')
        else:
            print('''
            '姓名:',%s,
            '电话号码'%s,
            '性别'%s'''
            %(name,tel,sex))

使用函数求前20个斐波那契数列斐波那契数列:1,1,2,3,5,8,13,21…即: 起始两项均为1,此后的项分别为前两项之和

# list1 = [1,1]
# for i in range(1,19):
#     n = list1[i-1] + list1[i]
#     list1.append(n)
#     i += 1
# print(list1)

def sum(a,b):
    return a+b
list1 = []
for i in range(20):
    if i <= 1:
        list1.append(1)
    else:
        list1.append(sum(list1[i-2],list1[i-1]))
else:
    print(list1)

编写一段代码,定义一个函数求1-100之间所有整数的和,并调用该函数打印出结果

def fun(i):
    b = 0
    for a in range(1,i+1):
        b += a
    print(b)
fun(100)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值