python给定两个函数和定义域,判定两个函数是否构造为复合函数。

输入要以(4.3)(5.6)(6.5)值域是365定义域是456,这样的情况该怎么输入python


# 我是这么理解的
# 首先是获取一个函数的定义域和值域,比如
f1 = [(4,3),(5,6),(6,5)] # 这个是f1的定义域和值域
f1Define = set([x[0] for x in f1]) # 函数一的定义域
f1Val = set([x[1] for x in f1]) # 函数一的值域

f2 = [(1,4),(3,5),(5,6)]
f2Define = set([x[0] for x in f2]) # 函数二的定义域
f2Val = set([x[1] for x in f2]) # 函数二的值域

# 而构成复合函数的条件就是一个函数的值域要是另外一个函数的定义域的子集,就认为是复合函数
# 如果f1的值域是f2的定义域的子集或者f2的值域是f1的定义域的子集,就认为是复合函数
if f1Val.issubset(f2Define) or f2Val.issubset(f1Define): 
    print("它们是复合函数")
else:
    print("它们不是复合函数")

如果答案对你有帮助,请点击下采纳,谢谢~