# 5. 依序輸入五個、三個、九個整數,儲存到set1、set2、set3當中,查詢set2是否為set1的子集合?set3是否為set1的超集合?
# 2025/04/21-20:30
def keyin_number(target_set, count):
print(f"請輸入 {count} 個整數(重複會自動捨棄)")
while len(target_set) < count:
try:
num = int(input(f"第 {len(target_set)+1} 筆:"))
target_set.add(num)
except:
print("⚠️ 請輸入有效的整數")
# 建立三個集合
set1 = set()
set2 = set()
set3 = set()
# 分別輸入不同數量的資料
keyin_number(set1, 5)
keyin_number(set2, 3)
keyin_number(set3, 9)
# 顯示三個集合
print("\n集合內容:")
print("Set1 =", set1)
print("Set2 =", set2)
print("Set3 =", set3)
# 子集合 / 超集合判斷
is_subset = set2.issubset(set1)
is_superset = set3.issuperset(set1)
print("\n結果判斷:")
print(f"Set2 是否為 Set1 的子集合?👉 {is_subset}")
print(f"Set3 是否為 Set1 的超集合?👉 {is_superset}")
請輸入 5 個整數(重複會自動捨棄)
第 1 筆:10
第 2 筆:20
第 3 筆:30
第 4 筆:40
第 5 筆:10
第 5 筆:50
請輸入 3 個整數(重複會自動捨棄)
第 1 筆:10
第 2 筆:20
第 3 筆:30
請輸入 9 個整數(重複會自動捨棄)
⋯
Set1 = {40, 10, 50, 20, 30}
Set2 = {10, 20, 30}
Set3 = {1, 2, 3, 10, 20, 30, 40, 50, 60}
結果判斷:
Set2 是否為 Set1 的子集合?👉 True
Set3 是否為 Set1 的超集合?👉 True
項目 建議修改
✅ 函式參數命名 SS、j 可以換成更語意化的名稱,例如 target_set, count
✅ 顯示提示 在每次 add() 之前,告訴使用者目前輸入了幾個數字,有助於避免重複或困惑
✅ 最後結果顯示 顯示結果用完整語句說明:是否為子集合?是否為超集合?