Skip to content

Python 707 共同科目

Python TQC

題目說明:

請撰寫一程式,輸入X組和Y組各自的科目至集合中,以字串”end”作為結束點(集合中不包含字串”end”)。請依序分行顯示(1) X組和Y組的所有科目、(2)X組和Y組的共同科目、(3)Y組有但X組沒有的科目,以及(4) X組和Y組彼此沒有的科目(不包含相同科目)。

Tip

科目須參考範例輸出樣本,依字母由小至大進行排序。

輸入與輸出會交雜如下,輸出的部份以粗體字表示

Enter group X’s subjects:
Math
Literature
English
History
Geography
end
Enter group Y’s subjects:
Math
Literature
Chinese
Physical
Chemistry
end
[‘Chemistry’, ‘Chinese’, ‘English’, ‘Geography’, ‘History’, ‘Literature’, ‘Math’, ‘Physical’]
[‘Literature’, ‘Math’]
[‘Chemistry’, ‘Chinese’, ‘Physical’]
[‘Chemistry’, ‘Chinese’, ‘English’, ‘Geography’, ‘History’, ‘Physical’]


題目分析

這個問題要求我們編寫一個程式,根據用戶輸入的X組和Y組的科目,對集合進行操作,然後輸出指定的結果。根據問題描述,我們可以按照以下步驟思考和解決問題:

  1. 問題分析
    - 理解問題要求:首先,我們需要理解題目要求,即根據用戶輸入的X組和Y組的科目,分別執行四個操作,包括列出所有科目、列出共同科目、列出Y組有但X組沒有的科目、列出彼此不同的科目。
    - 確定輸入和輸出:輸入包括用戶輸入的X組和Y組的科目,輸出包括四個部分的結果。

  2. 解題思路
    - 創建空的集合X和Y。
    - 使用while迴圈分別讓用戶輸入X組和Y組的科目,直到輸入”end”為止。
    - 對集合進行操作,包括聯集、交集、差集和對稱差集。
    - 將結果進行排序後輸出。

  3. 思考方向
    - 如何處理用戶輸入:使用迴圈來逐一接收用戶輸入的科目,並在輸入”end”後停止。
    - 如何進行集合操作:根據題目要求,使用集合操作符號來執行所需的操作,包括聯集(|)、交集(&)、差集(-)和對稱差集(^)。
    - 如何將結果排序後輸出:使用sorted()函數來對集合進行排序,以確保結果按照字母順序排列。

Solution
X = set()
print("Enter group X's subjects:")
while True:
  a = input()
  if(a == "end"):break
  else:
    X.add(a)
Y = set()
print("Enter group Y's subjects:")
while True:
  a = input()
  if(a == "end"):break
  else:
    Y.add(a)
print(sorted(X | Y))
print(sorted(X & Y))
print(sorted(Y - X))
print(sorted(X ^ Y))

Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments