集合
集合的运算
1.& 交集运算
s1 = {1,2,3,4}
s2 = {3,4,5,6}
print(s1&s2)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
{3, 4}
Process finished with exit code 0
2.| 并集运算
s1 = {1,2,3,4}
s2 = {3,4,5,6}
print(s1|s2)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
{1, 2, 3, 4, 5, 6}
Process finished with exit code 0
3.- 差集运算
s1 = {1,2,3,4}
s2 = {3,4,5,6}
print(s2-s1)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
{5, 6}
Process finished with exit code 0
4.^ 亦或集
s1 = {1,2,3,4}
s2 = {3,4,5,6}
print(s1^s2)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
{1, 2, 5, 6}
Process finished with exit code 0
5.<= 检查⼀个集合是否是另⼀个集合的⼦集
i = 2
b = 4
print(i<=b)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
True
Process finished with exit code 0
6.< 检查⼀个集合是否是另⼀个集合的真⼦集
i = 2
b = 1
print(i<b)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
False
Process finished with exit code 0
7.>=检查⼀个集合是否是另⼀个集合的超集
i = 9
b = 2
print(i>=b)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
True
Process finished with exit code 0
8.>检查⼀个集合是否是另⼀个集合的真超集
i = 5
b =4
print(i>b)
结果
E:\Python36\python.exe "G:/python 基础班/20201127-第七讲-元组&字典&集合/上课代码/浅拷贝和深拷贝.py"
True
Process finished with exit code 0
函数上
1. 函数简介
1.函数也是⼀个对象
2.函数⽤来保存⼀些可执⾏的代码,并且可以在需要时,对这些语句 进⾏多次
调⽤
1 语法
2 def 函数名([形参1,形参2,形参3....]):
3 代码块
注意:
函数名必须符合标识符的规范(可以包含字⺟、数字、下划线但是不能以数字开
头)
print是函数对象 print()是调⽤函数
2. 函数的参数
2.1 形参和实参
(1) 形参(形式参数) 定义形参就相当于在函数内部声明了变量,但是并不是赋值
(2) 实参(实际参数)指定了形参,那么在调⽤函数时必须传递实参,实参将会赋值
给对应的形参,简单来说有⼏个形参就要有⼏个实参
2.2 函数的传递⽅式
(1) 定义形参时,可以为形参指定默认值。指定了默认值以后,如果⽤户传递了参
数则默认值不会⽣效。如果⽤户没有传递,则默认值就会⽣效
(2) 位置参数:位置参数就是将对应位置的实参赋值给对应位置的形参
(3) 关键字参数 : 关键字参数可以不按照形参定义的顺序去传递,⽽根据参数名
进⾏传递
(4) 混合使⽤位置参数和关键字参数的时候必须将位置参数写到关键字参数前⾯
去
3. 不定⻓参数
1.定义函数时,可以在形参前⾯加⼀个*,这样这个形参可以获取到所有的实
参,它会将所有的实参保存到⼀个元组中
2.带*号的形参只能有⼀个,可以和其他参数配合使⽤
3.*形参只能接受位置参数,不能接受关键字参数
4.**形参可以接收其他的关键字参数,它会将这些参数统⼀保存到字典当中。字
典的key就是参数的名字,字典的value就是参数的值
5.**形参只有⼀个,并且必须写在所有参数的后⾯
4. 参数的解包
1.传递实参时,也可以在序列类型的参数前添加星号,这样它会⾃动的将序列
中元素依次作为参数传递
2.要求序列中的元素的个数必须和形参的个数⼀致
1,集合的运算
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
print(s1 & s2)
print(s1 | s2)
print(s1 - s2)
print(s2 - s1)
print(s2 ^ s1)
import random
input()
2,函数的简介
# 函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用
def fun():
print(1111)
fun()
fun()
fun()
fun()
3,函数的参数
# def fun():
# a = 1
# b = 2
# print(a + b)
#
# fun()
a = 1
def fun(a, b, c): # 形参:形式上参数 定义形参就相当于在函数北部声明了一个变量,但是并没有赋值,有几个形参就得传递几个实参
# a = 1
# b = 2
# print(a + b)
pass
fun(1, 2, 2, 1) # 传实参: 实际的参数
4,实参的类型
# 实参任何类型都可以
# def fun1():
# print(11111)
#
#
# def fun(a): # a = b a => 123
# print(a)
#
# # b = 123
# b = 'abc'
# b = True
# b = [1, 2, 3]
# b = {'1': 1}
# b = fun1
# fun(b)
def fun2(a): # a = b => b = a
# a = 20
a[0] = 10
print(a)
# b = 10
b = [1, 2, 3]
fun2(b)
print(b)
5,不定长参数
求任意多少个数之和
# 不定长参数要放到后面, *只能有一个
# def fun(c, b, *a):
# # print(a)
# # print(a + b)
# # print(a)
# # res = 0
# # for i in a:
# # res += i
# # print(res)
# print(a)
# print(c)
# print(b)
#
#
# fun(1, 2, 3, 4, 5, 6)
def fun(*args, **kwargs):
# print(a)
# print(a + b)
# print(a)
# res = 0
# for i in a:
# res += i
# print(res)
print(a)
print(b)
# print(c)
# print(b)
fun(1, 2, 3, 4, f=1, e=2, d=3, c=4, b=5, a=6)
6,参数的传递方式
# 形参参数默认值
# def fun(a, b, c=None): # c=20称呼为默认值
# print(a)
# print(b)
# print(c)
#
#
# fun(1, 2, 3)
# fun(1, 2)
# 位置传参
def fun(a, b, c): # c=20称呼为默认值
print(a)
print(b)
print(c)
# 关键字传参 位置顺序可以随便写
# 位置传参和关键字传参混合使用时,位置传参必须放到关键字传参之前
fun(3, c=1, b=2)
7,参数的拆包
def fun(a, b, c):
print(a)
print(b)
print(c)
# tuple1 = (1, 2, 3)
dict1 = {'a': 1, 'b': 2, 'c': 3}
# fun(tuple1[0], tuple1[1], tuple1[2])
fun(**dict1)
第⼋讲作业
- 打印名⽚程序:输⼊姓名,电话号码,性别,最后打印出来名⽚
控制姓名⻓度为6-20
电话号码⻓度11
性别只能允许输⼊男或⼥
每⼀样信息不允许为空
def fn (name,telephone,gender):
print("""=======请输入姓名:{}
=======请输入电话号码:{}
=======请输入性别:{}""".format(name,telephone,gender))
while True:
name= input('请输入姓名')
if 6< len(name)<20:
break
else:
print('您输入的姓名不合规则,请重新输入')
while True:
telephone = input('请输入电话号码')
if len(telephone) == 11:
break
else:
print('您输入的电话号码长度不合规则,请重新输入')
while True:
gender = input('请输入性别')
if gender == '男' or gender == '女':
break
else:
print('您输入的性别不合规则,请重新输入')
- 使⽤函数求前20个斐波那契数列斐波那契数列:1,1,2,3,5,8,13,21…即: 起始
两项均为1,此后的项分别为前两项之和
def fib_recur(n):
assert n >= 0
if n <= 1:
return n
return fib_recur(n-1)+ fib_recur(n-2)
for i in range(1,20):
print( fib_recur(i),end=' ')
- 编写⼀段代码,定义⼀个函数求1-100之间所有整数的和,并调⽤该函数打印
出结果
def fun():
print(sum(range(1,101)))
fun()