問題陳述- 將 3 個數字作為輸入陣列(不使用 map 函式)并列印陣列中的最小值和最大值
我的解決方案-
arr = input("Enter numbers ") #1 2 3
print(min(arr)) #returns empty
print(max(arr)) #returns 3
問題 - 為什么 max(arr) 回傳正確的輸出而 min(Arr) 回傳一個空字串?
uj5u.com熱心網友回復:
問題是input回傳一個字串而不是一個數字陣列。您必須將數字拆分為一個串列并將它們轉換為整數,然后才能計算出哪個是最小值,哪個是最大值:
arr = list(map(int, input("Enter numbers ").split(" ")))
print(min(arr))
print(max(arr))
或者,如果您想避免使用 map 功能,您可以這樣做:
arr = []
for num_str in input("Enter numbers ").split(" "):
arr.append(int(num_str))
print(min(arr))
print(max(arr))
min并max接收物件串列作為輸入,并分別回傳串列中最低/最高的物件。
當您將字串傳遞"1 2 3"給min函式時,該min函式將該字串視為字串列:['1', ' ', '2', ' ', '3']. 該字符" "被認為低于"1" "2","3"因此由 . 回傳min。
當您將字串傳遞"1 2 3"給max函式時,該max函式將該字串視為字串列:['1', ' ', '2', ' ', '3']. 該字符"3"被認為高于"1" "2"," "因此由 . 回傳max。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419886.html
標籤:
上一篇:識別熊貓資料框中的不同行
下一篇:詢問用戶名直到它是唯一的
