集合的交集,并集差集

编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差
集 setA-setB。
setA = eval(input('请输入一个集合:'))
setB = eval(input('再输入一个集合:'))
setC = setA | setB
print(setC)

问题unsupported operand type(s) for |: 'tuple' and 'tuple' 为啥会这样报错呢?

需要使用 set() 方法将输入内容转为集合。eval() 方法只是将输入转数值。

setA = set(input("请输入一个集合:"))
setB = set(input("请输入一个集合:"))
print("交集:", setA & setB)
print("并集:", setA | setB)
print("差集:", setA - setB)

以下回答参考GPT并且由Bony-整理:
误提示,可以猜测您在输入集合时,使用了 eval() 函数将输入的字符串转换为元组(tuple)而不是集合(set)。因此,在运行 setA | setB 时,会出现 "unsupported operand type(s) for |: 'tuple' and 'tuple'" 的错误提示,因为在 Python 中,只有集合对象支持 | 运算符,而元组对象不支持。
为了避免这个错误,可以在输入时直接使用花括号 {} 来定义集合(set),如下所示:

setA = {1, 2, 3}
setB = {3, 4, 5}
setC = setA | setB  # 求并集
setD = setA & setB  # 求交集
setE = setA - setB  # 求差集
print(setC, setD, setE)

如果您想要从输入的元组(tuple)中创建集合(set),可以使用 set() 函数来进行转换,例如:

setA = set((1, 2, 3))
setB = set((3, 4, 5))
setC = setA | setB  # 求并集
setD = setA & setB  # 求交集
setE = setA - setB  # 求差集
print(setC, setD, setE)