阿摩線上測驗 登入

申論題資訊

試卷:112年 - 112 司法特種考試_三等_檢察事務官電子資訊組:程式語言#116208
科目:程式語言
年份:112年
排序:0

申論題內容

三、請寫出下列 Python 程式的執行結果為何?(20 分)
64dc44908f286.jpg

詳解 (共 1 筆)

詳解 提供者:hchungw
def swap(x, y):
    temp = x
    x = y
    y = temp
x = 2
y = 3
swap(x, y)
print(x, y)
print()
l1 = [1, 2, 3, 4, 5]
l2 = [6, 5, 4, 3, 2]
l3 = [False, False, True, False, True]
print([a if condition else b for a, b, condition in zip(l1, l2, l3)])
print()
import numpy as np
arr = np.array(l1)
newarr = arr[arr % 2 == 0]
print(newarr)
print()
import pandas as pd
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)
df['add'] = df.apply(np.sum, axis=1)
print(df)
程式解析
swap 函數:
python
複製程式碼
def swap(x, y):
    temp = x
    x = y
    y = temp
x = 2
y = 3
swap(x, y)
print(x, y)
print()
swap 函數嘗試交換 x 和 y 的值,但因為是傳值調用,所以不會影響函數外的 x 和 y。
執行結果為:2 3
列表推導式:
python
複製程式碼
l1 = [1, 2, 3, 4, 5]
l2 = [6, 5, 4, 3, 2]
l3 = [False, False, True, False, True]
print([a if condition else b for a, b, condition in zip(l1, l2, l3)])
print()
使用 zip 將 l1, l2, l3 打包,並根據 l3 的布爾值選擇 l1 或 l2 的對應元素。
執行結果為:[6, 5, 3, 3, 5]
NumPy 陣列過濾:
python
複製程式碼
import numpy as np
arr = np.array(l1)
newarr = arr[arr % 2 == 0]
print(newarr)
print()
過濾 l1 中的偶數,返回新陣列。
執行結果為:[2 4]
Pandas 資料框:
python
複製程式碼
import pandas as pd
data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}
df = pd.DataFrame(data)
df['add'] = df.apply(np.sum, axis=1)
print(df)
創建資料框,並新增一列 add,其值為每行數值的總和。
執行結果為:
css
複製程式碼
   A  B  C  add
0  1  4  7   12
1  2  5  8   15
2  3  6  9   18
總結執行結果
plaintext
複製程式碼
2 3
[6, 5, 3, 3, 5]
[2 4]
   A  B  C  add
0  1  4  7   12
1  2  5  8   15
2  3  6  9   18