【数学知识】高一的集合知识的Python编程实现
本博客适合高中学生入门编程知识学习,从高中的数学概念转换到其python实现,提高自身对编程的学习兴趣。以后将会出一个面向高中同学的系列。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# 在jupyter notebook显示图片
Python3 集合概念
集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
# 不重复
A = {1, 1, 1, 1, 1, 1, 1}
print(A)
print("集合A的元素个数:",len(A))
{1}
集合A的元素个数: 1
集合与元素的关系
# 高一必修一:集合与元素的关系
# 判断元素与集合的关系
def element_in_set(setA, elementa):
'''
setA: 集合
elementa: 元素
'''
if elementa in setA:
return True
else:
return False
a = 1
A = {1,3,5,7,9}
print(element_in_set(A, a))
b = 2
print(element_in_set(A, b))
True
False
# 这相当于python代码的a in A
print(a in A)
True
集合与集合的关系
# 高一必修一:集合与集合的关系
def setBcontainsetA(setA,setB):
'''
函数用于确定setA是否包含于setB
setA: 集合A
setB: 集合B
返回结果:
1:集合A是集合B的子集
-1:集合B是集合A的子集
0:集合B=集合A
-1000:集合B与集合A没有关系
'''
# 如果A中任意一个元素都是B的元素,称集合A是集合B的子集
# for语句
for a in setA:
# print(a) 编程过程遇到一个错误,形式参数为setA,
# 但是“for a in setA:”语句中,setA写为了A
if a not in setB:
return False # 集合A不是集合B的子集
#print(a)
else:
continue
# 如果遍历完集合A都没有找到不存在于集合B的元素,则返回True
return True # 集合A是集合B的子集
def setBwithsetA(setA,setB):
if setBcontainsetA(setA,setB) is True and setBcontainsetA(setB,setA) is False:
return 1 # 集合A是集合B的子集
if setBcontainsetA(setA,setB) is False and setBcontainsetA(setB,setA) is True:
return -1 # 集合B是集合A的子集
if setBcontainsetA(setA,setB) is True and setBcontainsetA(setB,setA) is True:
return 0 # 集合B=集合A
if setBcontainsetA(setA,setB) is False and setBcontainsetA(setB,setA) is False:
return -1000 # 集合B与集合A没有关系
# 测试函数
A = {1,3,5,7,9}
B = {1,3,5}
C = {1,3,5,7,9}
D = {2,4,6}
print(setBwithsetA(A,B))
print(setBwithsetA(A,C))
print(setBwithsetA(A,D))
print(setBwithsetA(A,B))
-1
0
-1000
-1
集合与集合的运算
## 集合的交运算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.intersection(B) # C=AB
print("集合A与B的交运算",C)
{1, 2, 3}
## 集合的并运算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.union(B) # C=A+B
print("集合A与B的并运算",C)
集合A与B的并运算 {1, 2, 3, 4, 5, 6}
## 集合的差运算
A = {1,2,3,4,5,6}
B = {1,2,3}
C = A.difference(B) # C=A-B
print("集合A与B的差运算",C)
集合A与B的差运算 {4, 5, 6}
【作者简介】陈艺荣,男,目前在华南理工大学电子与信息学院广东省人体数据科学工程技术研究中心攻读博士,担任IEEE Access、IEEE Photonics Journal的审稿人。两次获得美国大学生数学建模竞赛(MCM)一等奖,获得2017年全国大学生数学建模竞赛(广东赛区)一等奖、2018年广东省大学生电子设计竞赛一等奖等科技竞赛奖项,主持一项2017-2019年国家级大学生创新训练项目获得优秀结题,参与两项广东大学生科技创新培育专项资金、一项2018-2019年国家级大学生创新训练项目获得良好结题,发表SCI论文4篇,授权实用新型专利8项,受理发明专利13项。
我的主页
我的Github
我的CSDN博客
我的Linkedin