python 的 input() 函數,雖然輸入整數,但傳回的卻是字串。處理方法如下:
eval 是 Python 中的內建函數,它用於執行存儲在字符串中的 Python 表達式。簡而言之,eval 接受一個字符串,將其視為有效的 Python 表達式並執行,返回表達式的結果。 基本語法如下: eval(expression, globals=None, locals=None) expression 是一個包含有效 Python 表達式的字符串。 globals 和 locals 是可選的參數,用於指定全局和局部命名空間。如果未提供,則將使用 eval 被調用的位置的全局和局部命名空間。 請注意,eval 可以執行任意的 Python 代碼,因此應謹慎使用,特別是在處理用戶輸入的情況下,以避免潛在的安全風險。 以下是一個簡單的例子,演示了如何使用 eval 執行一個數學表達式: expression = "3 + 7 * 2" result = eval(expression) print(result) # 輸出: 17 在這個例子中,eval 將字符串 "3 + 7 * 2" 視為一個 Python 表達式,計算其值,並將結果賦值給變數 result。 因此若字符串是個破壞型運算,可能影響整個程式運作。 以下介紹 lambda 是在 Python 中用來建立匿名函數的關鍵字。 它允許你在程式碼中創建一個小型的、一次性使用的函數。 lambda 函數可以接受任意數量的參數,但只能有一個表達式,並傳回該表達式的結果。 lambda 的基本文法如下: lambda arguments: expression 其中: arguments 是參數列表,可以有零個或多個參數。 expression 是一個表達式,是函數的回傳值。 以下是一個簡單的例子,示範如何使用 lambda 建立一個求和的函數: add = lambda x, y: x + y result = add(3, 5) print(result) # 輸出: 8 在這個例子中,lambda x, y: x + y 定義了一個接受兩個參數 x 和 y,傳回它們的和的匿名函數。 這個匿名函數被賦值給變數 add,然後可以像普通函數一樣呼叫。 在前面的回答中,我提到了 map 函數和 lambda 的結合使用。 例如: numbers = [1, 2, 3, 4, 5] squared_numbers = map(lambda x: x**2, numbers) result = list(squared_numbers) print(result) # 輸出: [1, 4, 9, 16, 25] 在這個例子中,lambda x: x**2 是一個匿名函數,它接受一個參數 x,並傳回 x 的平方。 這個匿名函數被傳遞給 map 函數,用於對列表中的每個元素進行平方操作。 以下介紹 map 是Python 內建函數之一,它接受一個函數和一個可迭代物件(通常是列表),然後將該函數應用於可迭代物件的每個元素,傳回一個新的迭代器(在Python 2 中是列表 )。 在 Python 3 中,map 傳回迭代器而不是列表,因此需要使用 list() 函數將其轉換為列表。 文法如下: map(function, iterable, ...) function:要套用於每個元素的函數。 iterable:要處理的可迭代對象,如列表、元組等。 範例: # 將清單中的每個元素平方 numbers = [1, 2, 3, 4, 5] squared_numbers = map(lambda x: x**2, numbers) result = list(squared_numbers) print(result) # 輸出: [1, 4, 9, 16, 25] 在上述範例中,map 將匿名函數 lambda x: x**2 套用到列表 numbers 中的每個元素,傳回一個迭代器,最後使用 list() 將其轉換為列表。 map 是一種方便的工具,特別是在需要對一個可迭代物件中的每個元素進行相同操作時。 在前面的 (數列轉整數列表) 範例中,我們使用 map 將 eval 函數應用於字串列表,將字串轉換為整數。 |