【数学知识】高一的集合知识的Python编程实现

【数学知识】高一的集合知识的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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YirongChen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值