依旧是信安菜狗的部分实验报告,网上没找到什么python实现,就拿出来写一下了。
一、 实验目的和要求
目的:
通过编程实现任意集合上二元关系的性质判定,借此过程让学生充分理解二元关系的 自反性、对称性、传递性、反自反性和反对称性。
要求:
能正确判定任意二元关系的自反性、对称性、传递性、反自反性和反对称性。
二、实验原理及内容
代码采用字典的形式储存序偶,“fn”表示序偶的前一个元素,“bn”表示序偶的后一个元素,n=1,2,3.。。。。。。使用字典的好处主要在于creater(i)函数调用可以十分方便的提起指定第n个序偶的两个元素。
本代码使用while循环获取多个序偶,在每次获取输入后都采用正则表达式提取其中的元素(数字)范围为0-99(可以很简单的调整)。
顺便把本部分的很多东西直接加到注释里增加可读性。
import re
import operator
i=0
s=' '
s1={
}
variable=[]#这里应该加一个提示输入的print()
while(s!=''):
i=i+1
s=input()
i=str(i)
str1='f'+i
str2='b'+i
i=eval(i)
if s=='':
break
s1[str1]=re.search('([0-99]*),([0-99]*)',s).group(1)
s1[str2]=re.search('([0-99]*),([0-99]*)',s).group(2)
#print(s1)
num=i
def creater(i):#creater()函数将记录在字典s1中的键值对提取,参数i表示提取第i个序偶
#creater(i)函数通过全局变量x1,x2传递第i对序偶的两个元素。
global x1,x2
i=str(i)
str1='f'+