目录
本人没有系统学过离散数学,完成这些实训仅仅是在熟悉python。
1. 集合及其基本运算的实现
第一关:set简单应用
任务简述:读取文本并输出第一次出现的单词
总体思路:读取一个单词后,判断是否已经出现过
相关知识:集合及其方法的使用、文件读取
关卡难度:0.5
def readAndPrintUniqueWords(filename):
infile = open(filename, 'r')
#********** Begin **********#
#请在此区间内编程完成函数代码
s = set() # 空集合
for line in infile.readlines():
if line.strip() not in s: # 如果此行单词未出现过
s.add(line.strip())
print(line.strip())
#请在此区间内编程完成函数代码
#********** End **********#
infile.close()
第二关:《仲夏夜之梦》中的回文单词对
- 任务简述:将所有长度大于等于5,且该单词的字母反序单词也出现在了全部找出
- 总体思路:单词读出于一列表;集合化;从集合中去除不满足的单词
- 相关知识:字符串分割与切片、集合及其remove方法、文件读取
- 关卡难度:1
def shakeSpeare(filename):
#********** Begin **********#
#请在此区间内编程实现函数功能
words = None
with open(filename, 'r') as f:
text = f.read()
words = text.split(' ') # 数组
# 集合化
reverse = set(words)
# 要对words迭代,而不是reverse
for word in words:
# 先判断单词是否在集合里,不然set::remove()可能报错
if word in reverse:
# 字符串切片来表回文
if word[::-1] not in reverse or len(word) < 5:
reverse.remove(word)
#请在此区间内编程实现函数功能
#********** End **********#
return reverse
第三关:求幂集
- 任务简述:返回一个集合的幂集,是一个以frozen集合为元素的集合
- 总体思路:幂集中的元素分为两类:包含e的、不包含e的(e为原集合中任意元素)
- 相关知识:frozenset的使用,递归(函数内调用函数自身)
- 关卡难度:1.5
def powSet(S):
#********** Begin **********#
#请在此区域内编程
# 空集的幂集
if not S:
return
Python编程实训:集合操作与自然数系统实现,

本文介绍了使用Python进行集合操作的四个关卡,包括独特单词提取、回文单词对查找、幂集计算和笛卡尔乘积。同时,详细阐述了自然数系统的实现,涉及类方法重载以支持加法、乘法、转换为阿拉伯数字等操作,以及利用foldn函数的不同实现。
最低0.47元/天 解锁文章
166

被折叠的 条评论
为什么被折叠?



